| <?xml version="1.0" encoding="utf-8"?> | |
| <CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
| <!-- This is the file that defines the actual layout and type of the commands. | |
| It is divided in different sections (e.g. command definition, command | |
| placement, ...), with each defining a specific set of properties. | |
| See the comment before each section for more details about how to | |
| use it. --> | |
| <!-- The VSCT compiler (the tool that translates this file into the binary | |
| format that VisualStudio will consume) has the ability to run a preprocessor | |
| on the vsct file; this preprocessor is (usually) the C++ preprocessor, so | |
| it is possible to define includes and macros with the same syntax used | |
| in C++ files. Using this ability of the compiler here, we include some files | |
| defining some of the constants that we will use inside the file. --> | |
| <!--This is the file that defines the IDs for all the commands exposed by VisualStudio. --> | |
| <Extern href="stdidcmd.h"/> | |
| <!--This header contains the command ids for the menus provided by the shell. --> | |
| <Extern href="vsshlids.h"/> | |
| <!--The Commands section is where we the commands, menus and menu groups are defined. | |
| This section uses a Guid to identify the package that provides the command defined inside it. --> | |
| <Commands package="guidClangFormatPkg"> | |
| <!-- Inside this section we have different sub-sections: one for the menus, another | |
| for the menu groups, one for the buttons (the actual commands), one for the combos | |
| and the last one for the bitmaps used. Each element is identified by a command id that | |
| is a unique pair of guid and numeric identifier; the guid part of the identifier is usually | |
| called "command set" and is used to group different command inside a logically related | |
| group; your package should define its own command set in order to avoid collisions | |
| with command ids defined by other packages. --> | |
| <!-- In this section you can define new menu groups. A menu group is a container for | |
| other menus or buttons (commands); from a visual point of view you can see the | |
| group as the part of a menu contained between two lines. The parent of a group | |
| must be a menu. --> | |
| <Groups> | |
| <Group guid="guidClangFormatCmdSet" id="MyMenuGroup" priority="0x0600"> | |
| <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> | |
| </Group> | |
| </Groups> | |
| <!--Buttons section. --> | |
| <!--This section defines the elements the user can interact with, like a menu command or a button | |
| or combo box in a toolbar. --> | |
| <Buttons> | |
| <!--To define a menu group you have to specify its ID, the parent menu and its display priority. | |
| The command is visible and enabled by default. If you need to change the visibility, status, etc, you can use | |
| the CommandFlag node. | |
| You can add more than one CommandFlag node e.g.: | |
| <CommandFlag>DefaultInvisible</CommandFlag> | |
| <CommandFlag>DynamicVisibility</CommandFlag> | |
| If you do not want an image next to your command, remove the Icon node /> --> | |
| <Button guid="guidClangFormatCmdSet" id="cmdidClangFormatSelection" priority="0x0100" type="Button"> | |
| <Parent guid="guidClangFormatCmdSet" id="MyMenuGroup" /> | |
| <Icon guid="guidImages" id="bmpPic1" /> | |
| <Strings> | |
| <ButtonText>Clang Format Selection</ButtonText> | |
| </Strings> | |
| </Button> | |
| <Button guid="guidClangFormatCmdSet" id="cmdidClangFormatDocument" priority="0x0101" type="Button"> | |
| <Parent guid="guidClangFormatCmdSet" id="MyMenuGroup" /> | |
| <Icon guid="guidImages" id="bmpPic2" /> | |
| <Strings> | |
| <ButtonText>Clang Format Document</ButtonText> | |
| </Strings> | |
| </Button> | |
| </Buttons> | |
| <!--The bitmaps section is used to define the bitmaps that are used for the commands.--> | |
| <Bitmaps> | |
| <!-- The bitmap id is defined in a way that is a little bit different from the others: | |
| the declaration starts with a guid for the bitmap strip, then there is the resource id of the | |
| bitmap strip containing the bitmaps and then there are the numeric ids of the elements used | |
| inside a button definition. An important aspect of this declaration is that the element id | |
| must be the actual index (1-based) of the bitmap inside the bitmap strip. --> | |
| <Bitmap guid="guidImages" href="Resources\Images_32bit.bmp" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/> | |
| </Bitmaps> | |
| </Commands> | |
| <KeyBindings> | |
| <KeyBinding guid="guidClangFormatCmdSet" id="cmdidClangFormatSelection" editor="guidTextEditor" key1="R" mod1="Control" key2="F" mod2="Control"/> | |
| <KeyBinding guid="guidClangFormatCmdSet" id="cmdidClangFormatDocument" editor="guidTextEditor" key1="R" mod1="Control" key2="D" mod2="Control"/> | |
| </KeyBindings> | |
| <Symbols> | |
| <!-- This is the package guid. --> | |
| <GuidSymbol name="guidClangFormatPkg" value="{c5286038-25d3-4f65-83a8-51fa2df4a146}" /> | |
| <!-- This is the guid used to group the menu commands together --> | |
| <GuidSymbol name="guidClangFormatCmdSet" value="{e39cbab1-0f96-4022-a2bc-da5a9db7eb78}"> | |
| <IDSymbol name="MyMenuGroup" value="0x1020" /> | |
| <IDSymbol name="cmdidClangFormatSelection" value="0x0100" /> | |
| <IDSymbol name="cmdidClangFormatDocument" value="0x0101" /> | |
| </GuidSymbol> | |
| <GuidSymbol name="guidTextEditor" value="{8B382828-6202-11d1-8870-0000F87579D2}" /> | |
| <GuidSymbol name="guidImages" value="{6d53937b-9ae1-42e1-8849-d876dcdbad7b}" > | |
| <IDSymbol name="bmpPic1" value="1" /> | |
| <IDSymbol name="bmpPic2" value="2" /> | |
| <IDSymbol name="bmpPicSearch" value="3" /> | |
| <IDSymbol name="bmpPicX" value="4" /> | |
| <IDSymbol name="bmpPicArrows" value="5" /> | |
| </GuidSymbol> | |
| </Symbols> | |
| </CommandTable> |