语言支持插件必需的三种文件,均起源于TextMate
- .tmTheme
- .tmSnippets
- .tmLanguage
vscode相关路径
- 主题:
%安装目录%\resources\app\extensions\theme-defaults\xxx.json
- 片段:
%安装目录%\resources\app\extensions\%语言%\snippets\xxx.snippets.json
- 语言语法:
%安装目录%\resources\app\extensions\%语言%\syntaxes\xxx.tmLanguage.json
tmLanguage文件
初始文件内容:
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "ASPX", ## 语言名称
"patterns": [ ## 模式入口,可以调用模式仓库中的模式片段,也可以实现模式片段,关键内容
{
"include": "#keywords" ## include调用的模式片段名称都可以在模式仓库中找得到
},
{
"include": "#strings"
},
{ ## 模式片段,实现内容与 "#strings" 一样
"name": "keyword.control.aspx",
"match": "\\b(if|while|for|return)\\b"
}
],
"repository": { ## 模式仓库,存放模式片段,以供模式入口调用
"keywords": {
"patterns": [{
"name": "keyword.control.aspx",
"match": "\\b(if|while|for|return)\\b"
}]
},
"strings": {
"name": "string.quoted.double.aspx",
"begin": "\"",
"end": "\"",
"patterns": [
{
"name": "constant.character.escape.aspx",
"match": "\\\\."
}
]
}
},
"scopeName": "source.aspx"
}