2015-05-15 165 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開始工作正常 –

相關問題