3

有没有一种方法可以检测当前的编程语言并禁用基于该语言的扩展?

我正在创建一个仅在 C++ 构建中兼容的 VSIX 包。我可以以编程方式检测当前的编程语言并响应不支持的语言而不打开我的对话框,但我觉得应该有一个属性或其他东西可以启用/禁用某种语言的扩展。

4

1 回答 1

4

您可以为 C++ 创建自定义 UI 上下文规则并使用它来加载您的包。对于 C# 和 VB,它看起来像这样:

[ProvideAutoLoad(UIContexts.LoadContext)]
[ProvideUIContextRule(UIContexts.LoadContext,
    "RightFileTypeOpen",
    "(CSharpFileOpen | VBFileOpen)",
    new[] { "CSharpFileOpen", "VBFileOpen" },
    new[] { "ActiveEditorContentType:CSharp", "ActiveEditorContentType:Basic" })]

有关更多详细信息,请参阅MSDN 上的如何:为 Visual Studio 扩展使用基于规则的 UI 上下文和 Mads Kristensen 的示例

于 2017-09-08T17:53:27.080 回答