實用工具
語法突顯(Syntax Highlight) 能將程式碼上色,一眼就能看出關鍵字、眼睛也比較舒服。
VSCode 上已經有需多前人貢獻的相關擴充功能,但如果是自己打的紀錄報告或公司內部特有的 Log 檔案風格,就要自己想辦法。這篇就是做個步驟備忘,首先上個成品範例:Starburst!!!
簡單來說,語法突顯的本質是將特定字元進行標記(Tokenization),然後再將被標記的文字進行上色,就形成漂亮、有各式顏色的程式碼了。
json
語法撰寫
json
寫完後,再用 vscode 套件轉成 tmLanguage
檔案即可"match"
:正規表達式的規則。範例中捕捉了阿拉伯數字"name"
:上色種類(Standard Theme){
"name": "constant.numeric.mynumber",
"match": "[0-9]+"
}
"match"
:正規表達式的規則,並使用括號進行分類"captures"
:針對上面 "match"
的分類進行上色。例如下方程式碼捕捉了 "Starburst stream" ,但只對 "bust"上色。效果如:"Starburst stream"{
"match": "(\\bStar)(burst)(\\sstream\\b)",
"captures": {
"2": {
"name": "keyword.mykeyword"
}
}
}
"scopeName"
:單純的名稱"fileTypes"
:欲上色的副檔名,此處以 ".mylog" 為例{
"scopeName": "text.mylog",
"fileTypes": "mylog",
"patterns": [
{
"name": "constant.numeric.mynumber",
"match": "[0-9]+"
},
{
"match": "(\\bStar)(burst)(\\sstream\\b)",
"captures": {
"2": {
"name": "keyword.mykeyword"
}
}
}
}
規則檔寫好了,接下來就是要讓 VSCode 看得懂
Node.js
的套件 Yeoman
幫你把規則檔轉換
Node.js
,然後再使用 npm
安裝 Yeoman
和 generator-code
。參考此處Node.js
的版本要夠新才能安裝 Yeoman
Yeoman
,選擇 “New Language Support” ,回答完問題即可Linux 作業系統環境下,擴充功能資料夾位於 .vscode/extensions
中
直接將 Yeoman
包好的資料夾丟進 .vscode/extensions
中即可。記得重開 VSCode 。
(驚嘆號的顏色是自己另外加的)
syntax
下;副檔名設定於 ftdetect
下即可