Compilateur de couleurs VSIXVSIX Color Compiler

L’outil compilateur de couleur Visual Studio Extension est une application console qui accepte un fichier .xml qui représente les couleurs des thèmes Visual Studio existants et que les membres à un .pkgdef de fichiers afin que ces couleurs peuvent être utilisées dans Visual Studio.The Visual Studio Extension Color Compiler tool is a console application that takes an .xml file representing colors for existing Visual Studio themes and coverts it to a .pkgdef file so that those colors can be used in Visual Studio. Comme il est facile de comparer les différences entre les fichiers .xml, cet outil est utile pour la gestion des couleurs personnalisées dans le contrôle de code source.Because it's easy to compare differences between .xml files, this tool is useful for managing custom colors in source control. Il également peut être raccordé environnements de build afin que la sortie de la build est un fichier .pkgdef valide.It also can be hooked into build environments so that the output of the build is a valid .pkgdef file.

Schéma XML de thèmeTheme XML schema

Un fichier .xml de thème complète ressemble à ceci :A complete theme .xml file looks like this:

<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èmeTheme

Le <thème > élément définit un thème entier.The <Theme> element defines an entire theme. Un thème doit contenir au moins un <catégorie > élément.A theme must contain at least one <Category> element. Éléments de thème sont définies comme suit :Theme elements are defined like this:

<Theme Name="name" GUID="guid">  
      <!-- one or more Category elements -->  
</Theme>  
AttributAttribute DéfinitionDefinition
NameName [Obligatoire] Le nom du thème[Required] The name of the theme
GUIDGUID [Obligatoire] GUID du thème (doit correspondre au GUID de mise en forme)[Required] The theme's GUID (must match GUID formatting)

Lorsque vous créez des couleurs personnalisées pour Visual Studio, ces couleurs doivent être définies pour les thèmes suivants.When creating custom colors for Visual Studio, those colors need to be defined for the following themes. Si aucune couleur n’existe pour un thème particulier, Visual Studio tente de charger les couleurs de manquants à partir de ce thème clair.If no colors exist for a particular theme, Visual Studio attempts to load the missing colors from the Light theme.

Nom de thèmeTheme name GUID de thèmeTheme GUID
ClairLight {de3dbbcd-f642-433c-8353-8f1df4370aba}{de3dbbcd-f642-433c-8353-8f1df4370aba}
SombreDark {1ded0138-47ce-435e-84ef-9ec1f439b749}{1ded0138-47ce-435e-84ef-9ec1f439b749}
BleuBlue {a4d6a176-b948-4b29-8c66-53c97a1ed7d0}{a4d6a176-b948-4b29-8c66-53c97a1ed7d0}
Contraste élevéHigh Contrast {a4d6a176-b948-4b29-8c66-53c97a1ed7d0}{a4d6a176-b948-4b29-8c66-53c97a1ed7d0}

CatégorieCategory

Le <catégorie > élément définit une collection de couleurs dans un thème.The <Category> element defines a collection of colors in a theme. Noms de catégorie fournissent des regroupements logiques et doivent être définies comme précisément que possible.Category names provide logical groupings, and should be defined as narrowly as possible. Une catégorie doit contenir au moins un <couleur > élément.A category must contain at least one <Color> element. Éléments de catégorie sont définis comme suit :Category elements are defined like this:

<Category Name="name" GUID="guid">  
      <!-- one or more Color elements -->  
 </Category>  
AttributAttribute DéfinitionDefinition
NameName [Obligatoire] Le nom de la catégorie[Required] The name of the category
GUIDGUID [Obligatoire] GUID de catégorie (doit correspondre au GUID de mise en forme)[Required] The category's GUID (must match GUID formatting)

CouleurColor

Le <couleur > élément définit une couleur d’un composant ou d’un état de l’interface utilisateur.The <Color> element defines a color for a component or state of UI. Le schéma d’affectation de noms par défaut pour une couleur est [type d’interface utilisateur] [État].The preferred naming scheme for a color is [UI type] [State]. N’utilisez pas le mot « couleur », car elle est redondante.Do not use the word "color," as it is redundant. Une couleur doit clairement indiquer le type d’élément et les situations ou « état », pour laquelle la couleur s’applique.A color should clearly indicate the element type and the situations, or "state," for which the color will be applied. Une couleur ne doit pas être vide et doit contenir une ou les deux un <arrière-plan > et <au premier plan > élément.A color must not be empty, and must contain either one or both of a <Background> and <Foreground> element. Éléments de couleur sont définies comme suit :Color elements are defined like this:

