Kompilator kolorów VSIX
Narzędzie kompilatora kolorów rozszerzenia programu Visual Studio to aplikacja konsolowa, która pobiera plik XML reprezentujący kolory istniejących motywów programu Visual Studio i ukrywa go w pliku pkgdef, aby można było używać tych kolorów w programie Visual Studio. Ponieważ łatwo jest porównać różnice między plikami XML, to narzędzie jest przydatne do zarządzania kolorami niestandardowymi w kontroli źródła. Można go również podłączyć do środowisk kompilacji, aby dane wyjściowe kompilacji był prawidłowym plikiem pkgdef.
Schemat XML motywu
Pełny plik XML motywu wygląda następująco:
<Themes>
<!—one or Theme elements -->
<Theme>
<!-- one or more Category elements -->
<Category>
<!-- one or more Color elements -->
<Color>
<!-- zero or one Background element -->
<Background />
<!-- zero or one Foreground element -->
<Foreground />
</Color>
</Category>
</Theme>
</Themes>
Motyw
Element <Motyw> definiuje cały motyw. Motyw musi zawierać co najmniej jeden <element Kategoria> . Elementy motywu są zdefiniowane w następujący sposób:
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
Atrybut | Definicja |
---|---|
Nazwisko | [Wymagane] Nazwa motywu |
Identyfikator GUID | [Wymagane] Identyfikator GUID motywu (musi być zgodny z formatowaniem GUID) |
Podczas tworzenia kolorów niestandardowych dla programu Visual Studio te kolory należy zdefiniować dla następujących motywów. Jeśli nie ma kolorów dla określonego motywu, program Visual Studio próbuje załadować brakujące kolory z motywu Light.
Nazwa motywu | Identyfikator GUID motywu |
---|---|
Jasny | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
Ciemny | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
Niebieskie | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
Duży kontrast | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
Kategoria
Element <Category> definiuje kolekcję kolorów w motywie. Nazwy kategorii zapewniają grupowania logiczne i powinny być zdefiniowane tak wąsko, jak to możliwe. Kategoria musi zawierać co najmniej jeden <element Color> . Elementy kategorii są zdefiniowane w następujący sposób:
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
Atrybut | Definicja |
---|---|
Nazwisko | [Wymagane] Nazwa kategorii |
Identyfikator GUID | [Wymagane] Identyfikator GUID kategorii (musi być zgodny z formatowaniem identyfikatora GUID) |
Kolor
Element <Color> definiuje kolor składnika lub stanu interfejsu użytkownika. Preferowany schemat nazewnictwa dla koloru to [typ interfejsu użytkownika] [State]. Nie używaj słowa "kolor", ponieważ jest on nadmiarowy. Kolor powinien wyraźnie wskazywać typ elementu i sytuacje lub "stan", dla którego zostanie zastosowany kolor. Kolor nie może być pusty i musi zawierać jeden lub oba <elementy Tło> i <Pierwszy plan> . Elementy kolorów są zdefiniowane w następujący sposób:
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
Atrybut | Definicja |
---|---|
Nazwisko | [Wymagane] Nazwa koloru |
Tło i/lub Pierwszy plan
Elementy <Tło i <Pierwszy> plan> definiują wartość i typ koloru dla tła lub pierwszego planu elementu interfejsu użytkownika. Te elementy nie mają elementów podrzędnych.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
Atrybut | Definicja |
---|---|
Typ | [Wymagane] Typ koloru. Może to być jedna z następujących opcji: CT_INVALID: Kolor jest nieprawidłowy lub nie jest ustawiony. CT_RAW: nieprzetworzona wartość ARGB. CT_COLORINDEX: NIE UŻYWAJ. CT_SYSCOLOR: Kolor systemu Windows z SysColor. CT_VSCOLOR: kolor programu Visual Studio z __VSSYSCOLOREX. CT_AUTOMATIC: kolor automatyczny. CT_TRACK_FOREGROUND: NIE UŻYWAJ. CT_TRACK_BACKGROUND: NIE UŻYWAJ. |
Źródło | [Wymagane] Wartość koloru reprezentowanego w szesnastkowym |
Wszystkie wartości obsługiwane przez wyliczenie __VSCOLORTYPE są obsługiwane przez schemat w atrybucie Type. Zalecamy jednak używanie tylko CT_RAW i CT_SYSCOLOR.
Wszystkie razem
Jest to prosty przykład prawidłowego pliku XML motywu:
<Themes>
<Theme Name="Light" GUID="{de3dbbcd-f642-433c-8353-8f1df4370aba}">
<Category Name="MyCategory" GUID="{0A96238B-70CE-4479-9170-EECEAA3FCD58}">
<Color Name="MyActiveBorder">
<Background Type="CT_RAW" Source="FFCCCEDB" />
</Color>
</Category>
</Theme>
</Themes>
Składnia
VsixColorCompiler <plik>><<XML PkgDef opcjonalny Args>
Argumenty
Nazwa przełącznika | Uwagi | Wymagane lub opcjonalne |
---|---|---|
Bez nazwy (plik XML) | Jest to pierwszy parametr bez nazwy i jest ścieżką do pliku XML do konwersji. | Wymagania |
Bez nazwy (plik pkgdef) | Jest to drugi nienazwany parametr i jest ścieżką wyjściową wygenerowanego pliku pkgdef. Ustawienie domyślne: <Nazwa pliku> XML.pkgdef |
Opcjonalnie |
/noLogo | Ustawienie tej flagi uniemożliwia drukowanie informacji o produktach i prawach autorskich. | Opcjonalnie |
/? | Wyświetl informacje pomocy. | Opcjonalnie |
/help | Wyświetl informacje pomocy. | Opcjonalnie |
Przykłady
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
To narzędzie wymaga zainstalowania najnowszej wersji środowiska uruchomieniowego VC++.
Obsługiwane są tylko pojedyncze pliki. Konwersja zbiorcza za pośrednictwem ścieżek folderów nie jest obsługiwana.
Narzędzie można znaleźć w witrynie
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
Plik pkgdef wygenerowany przez narzędzie będzie podobny do poniższych kluczy:
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\Environment]
"Data"=hex:3a,00,00,00,0b,00,00,00,01,00,00,00,c3,d9,4e,62,fd,bd,fa,41,96,c3,7c,82,4e,a3,2e,3d,01,00,00,00,0c,00,00,00,41,63,74,69,76,65,42,6f,72,64,65,72,01,cc,ce,db,ff,01,33,31,24,ff
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\TreeView]
"Data"=hex:38,00,00,00,0b,00,00,00,01,00,00,00,8e,f0,ec,92,13,8b,f4,4c,99,e9,ae,26,92,38,21,85,01,00,00,00,0a,00,00,00,42,61,63,6b,67,72,6f,75,6e,64,01,f5,f5,f5,ff,01,1e,1e,1e,ff