【问题标题】:Can you create a language specific extension command?您可以创建特定于语言的扩展命令吗?
【发布时间】:2017-01-11 18:19:04
【问题描述】:

在开发 VSCode 扩展时,是否可以创建仅适用于某些语言的扩展命令?

在您的 package.json 清单中,您可以激活每种语言的扩展程序:

"activationEvents": [
    "onLanguage:html"
]

但是,所有扩展的命令面板中仍然有一个命令。在扩展程序被激活之前它不会工作。

我不知道如何创建命令,只针对特定语言出现...您可以像这样定义命令:

"contributes": {
    "commands": [{
        "command": "extension.sayHello",
        "title": "Hello World"
    }]
}

但此命令可用于命令面板中的所有语言。在我的示例中,我想要创建的特定命令实际上只对 HTML 语言有意义。该命令专门在某处查询 API,然后将一些 HTML 插入到当前文件中。所以很明显,将此命令用于python 或ruby 等其他语言是没有意义的。

可以这样做吗?

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    在 VSCode 1.10 中添加了对此的支持:https://code.visualstudio.com/updates/v1_10#_context-specific-visibility-of-command-palette-menu-items

    在你的package.json:

    "commands": [{
        "command": "extension.sayHello",
        "title": "Hello World"
    }],
    "menus": {
        "commandPalette": [{
            "command": "extension.sayHello",
            "when": "editorLangId == html"
        }]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多