如何使VS Code将其他文件扩展名视为特定语言?

Joh*_*eev 273 visual-studio-code vscode-settings

或者有没有办法切换当前文件的语言以使用语法高亮功能?

例如,*.jsx实际使用JavaScript但VS Code无法识别它.

Jos*_*ien 417

Visual Studio代码中,您可以将语言突出显示的持久文件关联添加到您的settings.json文件中,如下所示:

// Place your settings in this file to overwrite the default settings
{
  "some_setting": custom_value,
  ...

  "files.associations": {
    "*.thor": "ruby",
    "*.jsx": "javascript",
    "Jenkinsfile*": "groovy"
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以通过以下菜单打开此文件:文件 > 首选项 > 设置.(Ctrl+ ,Cmd+ ,)

此功能最初是在Visual Studio Code 1.0版(2016年3月)中引入的.检查发行说明中的可用通配符模式以及文档中的已知语言字符串.

  • 您还可以将这些设置放入项目特定的“${projectdir}/.vscode/settings.json”文件中。 (4认同)
  • 关联的值必须是语言/插件的ID,而不是名称。例如,我安装的VBScript插件,其ID为vbs。“ * .vms”:“ vbs”获取自定义扩展名以正确关联。 (2认同)
  • @TatiOverflow 从菜单中它是 *View* -> *Command Palette*。(但是你可能想尝试一下 Shift 按钮而不是狗屎按钮,那个按钮对我来说也没有多大作用。) (2认同)

Joh*_*eev 91

按住Ctrl + Shift + P(或Mac上的cmd),选择"更改语言模式",就可以了.

但我仍然找不到一种方法来使VS Code识别具有特定扩展名的文件作为某种特定语言.

  • 它似乎有一个直接改为"更改语言模式"的快捷方式; `Alt + K,M` (2认同)
  • 这是很有可能的。请参阅下面我的答案:/sf/answers/3586010781/ (2认同)

Joe*_*lAZ 45

我发现全局关联的最简单方法就是使用您正在关联的类型的文件来控制+ km(或ctrl + shift + p并键入"更改语言模式").

在第一个选项中将是"为'x'配置文件关联"(无论文件类型是什么 - 请参见附图)选择此选项会使文件类型关联成为永久关联

在此输入图像描述

这可能(可能是?)自原始问题/答案后发生了变化,我不知道何时更新)但它比先前给出的手动编辑步骤更容易,并且避免了不得不使用可能不明显的ID.

  • 谢谢-这对我有用。当手动编辑“settings.json”文件时,并不清楚扩展 ID 应该是什么,但是这个方法对它进行了排序! (2认同)
  • 我尝试了@Josien 的答案,得到了最多的投票,将“.gpx”文件视为“.xml”文件,但在执行此操作后,VSC 仍然不会语法突出显示该文件。但上面这个解决方案效果很好 (2认同)

B.M*_*.Ma 21

例如:

// .vscode/settings.json in workspace

{
  "files.associations": {
    "*Container.js": "javascriptreact",
    "**/components/*/*.js": "javascriptreact",
    "**/config/routes.js": "javascriptreact"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 好的。如果您有相同的扩展名,但基于路径的不同语言解析器,这会派上用场。例如,您可以使用 yml 来处理一个文件夹中的 Concourse 管道和另一个文件夹中的 Ansible 文件。 (2认同)

Isu*_*ghe 15

这适合我.

在此输入图像描述

{
"files.associations": {"*.bitesize": "yaml"}
 }
Run Code Online (Sandbox Code Playgroud)


Gus*_*avo 13

最简单的方法:

  1. 转到文件>首选项>设置
  2. 搜索“文件关联
  3. 点击“添加项目
  4. 添加您的扩展名(*.ext) 和首选语言

就这样。

在此输入图像描述


小智 11

我在这里找到了解决方案:https://code.visualstudio.com/docs/customization/colorizer

转到VS_CODE_FOLDER/resources/app/extensions /并进行更新 VS_CODE_FOLDER/resources/app/extensions/


Fra*_*cke 11

例如,这将使文件以任何其他LESS文件的形式结束.variables.overrides处理.就代码着色而言,就(自动)格式而言.根据需要定义用户设置或项目设置.

(语义UI使用这些奇怪的扩展,万一你想知道)


小智 7

按照https://code.visualstudio.com/docs/customization/colorizer#_common-questions上的步骤对 我有用:

要扩展现有的着色器,可以在.vscode/extensions下的新文件夹中创建一个简单的package.json,并提供extensionDependencies属性,指定要添加到的自定义.在下面的示例中,扩展名.mmd被添加到降价着色器中.请注意,extensionDependency名称不仅必须与自定义匹配,而且语言ID必须与您要扩展的着色器的语言ID匹配.

{
    "name": "MyMarkdown",
    "version": "0.0.1",
    "engines": {
        "vscode": "0.10.x"
    },
    "publisher": "none",
    "extensionDependencies": [
        "markdown"
    ],
    "contributes": {
        "languages": [{
            "id": "markdown",
            "aliases": ["mmd"],
            "extensions": [".mmd"]
        }]
    }
}
Run Code Online (Sandbox Code Playgroud)


dir*_*kk0 7

您可以将 md.html 扩展名添加到您的settings.json文件关联中,以便为markdeep文件启用Markdown格式,如下所示:

    "files.associations": {
        "*.md.html": "markdown"
    },
Run Code Online (Sandbox Code Playgroud)

settings.json文件位于不同的位置,具体取决于您的操作系统。例如它~/Library/Application Support/Code/User/settings.json在 macOS 中。您可以打开与编辑Ctrl+ Shift+p在VS代码。


mas*_*azi 5

我采用了一种不同的方法来解决几乎相同的问题,就我而言,我制作了一个新扩展,它添加了对 Drupal 特定文件(例如 .module 和 .inc)的 PHP 语法高亮支持:https://github。 com/mastazi/VS-code-drupal

正如您在代码中看到的,我创建了一个新扩展,而不是修改现有的 PHP 扩展。显然我在 Drupal 扩展中声明了对 PHP 扩展的依赖。

这样做的好处是,如果 PHP 扩展有更新,我对 Drupal 的自定义支持不会在更新过程中丢失。