有没有一种方法可以使Visual Studio Code识别EJS文件中的HTML语法


68

我在Mac上使用Visual Studio Code在Node.js应用程序上工作。

有没有一种方法可以使Visual Studio Code将EJS文件识别为HTML标记?我在用户首选项中没有看到任何文件/方案关联。


烦人这似乎是你(和我)需要的东西,但对于HTML没有相应的文件夹: stackoverflow.com/questions/29956304/...
互斥

Answers:


110

其实可以。

正如Andre指出的那样,现在您可以在工作区设置中执行此操作。转到Visual Studio代码设置: File >> Preferences >> User Settings

// Place your settings in this file to overwrite the default settings
{                
// Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
     "files.associations": {"*.ejs": "html"}     
 }

单击“ VS代码”窗口底部的“纯文本”选项卡,并将其更改为HTML,下面的屏幕截图:

在此处输入图片说明


8
有什么办法可以使它成为默认值?我的意思是,这适用于一个文件。当我打开其他.ejs文件时,它仍然将它们视为纯文本。
Kurotsuki 2015年

1
@Kurotsuki检查我的评论stackoverflow.com/questions/30264197/…关于如何将.ejs永久视为html语言模式。
森特2015年

现在有扩展支持.ejs语法突出显示,请参见@pablovilas的答案
Deepak Joy

3
对于最新版本,单击底部的“纯文本”选项卡时,现在将获得“为...配置文件关联”选项,该选项可让您设置此文件类型的默认值。
Alex Czarto

不错,而且很快:)
SenadMeškin'17

64

转到“ Visual Studio代码设置”。文件>>首选项>>用户设置

将此行添加到settings.json中。

// Place your settings in this file to overwrite the default settings
{                
    // Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
    "files.associations": {"*.ejs": "html"}     
}

重新启动Visual Studio代码。


2
这应该是正确的答案。最简单的解决方案!
NinjaFart '16

2
但是我们是否不将ejs htmlized文件中的ejs(javascript)语法放开?
罗伯特·布拉克斯

现在有扩展支持.ejs语法突出显示,请参阅@pablovilas的答案
Deepak Joy

您可能还需要关闭并重新打开文件。
丹尼尔·德赫斯特

28

.ejs支持扩展。启动VS Code快速打开(Ctrl + P),粘贴以下命令,然后键入Enter。

ext install ejs-language-support

似乎不适用于我正在使用的VSCode版本(1.6)
Amnon

1
现在应该将其标记为最佳答案。从v1.7起可以正常使用
digitalmouse,2016年

该插件实际上删除了HTML代码的语法高亮显示。我没有链接!
锡南德罗

21

按照文档给出的说明, 我将文件c:\ Program Files(x86)\ Microsoft VS Code \ resources \ app \ extensions \ html \ package.json更改为:

{
    "name": "html",
    "version": "0.1.0",
    "publisher": "vscode",
    "engines": { "vscode": "*" },
    "extensionDependencies": [
                     "html"
                ],
    "contributes": {
        "languages": [{
            "id": "html",
            "aliases": ["ejs"],
            "extensions": [".ejs"]
        }]
    }
}

尝试..为我工作..太懒了,无法创建新的文件夹atm


1
我正在使用Mac OSX,这也对我有用。我去了/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/extensions/html/package.json。您可以将路径复制并粘贴到Finder->转到文件夹。我实际上要转到“应用程序”文件夹,右键单击“ Visual Studio代码”,然后显示“显示程序包内容”
Vincent 2015年

1
该解决方案对我有用,但它不是最佳解决方案,因为在对该扩展程序进行更新后,我们将不得不再次执行更改。
卡斯提尔2015年

6

html在VSCodeextensions文件夹中找到扩展名:

../app/extensions/html

在MacOS X上是

/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/html

在Windows上是

c:\Program Files(x86)\Microsoft VS Code\resources\app\extensions\html\package.json

现在编辑文件package.json添加.ejsextensions唯一的数组:

{
        "name": "html",
        "version": "0.1.0",
        "publisher": "vscode",
        "engines": { "vscode": "*" },
        "contributes": {
                "languages": [{
                        "id": "html",
                        "extensions": [ ".html", ".htm", ".shtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm", ".ejs" ],
                        "aliases": [ "HTML", "htm", "html", "xhtml" ],
                        "mimetypes": ["text/html", "text/x-jshtm", "text/template", "text/ng-template"]
                }],
                "grammars": [{
                        /* "language": "html", not yet enabled*/
                        "scopeName": "text.html.basic",
                        "path": "./syntaxes/HTML.plist"
                }]
        }

}

顺便说一句,正确的方法应该是ejs extensionextensions文件夹中创建一个,然后添加:

ejs/
ejs/package.json
ejs/snippet/
ejs/snippet/ejs.json
ejs/syntaxes/
ejs/syntaxes/EJS.plist

当然,这应该具有EJS语法/语法,但是我们可以简单地复制html,因此可以从extensions文件夹中复制:

cd html/
cp -r * ../ejs/

package.json随后也能像

{
        "name": "ejs",
        "version": "0.1.0",
        "publisher": "vscode",
        "engines": { "vscode": "*" },
        "contributes": {
                "languages": [{
                        "id": "ejs",
                        "extensions": [ ".ejs" ],
                        "aliases": [ "EJS", "ejs" ],
                        "mimetypes": ["text/html", "text/x-jshtm", "text/template", "text/ng-template"]
                }],
                "grammars": [{
                        "scopeName": "text.html.basic",
                        "path": "./syntaxes/EJS.plist"
                }]
        }

}

因此更改syntaxes/HTML.plist仅复制到syntaxes/EJS.plist

然后重新启动VSCode。


现在有扩展支持.ejs语法突出显示,请参阅@pablovilas的答案
Deepak Joy

语言扩展对我没有任何帮助,即使重新加载后也是如此。
ByteTheBits


0

在Visual Studio 2015社区中,我能够将ejs扩展名与html编辑器关联:

工具>选项>文本编辑器>文件扩展名

在扩展名中输入“ ejs”。从下拉选择中选择“ HTML编辑器”。单击添加。单击确定。

如果您打开了ejs文件,请关闭它并重新打开。


2
问题提到的是VS Code,而不是Visual Studio。VS Code没有任何“工具”菜单。
noob 2015年

1
在Visual Studio中寻找此选项时偶然发现了这个问题。谢谢BDH。
安东尼

嫁给我。一直在寻找这个小时
Anaryl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.