Compilateur de couleur VSIX
L’outil Compilateur de couleurs d’extension Visual Studio est une application console qui prend un fichier .xml représentant des couleurs pour les thèmes Visual Studio existants et les couvre dans un fichier .pkgdef afin que ces couleurs puissent être utilisées dans Visual Studio. Étant donné qu’il est facile de comparer les différences entre les fichiers .xml, cet outil est utile pour gérer les couleurs personnalisées dans le contrôle de code source. Il peut également être connecté à des environnements de build afin que la sortie de la build soit un fichier .pkgdef valide.
Schéma XML de thème
Un fichier .xml de thème complet ressemble à ceci :
<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>
Thème
L’élément <Theme> définit un thème entier. Un thème doit contenir au moins un <élément Category> . Les éléments de thème sont définis comme suit :
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
Attribut | Definition |
---|---|
Nom | [Obligatoire] Nom du thème |
GUID | [Obligatoire] GUID du thème (doit correspondre à la mise en forme guid) |
Lors de la création de couleurs personnalisées pour Visual Studio, ces couleurs doivent être définies pour les thèmes suivants. Si aucune couleur n’existe pour un thème particulier, Visual Studio tente de charger les couleurs manquantes du thème Clair.
Nom du thème | GUID de thème |
---|---|
Clair | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
Foncé | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
Bleu | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
Contraste élevé | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
Catégorie
L’élément <Category> définit une collection de couleurs dans un thème. Les noms de catégorie fournissent des regroupements logiques et doivent être définis aussi étroitement que possible. Une catégorie doit contenir au moins un <élément Color> . Les éléments de catégorie sont définis comme suit :
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
Attribut | Definition |
---|---|
Nom | [Obligatoire] Nom de la catégorie |
GUID | [Obligatoire] GUID de la catégorie (doit correspondre à la mise en forme du GUID) |
Couleur
L’élément <Color> définit une couleur pour un composant ou un état de l’interface utilisateur. Le schéma d’affectation de noms préféré pour une couleur est [type d’interface utilisateur] [État]. N’utilisez pas le mot « couleur », car il est redondant. Une couleur doit indiquer clairement le type d’élément et les situations, ou « state », pour lesquelles la couleur sera appliquée. Une couleur ne doit pas être vide et doit contenir un <ou les deux éléments Background> et <Foreground> . Les éléments de couleur sont définis comme suit :
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
Attribut | Definition |
---|---|
Nom | [Obligatoire] Nom de la couleur |
Arrière-plan et/ou premier plan
Les <éléments Background> et <Foreground> définissent la valeur et le type d’une couleur pour l’arrière-plan ou le premier plan d’un élément d’interface utilisateur. Ces éléments n’ont pas d’enfants.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
Attribut | Definition |
---|---|
Type | [Obligatoire] Type de la couleur. Les valeurs possibles sont les suivantes : CT_INVALID : la couleur n’est pas valide ou n’est pas définie. CT_RAW : valeur ARVB brute. CT_COLORINDEX : NE PAS UTILISER. CT_SYSCOLOR : couleur système Windows de SysColor. CT_VSCOLOR : couleur Visual Studio de __VSSYSCOLOREX. CT_AUTOMATIC : couleur automatique. CT_TRACK_FOREGROUND : NE PAS UTILISER. CT_TRACK_BACKGROUND : NE PAS UTILISER. |
Source | [Obligatoire] Valeur de la couleur représentée en hexadécimal |
Toutes les valeurs prises en charge par l’énumération __VSCOLORTYPE sont prises en charge par le schéma dans l’attribut Type. Toutefois, nous vous recommandons d’utiliser uniquement CT_RAW et CT_SYSCOLOR.
Tous ensemble
Il s’agit d’un exemple simple d’un fichier .xml de thème valide :
<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>
Comment utiliser l’outil ?
Syntaxe
Fichier XML><VsixColorCompiler <PkgDef file><Optional Args>
Arguments
Nom du commutateur | Notes | Obligatoire ou facultatif |
---|---|---|
Unnamed (fichier.xml) | Il s’agit du premier paramètre sans nom et est le chemin d’accès au fichier XML à convertir. | Requis |
Unnamed (fichier.pkgdef) | Il s’agit du deuxième paramètre sans nom et est le chemin de sortie du fichier .pkgdef généré. Valeur par défaut : <XML Filename.pkgdef> |
Facultatif |
/noLogo | La définition de cet indicateur empêche l’impression des informations sur le produit et les droits d’auteur. | Facultatif |
/? | Imprimez les informations d’aide. | Facultatif |
/help | Imprimez les informations d’aide. | Facultatif |
Exemples
VsixColorCompiler D :\xml\colors.xml D :\pkgdef\colors.pkgdef
VsixColorCompiler D :\xml\colors.xml /noLogo
Notes
Cet outil nécessite que la dernière version du runtime VC++ soit installée.
Seuls les fichiers uniques sont pris en charge. La conversion en bloc via les chemins d’accès aux dossiers n’est pas prise en charge.
L’outil se trouve dans
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
Exemple de sortie
Le fichier .pkgdef généré par l’outil est similaire aux clés ci-dessous :
[$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