472

或者有没有办法切换当前文件的语言,以便正确突出显示语法?

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

4

10 回答 10

667

更新

请注意,JoelAZ 的回答要容易得多,并且会导致相同的设置更改!下面的答案仍然有效,只是更多的步骤和更多的大惊小怪。

旧答案

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命令面板),然后键入. 选择首选项:打开设置 (JSON)打开您的.Psettings JSONsettings.json

要找到正确的语言 ID,请使用Ctrl++ (或菜单中的查看->Shift命令面板),然后键入. 您可以在列表中看到语言 ID,例如键入以查找 Docker 文件的语言 ID ( )。在上面示例的第一个条目中,是文件结尾,是语言 ID。PChange Language Modedockerdockerfile.thorruby

Files: Associations功能首次在 Visual Studio Code 版本 1.0(2016 年 3 月)中引入。检查发行说明中可用的通配符模式和文档中的已知语言字符串

于 2016-04-22T08:47:25.670 回答
184

我为全局关联找到的最简单的方法是简单地Ctrl+ k m(或Ctrl++并键入“更改语言模式”)ShiftP您关联打开的类型的文件。

在第一个选择中将是选项“为 'x' 配置文件关联”(无论文件类型如何 - 参见附图)。选择此项可让您选择语言,然后使文件类型关联永久化。

在此处输入图像描述

自从原始问题和接受的答案(我不知道它何时改变)以来,这可能已经改变(可能已经改变),但它比接受的和其他一些答案中的手动编辑步骤容易得多,并且完全避免了弄乱可能不明显的 ID。

于 2018-07-08T04:00:01.190 回答
145

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

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

于 2015-04-30T17:03:18.180 回答
51

例如:

// .vscode/settings.json in workspace

{
  "files.associations": {
    "*Container.js": "javascriptreact",
    "**/components/*/*.js": "javascriptreact",
    "**/config/routes.js": "javascriptreact"
  }
}
于 2017-02-14T06:47:39.317 回答
21

这对我有用。

在此处输入图像描述

{
"files.associations": {"*.bitesize": "yaml"}
 }
于 2018-08-04T06:23:16.047 回答
12

例如,这将使文件以任何其他 LESS 文件结尾并被处理.variables.overrides在代码着色方面,在(自动)格式方面。根据需要在用户设置或项目设置中定义。

(语义 UI 使用这些奇怪的扩展,以防您想知道)

于 2017-09-13T07:55:00.073 回答
11

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

VS_CODE_FOLDER/resources/app/extensions/那里更新package.json

于 2015-10-23T09:25:26.533 回答
10

按照 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"]
        }]
    }
}
于 2016-03-10T01:08:11.730 回答
7

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

    "files.associations": {
        "*.md.html": "markdown"
    },

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

于 2021-03-29T07:16:24.433 回答
6

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

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

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

于 2015-11-24T00:10:02.043 回答