Compilador de cores do VSIX
A ferramenta Visual Studio Extension Color Compiler é um aplicativo de console que pega um arquivo .xml que representa cores para temas existentes do Visual Studio e o oculta para um arquivo .pkgdef para que essas cores possam ser usadas no Visual Studio. Como é fácil comparar diferenças entre arquivos .xml, essa ferramenta é útil para gerenciar cores personalizadas no controle do código-fonte. Ele também pode ser conectado a ambientes de compilação para que a saída da compilação seja um arquivo .pkgdef válido.
Esquema XML do tema
Um tema completo .xml arquivo tem esta aparência:
<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>
Tema
O <elemento Theme> define um tema inteiro. Um tema deve conter pelo menos um <elemento Category> . Os elementos do tema são definidos assim:
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
Atributo | Definição |
---|---|
Nome | [obrigatório] O nome do tema |
GUID | [obrigatório] GUID do tema (deve corresponder à formatação GUID) |
Ao criar cores personalizadas para o Visual Studio, essas cores precisam ser definidas para os temas a seguir. Se não existirem cores para um tema específico, o Visual Studio tentará carregar as cores ausentes do tema Luz.
Nome do tema | GUID do tema |
---|---|
Claro | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
Escuro | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
Azul | {A4D6A176-B948-4B29-8C66-53C97A1ED7D0} |
Alto contraste | {A4D6A176-B948-4B29-8C66-53C97A1ED7D0} |
Categoria
O <elemento Category> define uma coleção de cores em um tema. Os nomes de categoria fornecem agrupamentos lógicos e devem ser definidos da forma mais restrita possível. Uma categoria deve conter pelo menos um <elemento Color> . Os elementos de categoria são definidos assim:
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
Atributo | Definição |
---|---|
Nome | [obrigatório] O nome da categoria |
GUID | [obrigatório] O GUID da categoria (deve corresponder à formatação do GUID) |
Cor
O <elemento Color> define uma cor para um componente ou estado da interface do usuário. O esquema de nomenclatura preferencial para uma cor é [tipo de interface do usuário] [Estado]. Não use a palavra "cor", pois ela é redundante. Uma cor deve indicar claramente o tipo de elemento e as situações, ou "estado", para as quais a cor será aplicada. Uma cor não deve estar vazia e deve conter um ou ambos os elementos Plano de <fundo> e <Primeiro plano> . Os elementos de cor são definidos assim:
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
Atributo | Definição |
---|---|
Nome | [obrigatório] O nome da cor |
Plano de fundo e/ou primeiro plano
Os <elementos Plano de Fundo e Primeiro Plano> definem o valor e <o tipo de uma cor para o plano de fundo ou o primeiro plano de> um elemento da interface do usuário. Esses elementos não têm filhos.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
Atributo | Definição |
---|---|
Tipo | [obrigatório] O tipo da cor. Pode ser um dos seguintes: CT_INVALID: A cor é inválida ou não está definida. CT_RAW: Um valor ARGB bruto. CT_COLORINDEX: NÃO USAR. CT_SYSCOLOR: Uma cor de sistema Windows do SysColor. CT_VSCOLOR: Uma cor do Visual Studio de __VSSYSCOLOREX. CT_AUTOMATIC: A cor automática. CT_TRACK_FOREGROUND: NÃO USE. CT_TRACK_BACKGROUND: NÃO USAR. |
Origem | [obrigatório] O valor da cor representada em hexadecimal |
Todos os valores suportados pela enumeração __VSCOLORTYPE são suportados pelo esquema no atributo Type. No entanto, recomendamos que você use apenas CT_RAW e CT_SYSCOLOR.
Todos juntos
Este é um exemplo simples de um arquivo de .xml tema válido:
<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>
Como usar a ferramenta
Sintaxe
Arquivo XML<>VsixColorCompiler <Arquivo PkgDef Args><opcional>
Argumentos
Nome do switch | Observações | Obrigatório ou Opcional |
---|---|---|
Sem nome (arquivo .xml) | Este é o primeiro parâmetro sem nome e é o caminho para o arquivo XML a ser convertido. | Obrigatório |
Sem nome (arquivo .pkgdef) | Este é o segundo parâmetro sem nome e é o caminho de saída para o arquivo .pkgdef gerado. Padrão: <XML Filename.pkgdef> |
Opcional |
/noLogo | A configuração desse sinalizador impede a impressão de informações sobre produtos e direitos autorais. | Opcional |
/? | Imprima as informações da Ajuda. | Opcional |
/help | Imprima as informações da Ajuda. | Opcional |
Exemplos
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
Observações
Essa ferramenta requer que a versão mais recente do tempo de execução VC++ esteja instalada.
Somente arquivos únicos são suportados. Não há suporte para conversão em massa por meio de caminhos de pasta.
A ferramenta pode ser encontrada em
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
Saída de exemplo
O arquivo .pkgdef gerado pela ferramenta será semelhante às chaves abaixo:
[$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