<Color Name="name">  
        <Background /> <!-- zero or one Background element -->  
        <Foreground /> <!-- zero or one Foreground element -->  
 </Color>  
AttributAttribute DéfinitionDefinition
NameName [Obligatoire] Le nom de la couleur[Required] The name of the color

Arrière-plan et/ou de premier planBackground and/or Foreground

Le <arrière-plan > et <au premier plan > éléments définissent la valeur d’une couleur et le type de l’arrière-plan ou du premier plan de l’élément d’interface utilisateur.The <Background> and <Foreground> elements define a color's value and type for either the background or foreground of a UI element. Ces éléments ont pas d’enfants.These elements have no children.

<Background Type="type" Source="int" />  
<Foreground Type="type" Source="int" />  
AttributAttribute DéfinitionDefinition
TypeType [Obligatoire] Le type de la couleur.[Required] The type of the color. Il peut avoir l'une des valeurs suivantes :It can be one of the following:

CT_INVALID : la couleur est non valide ou non définie.CT_INVALID: The color is invalid or not set.

CT_RAW : une valeur ARVB brute.CT_RAW: A raw ARGB value.

CT_COLORINDEX : N’UTILISEZ PAS.CT_COLORINDEX: DO NOT USE.

CT_SYSCOLOR : une couleur système Windows SysColor.CT_SYSCOLOR: A Windows system color from SysColor.

CT_VSCOLOR : une couleur de Visual Studio à partir de __VSSYSCOLOREX.CT_VSCOLOR: A Visual Studio color from __VSSYSCOLOREX.

CT_AUTOMATIC : la couleur automatique.CT_AUTOMATIC: The automatic color.

CT_TRACK_FOREGROUND : N’UTILISEZ PAS.CT_TRACK_FOREGROUND: DO NOT USE.

CT_TRACK_BACKGROUND : N’UTILISEZ PAS.CT_TRACK_BACKGROUND: DO NOT USE.
SourceSource [Obligatoire] La valeur de la couleur représentée en notation hexadécimale[Required] The value of the color represented in hexadecimal

Toutes les valeurs prises en charge par l’énumération __VSCOLORTYPE sont pris en charge par le schéma dans l’attribut de Type.All values supported by the __VSCOLORTYPE enumeration are supported by the schema in the Type attribute. Toutefois, nous vous recommandons d’utiliser uniquement CT_RAW et CT_SYSCOLOR.However, we recommend that you use only CT_RAW and CT_SYSCOLOR.

L’ensemble deAll together

Il s’agit d’un exemple simple d’un fichier .xml de thème valide :This is a simple example of a valid theme .xml file:

<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’outilHow to use the tool

SyntaxeSyntax

VsixColorCompiler <fichier XML > <fichier PkgDef > <arguments facultatifs >VsixColorCompiler <XML file> <PkgDef file> <Optional Args>

ArgumentsArguments

Nom du commutateurSwitch name NotesNotes Obligatoire ou facultatifRequired or Optional
Sans nom (fichier .xml)Unnamed (.xml file) Ceci est le premier paramètre sans nom et le chemin d’accès au fichier XML à convertir.This is the first unnamed parameter and is the path to the XML file to convert. ObligatoireRequired
Sans nom (fichier .pkgdef)Unnamed (.pkgdef file) Ceci est le deuxième paramètre sans nom et le chemin de sortie pour le fichier .pkgdef généré.This is the second unnamed parameter and is the output path for the generated .pkgdef file.

Valeur par défaut : <nom du fichier XML > .pkgdefDefault: <XML Filename>.pkgdef
FacultatifOptional
/noLogo/noLogo Définition de cet indicateur arrête les informations de copyright et de produit à partir de l’impression.Setting this flag stops product and copyright information from printing. FacultatifOptional
/?/? Imprimer les informations d’aide.Print out Help information. FacultatifOptional
/help/help Imprimer les informations d’aide.Print out Help information. FacultatifOptional

ExemplesExamples

  • VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdefVsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef

  • /NoLogo de VsixColorCompiler D:\xml\colors.xmlVsixColorCompiler D:\xml\colors.xml /noLogo

NotesNotes

  • Cet outil nécessite que la version la plus récente du runtime VC ++ être installé.This tool requires that the latest version of the VC++ runtime be installed.

  • Seuls les fichiers uniques sont pris en charge.Only single files are supported. La conversion en bloc via les chemins d’accès de dossier n’est pas pris en charge.Bulk conversion via folder paths is not supported.

Résultat de l'exempleSample output

Le fichier .pkgdef généré par l’outil sera semblable à la ci-dessous clés :The .pkgdef file generated by the tool will be similar to the below keys:

[$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