vscode 語法高亮很差勁問題,有沒有資料可以讓自己優化?

vscode(visual studio code) 有一些用的不是太廣泛語言,語法高亮好垃圾,而且除了初始版本,完全沒有後續版本的意思。自己研究了下,extensions目錄下,相應語言的高亮規則在一個.tmlanguage的文件里,無非是一些匹配的規則,但是貌似需要了解一下vscode的處理流程和規則,而且發現我修改了有些地方也完全沒作用,請問哪有資料可以了解的這部分內容的?


語法高亮的終極奧義,當然就是 TextMate 的官方文檔 TextMate Manual quot; Language GrammarsTextMate Manual quot; Language Grammars 。

這就是個 regex rule engine,如果修改了沒有用,最大可能是 regex 寫的有問題(override),也可能是我們有些 clause 沒支持,這時候就可以讀 Microsoft/vscode-textmate 的源碼了。願 Regex 與你同在。


code 用的 tmLanguage 和 Sublime Text 通用,所以……

你可以下個 ST3 的語法文件然後換掉自帶的……

Atom 的語法也可以用,需要把 cson 轉 JSON 再轉 plist


前陣子因為用vscode寫JSP,由於沒有JSP插件,就按照vscode文檔自己嘗試著做了個JSP語法高亮插件(做的很挫,不過能用)

vscode官方文檔里有講如何自定義語法高亮

鏈接: Visual Studio Code Colorizers

  • 方法一:在Extension Marketplace 中查找是否有相應的語法高亮插件

Extension Marketplace鏈接:https://marketplace.visualstudio.com/VSCode

如何使用vscode安裝插件:Managing Extensions in Visual Studio Code

  • 方法二:自定義語法高亮插件

1. 安裝nodejs npm

安裝方法:深入淺出Node.js(二):Node.jsNPM的安裝與配置

2. 安裝yo code

安裝方法:The Yo Code Visual Studio Code Extension Generator

3. 運行yo code

選擇」New Language Support「

這裡提示我們需要tmLanguage的URL

相應語言的tmLanguage可以在github gist(需翻 牆)中找到

(比如我需要的jsp的tmlanguage文件:https://gist.github.com/dsine-de/3718a5d013a5d2dc4dff)下載tmlanguage文件,然後再命令行中填入該文件的路徑

之後就跟著提示(作者,插件名等信息)

等待yo code extension generator生成一個文件夾(即插件)

4. 將生成的文件夾放入vscode插件文件夾下

插件文件夾位置:Installing Visual Studio Code Extensions

5. 使用插件

重啟vscode,新建一個文件,更換language mode(ctrl+k+m),找到自己新建的Language support,回車即可食用

* 關於tmlanguage的語法規則,我並不清楚,尤其裡面需要大量正則表達式,目前只會使用已有的tmlanguage。這裡放一些當時我查找的信息:

什麼事tmlanguage: http://stackoverflow.com/questions/31197184/what-is-tmlanguage

如何自定義語言的語法高亮:syntax highlighting

( 希望能幫到你 :)


怎麼感覺題主在罵我。我就是把textmate的某語言高亮轉過來就不管了的。。

不過我把插件放github上了,歡迎fork歡迎pr


推薦閱讀:

vs code無法啟動怎麼解決?
vscode怎麼隱藏左邊欄?
為什麼VSCode裡面HTML沒有CSS和JS提示了???太不方便了!!!!!!
Visual Studio Code怎麼在同一窗口打開多個項目文件?

TAG:代碼編輯器 | VisualStudioCode |