Включить расширение 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 и образец Мадса Кристенсена.

Другие вопросы по тегам