【问题标题】:Make an extension is VSCode work only with specific languages?进行扩展是 VSCode 仅适用于特定语言吗?
【发布时间】:2021-01-25 19:11:18
【问题描述】:

我最近在 VSCode 中安装了一个扩展,我发现它对我的工作流程非常有用。

扩展程序位于This Repository。 它可以让您在代码块的开头和结尾语法下划线,而且我发现它对于处理 html.erb 文件非常有用,因为 VSCode 在突出显示某些 sn-ps 代码方面做得并不好。

有没有办法让扩展只在特定语言或特定文件类型中工作? 目前它在全球范围内工作,即使是纯文本(例如,如果我输入“do end”,即使我不是使用 ruby​​ 语言或.rb 文件,它也会在它下划线)。我希望它只在 .rb.html.erb 文件中工作。

让我用更专业的方式解释一下:

当前行为:

如果我在 VSCode 中打开纯文本文件并输入 do end,扩展名会在其下划线。

预期行为:

如果我在 VSCode 中打开纯文本文件并输入 do end 扩展名 d̲o̲e̲s̲ ̲n̲o̲t̲ 必须在其下划线。它必须在.rb.html.erb 文件中为do end o̲n̲l̲y̲ 加下划线。


谢谢

【问题讨论】:

    标签: ruby-on-rails ruby typescript visual-studio-code


    【解决方案1】:

    language onActivation events

    在您的package.json 文件中:

    "activationEvents": [
      "onLanguage:ruby",
      "onLanguage: whatever the languageID for .html.erb files is"
    ]
    

    替换为.rb.html.erb 文件的语言标识符,您可以有多个onLanguage 事件,如图所示。


    另外,查看您提供的扩展程序的package.json 链接,您应该删除activationEvent "*" - 所以只有上面的(我不知道.html.erb 文件的语言标识符是什么)。

    【讨论】:

    • 不幸的是,它没有用。扩展仍然强调无处不在的块。也许扩展中还有其他配置不正确的东西,我想我会忍受的。感谢您花时间回答。
    • 在编辑后的答案中查看一些 cmets,特别是删除 "*" 作为激活事件。
    • 我尝试只使用“onLanguage:ruby”。起初我试图查看扩展是否适用于 .html.erb 文件,但它没有(这很好)。然后我继续使用 .rb 文件,它工作(再次,很好)。但后来我回到 .html.erb 文件,它也开始在这里工作(不好)。然后我检查了纯文本,它也在这里工作。对我来说,似乎每当我使用 Ruby 时扩展都会被激活,然后它会在全球范围内保持活跃。我认为它没有被编程为仅适用于特定语言。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多