【发布时间】:2015-07-10 12:04:25
【问题描述】:
或者有没有办法切换当前文件的语言,以便正确突出显示语法?
例如,*.jsx 实际上是 JavaScript,但 VS Code 无法识别它。
【问题讨论】:
标签: visual-studio-code vscode-settings
或者有没有办法切换当前文件的语言,以便正确突出显示语法?
例如,*.jsx 实际上是 JavaScript,但 VS Code 无法识别它。
【问题讨论】:
标签: visual-studio-code vscode-settings
请注意,JoelAZ 的answer 更简单,并且会导致相同的设置更改!下面的答案仍然有效,只是更多的步骤和更多的大惊小怪。
在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。选择Preferences: Open Settings (JSON)打开您的settings.json。
要找到正确的语言 ID,请使用 Ctrl+Shift+P(或 View -> Command Palette),然后输入Change Language Mode。您可以在列表中看到语言 ID,例如键入 docker 以查找 Docker 文件的语言 ID (dockerfile)。在上例的第一个条目中,.thor 是文件结尾,ruby 是语言 ID。
Files: Associations 功能首次在 Visual Studio Code 版本 1.0(2016 年 3 月)中引入。检查发行说明中可用的wildcard patterns 和文档中的known language strings。
【讨论】:
${projectdir}/.vscode/settings.json 文件中。
【讨论】:
settings.json文件时不清楚扩展ID应该是什么,但是这个方法排序了!
java 等预定义值是可以的,但是对于安装的VS Code 扩展,我们会不知所措。例如,我为 Apache *.conf 文件安装了一个 Apache 扩展,语言标识符原来是 apacheconf——我怎么猜到了?我通过遵循上述解决方案发现了这一点。然后我可以编辑settings.json 以进一步破解映射。
.gpx 文件被视为.xml 文件,但 VSC 在执行此操作后仍然没有语法突出显示文件。但是上面的这个解决方案效果很好
按住 Ctrl+Shift+P(或 Mac 上的 cmd),选择“更改语言模式”即可。
但我仍然无法找到一种方法让 VS Code 将具有特定扩展名的文件识别为某种特定语言。
【讨论】:
Change Language Mode的快捷方式; Alt+K, M
Cmd+K, M for Mac。
例如:
// .vscode/settings.json in workspace
{
"files.associations": {
"*Container.js": "javascriptreact",
"**/components/*/*.js": "javascriptreact",
"**/config/routes.js": "javascriptreact"
}
}
【讨论】:
"**/layouts/**/*.html": "erb" - 值得注意的是,VSCode“语言模式”下拉菜单在括号中显示了语法荧光笔的实际名称,例如Ruby ERB (erb)
equinusocio.vsc-material-theme-icons 没有正确地将图标映射到这些类型。
我在这里找到了解决方案:https://code.visualstudio.com/docs/customization/colorizer
转到VS_CODE_FOLDER/resources/app/extensions/ 并在那里更新package.json
【讨论】:
按照https://code.visualstudio.com/docs/customization/colorizer#_common-questions 上的步骤对我来说效果很好:
要扩展现有的着色器,您可以创建一个简单的 package.json 在 .vscode/extensions 下的新文件夹中,并提供 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"]
}]
}
}
【讨论】:
您可以将 md.html 扩展名添加到您的 settings.json 文件关联中,以启用 markdeep 文件的降价格式,如下所示:
"files.associations": {
"*.md.html": "markdown"
},
settings.json 文件位于不同的位置,具体取决于您的操作系统。例如它在 macOS 中是~/Library/Application Support/Code/User/settings.json。
您可以在 VS Code 中使用 Ctrl+Shift+p 打开和编辑它。
【讨论】:
我采用了不同的方法来解决几乎相同的问题,在我的例子中,我做了一个新的扩展,添加了对 Drupal 特定文件(例如 .module 和 .inc)的 PHP 语法高亮支持:https://github.com/mastazi/VS-code-drupal
正如您在代码中看到的,我创建了一个新的扩展而不是修改现有的 PHP 扩展。显然我在 Drupal 扩展中声明了对 PHP 扩展的依赖。
这样做的好处是,如果 PHP 扩展有更新,我对 Drupal 的自定义支持不会在更新过程中丢失。
【讨论】: