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

问题描述 投票:236回答:9

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

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

visual-studio-code vscode-settings
9个回答
374
投票

Visual Studio Code中,您可以将语言突出显示的持久文件关联添加到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"
  }
}

您可以使用Ctrl + Shift + p然后键入settings JSON。选择首选项:打开设置(JSON)以打开您的settings.json

Files: Associations功能最初是在Visual Studio Code 1.0版(2016年3月)中引入的。检查发行说明中的​​可用wildcard patterns和文档中的known language strings


84
投票

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

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


36
投票

我发现全局关联的最简单方法就是使用您正在关联的类型的文件ctrl + k m(或ctrl + shift + p并键入“更改语言模式”)。

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

enter image description here

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


19
投票

例如:

// .vscode/settings.json in workspace

{
  "files.associations": {
    "*Container.js": "javascriptreact",
    "**/components/*/*.js": "javascriptreact",
    "**/config/routes.js": "javascriptreact"
  }
}

13
投票

这适合我。

enter image description here

{
"files.associations": {"*.bitesize": "yaml"}
 }

11
投票

例如,这将使得以.variables.overrides结尾的文件被视为与任何其他LESS文件一样。就代码着色而言,就(自动)格式而言。根据需要定义用户设置或项目设置。

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


11
投票

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

VS_CODE_FOLDER/resources/app/extensions/然后更新package.json


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"]
        }]
    }
}

4
投票

嗨我已经采用了不同的方法来解决几乎相同的问题,在我的情况下,我做了一个新的扩展,添加了PHP语法高亮支持Drupal特定的文件(如.module和.inc):https://github.com/mastazi/VS-code-drupal

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

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

© www.soinside.com 2019 - 2024. All rights reserved.