Visual studio code 如何使VS代码将其他文件扩展名视为特定语言?

Visual studio code 如何使VS代码将其他文件扩展名视为特定语言?,visual-studio-code,vscode-settings,Visual Studio Code,Vscode Settings,或者有没有办法切换当前文件的语言以使用语法突出显示功能 例如,*。jsx实际上使用JavaScript,但VS-code无法识别它。按住Ctrl+Shift+p(或Mac上的cmd),选择“更改语言模式”,它就出现了 但我仍然找不到一种方法,使VS代码能够识别具有特定扩展名的文件作为某种特定语言。我在这里找到了解决方案: 转到VS\u code\u文件夹/resources/app/extensions/,在那里更新package.json我采用了不同的方法来解决几乎相同的问题,在我的例子中,我

或者有没有办法切换当前文件的语言以使用语法突出显示功能

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

按住Ctrl+Shift+p(或Mac上的cmd),选择“更改语言模式”,它就出现了

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

我在这里找到了解决方案:


转到
VS\u code\u文件夹/resources/app/extensions/
,在那里更新
package.json

我采用了不同的方法来解决几乎相同的问题,在我的例子中,我做了一个新的扩展,添加了对Drupal特定文件(如.module和.inc)的PHP语法突出显示支持:

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

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

上的以下步骤对我很有效:

要扩展现有的着色程序,您需要创建一个简单的 在.vscode/extensions下的新文件夹中打包.json,并提供 extensionDependencies属性,指定所需的自定义项 增加。在下面的示例中,将扩展名.mmd添加到 减价染色剂。请注意,ExtensionDependence 名称与自定义项匹配,但语言id必须与 正在扩展的着色程序的语言id

在中,您可以向
settings.json
文件添加语言高亮显示的持久文件关联,如下所示:

    "files.associations": {
        "*.md.html": "markdown"
    },
//将您的设置放在此文件中以覆盖默认设置
{
“某些设置”:自定义值,
...
“文件.关联”:{
“*.thor”:“ruby”,
“*.jsx”:“javascript”,
“Jenkinsfile*”:“groovy”
}
}
您可以使用Ctrl+Shift+p,然后键入
settings JSON
。选择首选项:打开设置(JSON)打开
设置。JSON

Files:Associations
功能首次在Visual Studio代码1.0版(2016年3月)中引入。检查发行说明和文档中提供的。例如:

// .vscode/settings.json in workspace

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

例如,这将使文件以
.variables
.overrides
结尾,就像对待其他较少的文件一样。在代码着色方面,在(自动)格式化方面。根据需要在用户设置或项目设置中定义


(语义用户界面使用了这些奇怪的扩展,如果你想知道的话)

我找到的最简单的全局关联方法就是简单地按住ctrl+k m键(或者按住ctrl+shift+p键并键入“change language mode”),打开一个与之关联的文件

在第一个选项中,将是“为“x”配置文件关联”(无论文件类型如何-请参阅所附图片) 选择此选项将使文件类型关联永久化

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

这对我很有用


您可以将md.html扩展名添加到
settings.json
文件关联中,以启用以下文件的标记格式:

    "files.associations": {
        "*.md.html": "markdown"
    },
settings.json
文件位于不同的位置,具体取决于您的操作系统。例如,它是macOS中的
~/Library/Application Support/code/User/settings.json

您可以在VS代码中使用Ctrl+Shift+p打开和编辑它。

Nice。如果您有相同的扩展名,但基于路径的语言解析器不同,那么这就很方便了。例如,你可以让yml在一个文件夹中处理广场管道,在另一个文件夹中处理Ansible文件。如果可以的话,我会对此进行两次投票。我一直在尝试使用.html扩展名保留Nanoc布局和部分的语法,这就解决了:
“***/layouts/***.html”:“erb”
-值得注意的是,VSCode“语言模式”下拉列表在括号中显示了语法高亮灯的实际名称,例如
Ruby erb(erb)
这对我来说是可行的,但是作为一个附带问题,
equinusocio.vsc材质主题图标
无法将图标正确映射到这些类型。关联的值需要是语言/插件的ID,而不是名称。例如,我安装的VBScript插件,ID为vbs。“*.vms”:“vbs”获取要正确关联的自定义扩展。刚刚遇到类似问题。如果添加文件关联似乎不起作用,请确保没有关闭
.editorconfig
文件,或者将VSCode和
.editorconfig
之间的配置对齐,后者将优先。您还可以将这些设置放在特定于项目的
${projectdir}中/.vscode/settings.json
文件。我添加了.ps1作为关联,并启用了ps扩展,但语法不完整,我使用的是14天前构建的windows 10和vscode 1.51.1..ctrl+shit+p对我没有任何帮助。编辑器菜单路径是什么?似乎有一个直接到
更改语言模式的快捷方式
Alt+K,M
Cmd+K,M
用于Mac。这是非常可能的。请看下面我的答案:如果VSC没有帮助,为什么会有文件关联?ctrl+shit+p对我不起作用。什么是常规的非捷径方法?谢谢-这对我很有效。手动编辑
settings.json
文件时不清楚扩展ID应该是什么,但是这个方法对它进行了排序!欢迎您@ccbunney,很高兴它对您有所帮助。这和我遇到的问题完全一样——我从来没有弄清楚我需要的扩展ID,哈哈。无论如何,我真的很高兴为自己找到了这个解决方案
    "files.associations": {
        "*.md.html": "markdown"
    },