【问题标题】:Is it possible to associate a given language with a file extension in VSCode?是否可以将给定语言与 VSCode 中的文件扩展名相关联?
【发布时间】:2015-04-29 23:18:46
【问题描述】:

目前是否可以将给定语言与通常不与该语言关联的文件扩展名相关联?

假设我有一个文件类型 *.foo,我想将它与 JavaScript 相关联以进行语法突出显示。有谁知道VSCode目前是否可以做到这一点?

我正在使用一种在语法上类似于 Visual Basic 的语言,并希望将其与该语言类型相关联。我知道您可以在打开文件后指定语言,但是每次打开文件时都这样做很麻烦。

例如,在 Sublime Text 中,可以选择“以当前扩展名打开所有...”。 VSCode 还存在这种情况吗?

编辑:Visual Studio Code 团队添加了一种添加主题和语言的正确方法。

https://code.visualstudio.com/updates#_yo-code-streamlined-customizations-for-vs-code

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    VSCode v1.0 正式添加了 File to Language Association 功能。将以下内容添加到.vscode/settings.json

    "files.associations": {
        "*.foo": "javascript"
    }
    

    您可以在Visual Studio Code 1.0.0 release notes “File to language association” section 中找到更多详细信息。

    【讨论】:

    • 更改设置后可能需要重启VSCode。
    • 是否有人能够在文档中找到列出所有受支持语言名称的页面?例如:支持 C++,但我是在文件中添加“c++”,还是“cpp”或其他内容?我只能找到带有“php”的示例。
    【解决方案2】:

    你可以自己做: 在本例中,我会将“.ino”文件添加到 C++ 插件中。

    导航到包含相应插件的文件夹: C:\Users\username\AppData\Local\Code\app-0.1.0\resources\app\plugins\vs.language.cpp

    打开 ticino.plugin.json 文件并编辑 contributes.language.extension。在这种情况下,您从:

    "extensions": [ ".cpp", ".c", ".cc", ".cxx", ".h", ".hpp", ".hh"],
    

    "extensions": [ ".cpp", ".c", ".cc", ".cxx", ".h", ".hpp", ".hh", ".ino" ],
    

    【讨论】:

    • 假设我们想以 HTML 格式打开 twig 或 smarty 文件......我没有看到对应的 HTML 文件夹,也没有看到其他任何可能的文件夹。跨度>
    • \AppData\Local\Code\app-0.1.0\resources\app\client\vs\languages 中还有其他可能有用的文件
    • 谢谢@Sargeros。在 MacOS 方面值得一提的是,它可以在这里找到:/Volumes/Mac OS/Applications/Visual Studio Code.app/Contents/Resources/app/plugins/vs.language.vb
    • 我和上面的@patricksweeney 有同样的问题;我看不到如何为 html 执行此操作...
    • @mutex 我猜你可以编辑 \AppData\Local\Code\app-0.3.0\resources\app\plugins\vs.language.xml\ticino.plugin.json 并添加所需的扩展名。如果它可以突出显示 XML,它应该能够为 HTML 做同样的事情。
    【解决方案3】:

    这个问题的答案有更新,所以想更新一下。

    Visual Studio Code 团队发布了一种使用带有 TextMate tmBundles 的 Yeoman 生成器向应用程序添加新语言和主题的正确方法,此处记录:

    https://code.visualstudio.com/updates#_yo-code-streamlined-customizations-for-vs-code

    这里: https://code.visualstudio.com/updates#_customization-adding-language-colorization-bracket-matching

    【讨论】:

      【解决方案4】:

      [编辑:上面的答案对我不起作用(奇怪)-但我将其改写为以下]

      打开文件

      C:\Users\<user>\AppData\Local\Code\app-0.1.3\resources\app\client\vs\workbench\workbench.main.js
      

      替换

      t.knownTextMimes={
      

      t.knownTextMimes={".twig":"text/html",
      

      我们只是将 mime-type 添加到已知文本 mime 数组中。

      【讨论】:

      • 嗨,Daniel,我认为您正在解决一个不同的问题。上述解决方案在当前版本的 VSCode 中仍然有效。
      • 奇怪,我无法在我的工作或家用电脑上运行上述内容 - 所以我重新处理了它。感谢您通知我!
      【解决方案5】:
      • 转到文件 > 首选项 > 设置强>
      • 在右侧树形视图中,展开文本编辑器并选择文件
      • Associations 部分点击在 settings.json 中编辑

      在正确的编辑器中,您可以添加您的关联。这是一个添加扩展名.hpp的示例

      {
        "files.associations": {
          "c++ header files": ".hpp"
        }
      }
      

      【讨论】:

      • 对象内容倒置,属性为pattern,值为language,如"*.ext": "somelanguage"
      猜你喜欢
      • 2010-10-30
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      相关资源
      最近更新 更多