Добавление меню и команд в расширения Visual Studio
В этой статье описаны действия по добавлению меню и команд в расширение Visual Studio. Команды чаще всего используются в качестве кнопок в меню вокруг Visual Studio. Для создания команды требуется два шага:
- Определение команды
- Обработка вызова щелчка и вызова
Определение команды
Каждая кнопка в каждом меню — это команда. Чтобы добавить команду в расширение, сначала необходимо определить ее в VSCT-файле. Это может выглядеть примерно так:
<Buttons>
<Button guid="MyPackage" id="MyCommand" priority="0x0105" type="Button">
<Parent guid="VSMainMenu" id="View.DevWindowsGroup.OtherWindows.Group1"/>
<Icon guid="ImageCatalogGuid" id="StatusInformation" />
<CommandFlag>IconIsMoniker</CommandFlag>
<Strings>
<ButtonText>R&unner Window</ButtonText>
</Strings>
</Button>
</Buttons>
Эта кнопка помещается в родительскую группу, расположенную в меню "Просмотреть > другие окна" , как указано в элементе Parent
.
Теперь вы можете запустить расширение, чтобы узнать, отображается ли команда в нужном расположении и меню.
Обработка вызовов щелчка и вызова
После определения кнопки необходимо обработать то, что происходит при вызове. Мы делаем это в классе C#, который выглядит следующим образом:
[Command("489ba882-f600-4c8b-89db-eb366a4ee3b3", 0x0100)]
public class MyCommand : BaseCommand<TestCommand>
{
protected override Task ExecuteAsync(OleMenuCmdEventArgs e)
{
// Do something
}
}
Обязательно вызовите его из метода класса Package
InitializeAsync
.
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
{
await this.RegisterCommandsAsync();
}
Идентификатор команды Guid и идентификатор должны соответствовать паре guid/id из Button
элемента в VSCT-файле.