2015-05-15 112 views
56

我在Mac上使用Visual Studio代码来处理Node.js应用程序。有没有办法让Visual Studio代码识别EJS文件中的HTML语法

有没有办法让Visual Studio Code将EJS文件识别为HTML标记?我没有在用户偏好中看到任何文件/方案关联。

+0

烦人这似乎是你(和我)需要的东西,但对于HTML没有相应的文件夹: http://stackoverflow.com/questions/29956304/is-it-possible-to -associate-a-given-language-with-a-file-extention-in-vscode – mutex

回答

94

其实,你可以。在“纯文本”选项卡上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"}  
 
}

点击:

安德烈指出,现在你可以在工作区中设定]中到Visual Studio代码设置做到这一点VS Code窗口底部并将其更改为HTML,屏幕截图如下:

enter image description here

+8

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

+1

@Kurotsuki查看我的评论http://stackoverflow.com/questions/30264197/is-there-a-way-to-make-visual-studio-code-recognize-html-syntax-in-ejs-files#comment- 55381824关于如何将.ejs作为html语言模式进行永久对待。 – vincent

+0

现在有一个扩展支持。ejs语法高亮显示,请参阅@pablovilas –

0

在Visual Studio 2015年社区我能​​够给EJS扩展与HTML编辑器相关联:

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

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

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

+1

这个问题提到VS代码,而不是Visual Studio。 VS代码没有任何工具菜单。 – noob

+1

在Visual Studio中查找此选项时遇到了此问题。谢谢BDH。 – Antoni

+0

嫁给我。一直在寻找这个小时 – Anaryl

20

documentation 发出的指示我改变了这个文件C:\ Program Files文件(x86)的\微软VS代码\资源\程序\分机\ HTML \的package.json 所以它看起来是这样的:

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

tried..works for me ..懒得创建一个新的文件夹ATM

+1

我使用Mac OSX,这也适用于我。我去了'/ Applications/Visual \ Studio \ Code.app/Contents/Resources/app/extensions/html/package.json'。您可以复制+粘贴路径到您的Finder - >转到文件夹。我实际上是去应用程序文件夹,右键单击Visual Studio代码,然后显示包内容 – vincent

+1

此解决方案适用于我,但它不是最佳解决方案,因为我们将不得不在更新到该扩展后再次执行更改。 – Justin3o9

6

找到html扩展在VSCode extensions文件夹:

../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加入.ejs只有extensions阵列:

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

} 

顺便说一句,正确的做法应该是创建一个ejsextensionextensions文件夹,然后补充说:

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

当然,这应该有EJS语法/语法,但我们可以简单地从扩展文件夹复制HTML之一,所以:

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。

+0

这是正确的方法 – Schpaencoder

+0

现在有一个支持.ejs语法高亮显示的扩展,请参阅@pablovilas的答案 –

62

转到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

+2

,但我们不要松散ejs htmlized文件中的ejs(javascript)语法吗? –

+0

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

23

有一个.ejs支持的扩展。启动VS Code Quick Open(Ctrl + P),粘贴以下命令,然后输入enter。

ext install ejs-language-support 
+0

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

+1

现在应该将其标记为最佳答案。从v1.7开始工作正常 –

相关问题