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

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

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

回答(11)

2 years ago

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

您可以通过以下菜单打开此文件: File > Preferences > Settings . (Ctrl或Cmd)

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

2 years ago

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

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

2 years ago

例如:

// .vscode/settings.json in workspace

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

2 years ago

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

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

enter image description here

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

2 years ago

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

转到VS_CODE_FOLDER / resources / app / extensions /并更新 package.json

2 years ago

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

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

2 years ago

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

2 years ago

这对我有用 .

enter image description here

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

2 years ago

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

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

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

2 years ago

“cmd -k m”默认绑定到“workbench.action.editor.changeLanguageMode”,但我没有找到一种方法将文件扩展名自动关联到语言模式

2 years ago

工具 - >选项 - >文本编辑器 - >文件扩展名 . 从那里,您可以添加扩展名并选择您想要被视为的已知扩展名/语言 .