Включить расширение VSIX на определенном языке?
Есть ли способ определения текущего языка программирования и отключения расширения на основе этого языка?
Я создаю пакет VSIX, который совместим только в сборке C++. Я могу программно определять текущий язык программирования и отвечать на неподдерживаемые языки и не открывать свое диалоговое окно, но я чувствую, что должно быть свойство или что-то, что включало бы / отключало расширение на определенном языке.
1 ответ
Вы можете создать пользовательское контекстное правило пользовательского интерфейса для C++ и использовать его для загрузки вашего пакета. Это выглядит так для C# и VB:
[ProvideAutoLoad(UIContexts.LoadContext)]
[ProvideUIContextRule(UIContexts.LoadContext,
"RightFileTypeOpen",
"(CSharpFileOpen | VBFileOpen)",
new[] { "CSharpFileOpen", "VBFileOpen" },
new[] { "ActiveEditorContentType:CSharp", "ActiveEditorContentType:Basic" })]
Дополнительные сведения см. В разделе Как использовать контекст пользовательского интерфейса на основе правил для расширений Visual Studio на MSDN и образец Мадса Кристенсена.