| 1 | <?xml version="1.0" encoding="utf-8"?>
|
| 2 | <CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
| 3 |
|
| 4 | <!-- This is the file that defines the actual layout and type of the commands.
|
| 5 | It is divided in different sections (e.g. command definition, command
|
| 6 | placement, ...), with each defining a specific set of properties.
|
| 7 | See the comment before each section for more details about how to
|
| 8 | use it. -->
|
| 9 |
|
| 10 | <!-- The VSCT compiler (the tool that translates this file into the binary
|
| 11 | format that VisualStudio will consume) has the ability to run a preprocessor
|
| 12 | on the vsct file; this preprocessor is (usually) the C++ preprocessor, so
|
| 13 | it is possible to define includes and macros with the same syntax used
|
| 14 | in C++ files. Using this ability of the compiler here, we include some files
|
| 15 | defining some of the constants that we will use inside the file. -->
|
| 16 |
|
| 17 | <!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
|
| 18 | <Extern href="stdidcmd.h"/>
|
| 19 |
|
| 20 | <!--This header contains the command ids for the menus provided by the shell. -->
|
| 21 | <Extern href="vsshlids.h"/>
|
| 22 |
|
| 23 |
|
| 24 |
|
| 25 |
|
| 26 | <!--The Commands section is where we the commands, menus and menu groups are defined.
|
| 27 | This section uses a Guid to identify the package that provides the command defined inside it. -->
|
| 28 | <Commands package="guidClangFormatPkg">
|
| 29 | <!-- Inside this section we have different sub-sections: one for the menus, another
|
| 30 | for the menu groups, one for the buttons (the actual commands), one for the combos
|
| 31 | and the last one for the bitmaps used. Each element is identified by a command id that
|
| 32 | is a unique pair of guid and numeric identifier; the guid part of the identifier is usually
|
| 33 | called "command set" and is used to group different command inside a logically related
|
| 34 | group; your package should define its own command set in order to avoid collisions
|
| 35 | with command ids defined by other packages. -->
|
| 36 |
|
| 37 |
|
| 38 | <!-- In this section you can define new menu groups. A menu group is a container for
|
| 39 | other menus or buttons (commands); from a visual point of view you can see the
|
| 40 | group as the part of a menu contained between two lines. The parent of a group
|
| 41 | must be a menu. -->
|
| 42 | <Groups>
|
| 43 |
|
| 44 | <Group guid="guidClangFormatCmdSet" id="MyMenuGroup" priority="0x0600">
|
| 45 | <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
|
| 46 | </Group>
|
| 47 |
|
| 48 |
|
| 49 |
|
| 50 | </Groups>
|
| 51 |
|
| 52 | <!--Buttons section. -->
|
| 53 | <!--This section defines the elements the user can interact with, like a menu command or a button
|
| 54 | or combo box in a toolbar. -->
|
| 55 | <Buttons>
|
| 56 | <!--To define a menu group you have to specify its ID, the parent menu and its display priority.
|
| 57 | The command is visible and enabled by default. If you need to change the visibility, status, etc, you can use
|
| 58 | the CommandFlag node.
|
| 59 | You can add more than one CommandFlag node e.g.:
|
| 60 | <CommandFlag>DefaultInvisible</CommandFlag>
|
| 61 | <CommandFlag>DynamicVisibility</CommandFlag>
|
| 62 | If you do not want an image next to your command, remove the Icon node /> -->
|
| 63 |
|
| 64 | <Button guid="guidClangFormatCmdSet" id="cmdidClangFormatSelection" priority="0x0100" type="Button">
|
| 65 | <Parent guid="guidClangFormatCmdSet" id="MyMenuGroup" />
|
| 66 | <Icon guid="guidImages" id="bmpPic1" />
|
| 67 | <Strings>
|
| 68 | <ButtonText>Clang Format Selection</ButtonText>
|
| 69 | </Strings>
|
| 70 | </Button>
|
| 71 |
|
| 72 | <Button guid="guidClangFormatCmdSet" id="cmdidClangFormatDocument" priority="0x0101" type="Button">
|
| 73 | <Parent guid="guidClangFormatCmdSet" id="MyMenuGroup" />
|
| 74 | <Icon guid="guidImages" id="bmpPic2" />
|
| 75 | <Strings>
|
| 76 | <ButtonText>Clang Format Document</ButtonText>
|
| 77 | </Strings>
|
| 78 | </Button>
|
| 79 |
|
| 80 | </Buttons>
|
| 81 |
|
| 82 | <!--The bitmaps section is used to define the bitmaps that are used for the commands.-->
|
| 83 | <Bitmaps>
|
| 84 | <!-- The bitmap id is defined in a way that is a little bit different from the others:
|
| 85 | the declaration starts with a guid for the bitmap strip, then there is the resource id of the
|
| 86 | bitmap strip containing the bitmaps and then there are the numeric ids of the elements used
|
| 87 | inside a button definition. An important aspect of this declaration is that the element id
|
| 88 | must be the actual index (1-based) of the bitmap inside the bitmap strip. -->
|
| 89 | <Bitmap guid="guidImages" href="Resources\Images_32bit.bmp" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>
|
| 90 |
|
| 91 | </Bitmaps>
|
| 92 |
|
| 93 | </Commands>
|
| 94 |
|
| 95 |
|
| 96 | <KeyBindings>
|
| 97 | <KeyBinding guid="guidClangFormatCmdSet" id="cmdidClangFormatSelection" editor="guidTextEditor" key1="R" mod1="Control" key2="F" mod2="Control"/>
|
| 98 | <KeyBinding guid="guidClangFormatCmdSet" id="cmdidClangFormatDocument" editor="guidTextEditor" key1="R" mod1="Control" key2="D" mod2="Control"/>
|
| 99 | </KeyBindings>
|
| 100 |
|
| 101 |
|
| 102 |
|
| 103 | <Symbols>
|
| 104 | <!-- This is the package guid. -->
|
| 105 | <GuidSymbol name="guidClangFormatPkg" value="{c5286038-25d3-4f65-83a8-51fa2df4a146}" />
|
| 106 |
|
| 107 | <!-- This is the guid used to group the menu commands together -->
|
| 108 | <GuidSymbol name="guidClangFormatCmdSet" value="{e39cbab1-0f96-4022-a2bc-da5a9db7eb78}">
|
| 109 |
|
| 110 | <IDSymbol name="MyMenuGroup" value="0x1020" />
|
| 111 | <IDSymbol name="cmdidClangFormatSelection" value="0x0100" />
|
| 112 | <IDSymbol name="cmdidClangFormatDocument" value="0x0101" />
|
| 113 | </GuidSymbol>
|
| 114 |
|
| 115 | <GuidSymbol name="guidTextEditor" value="{8B382828-6202-11d1-8870-0000F87579D2}" />
|
| 116 |
|
| 117 |
|
| 118 | <GuidSymbol name="guidImages" value="{6d53937b-9ae1-42e1-8849-d876dcdbad7b}" >
|
| 119 | <IDSymbol name="bmpPic1" value="1" />
|
| 120 | <IDSymbol name="bmpPic2" value="2" />
|
| 121 | <IDSymbol name="bmpPicSearch" value="3" />
|
| 122 | <IDSymbol name="bmpPicX" value="4" />
|
| 123 | <IDSymbol name="bmpPicArrows" value="5" />
|
| 124 | </GuidSymbol>
|
| 125 | </Symbols>
|
| 126 |
|
| 127 | </CommandTable>
|
| 128 | |