如何为VSCode(tmlanguage.json)自定义这个语法高亮的主题?
How to customize the theme of this syntax highlighter for VSCode (tmlanguage.json)?
我有几个关于 VSCode 语法高亮显示 tmLanguage.json 的问题,到目前为止我在浏览 google 和 VSCode 文档时未能轻易找到这些问题(和 textmate 文档)。所有这些都适用于 building your own language extension(我使用 yo code
生成项目)。其中大部分是关于我的具体用例。
- 您如何指定用户随后可以覆盖的自定义设置?我想将自动换行指定为脚本的可切换选项。
- 如何挑选 scope 颜色才是您喜欢的颜色?
- 如何正确设置括号的样式?
这是我的。
样式为:
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "MyScript",
"patterns": [
{
"include": "#terms"
},
{
"include": "#punctuations"
},
{
"include": "#strings"
},
{
"include": "#numbers"
}
],
"repository": {
"terms": {
"patterns": [
{
"name": "entity.name.type.language.myscript",
"match": "([a-z][a-z0-9]*(?:-[a-z0-9]+)*)"
},
{
"name": "entity.name.type.language.parens.myscript",
"begin": "([a-z][a-z0-9]*(?:-[a-z0-9]+)*)\(",
"end": "\)",
"patterns": [
{
"includes": "#terms"
},
{
"includes": "#strings"
},
{
"includes": "#numbers"
}
]
}
]
},
"numbers": {
"patterns": [
{
"name": "constant.numeric.integer.myscript",
"match": "\b(\d+)\b"
},
{
"name": "constant.numeric.decimal.myscript",
"match": "\b(\d+\.\d+)\b"
}
]
},
"punctuations": {
"patterns": [
{
"name": "punctuation.separator.parameter.myscript",
"match": ","
},
{
"name": "punctuation.curly.open.myscript",
"match": "\{"
},
{
"name": "punctuation.curly.close.myscript",
"match": "\}"
}
]
},
"strings": {
"name": "string.myscript",
"begin": "\<",
"end": "\>",
"patterns": [
{
"name": "constant.character.escape.myscript",
"match": "\\."
},
{
"name": "punctuation.term.myscript",
"begin": "\{",
"beginCaptures": {
"0": {
"name": "meta.brace.curly.myscript"
}
},
"end": "\}",
"endCaptures": {
"0": {
"name": "meta.brace.curly.myscript"
}
},
"patterns": [
{
"include": "#terms"
},
{
"include": "#numbers"
},
{
"include": "#strings"
}
]
}
]
}
},
"scopeName": "source.myscript"
}
根据我的默认 GitHub 主题,我通过选择 entity.name.type
获得了绿松石色。我不希望自定义主题,我只希望它映射到主题中的一组给定颜色。我想要:
- 黑色代表“实体”(术语)
- 蓝色代表“字符串”
- 绿色代表“数字”
- 标点符号为灰色
为了让 <text {term}>
大括号不变成红色,我一直在修修补补,但一直没弄明白。 another(123)
周围的括号也应该是灰色的。
我不知道其他语言是如何定义它们的样式的,比如 JSON(我想要的蓝色):
或其他JSON:
红色的逗号也应该是灰色的。
要指定自定义配置,请在 package.json 中使用 this:
"contributes": {
"configurationDefaults": {
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": false
}
},
我有几个关于 VSCode 语法高亮显示 tmLanguage.json 的问题,到目前为止我在浏览 google 和 VSCode 文档时未能轻易找到这些问题(和 textmate 文档)。所有这些都适用于 building your own language extension(我使用 yo code
生成项目)。其中大部分是关于我的具体用例。
- 您如何指定用户随后可以覆盖的自定义设置?我想将自动换行指定为脚本的可切换选项。
- 如何挑选 scope 颜色才是您喜欢的颜色?
- 如何正确设置括号的样式?
这是我的。
样式为:
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "MyScript",
"patterns": [
{
"include": "#terms"
},
{
"include": "#punctuations"
},
{
"include": "#strings"
},
{
"include": "#numbers"
}
],
"repository": {
"terms": {
"patterns": [
{
"name": "entity.name.type.language.myscript",
"match": "([a-z][a-z0-9]*(?:-[a-z0-9]+)*)"
},
{
"name": "entity.name.type.language.parens.myscript",
"begin": "([a-z][a-z0-9]*(?:-[a-z0-9]+)*)\(",
"end": "\)",
"patterns": [
{
"includes": "#terms"
},
{
"includes": "#strings"
},
{
"includes": "#numbers"
}
]
}
]
},
"numbers": {
"patterns": [
{
"name": "constant.numeric.integer.myscript",
"match": "\b(\d+)\b"
},
{
"name": "constant.numeric.decimal.myscript",
"match": "\b(\d+\.\d+)\b"
}
]
},
"punctuations": {
"patterns": [
{
"name": "punctuation.separator.parameter.myscript",
"match": ","
},
{
"name": "punctuation.curly.open.myscript",
"match": "\{"
},
{
"name": "punctuation.curly.close.myscript",
"match": "\}"
}
]
},
"strings": {
"name": "string.myscript",
"begin": "\<",
"end": "\>",
"patterns": [
{
"name": "constant.character.escape.myscript",
"match": "\\."
},
{
"name": "punctuation.term.myscript",
"begin": "\{",
"beginCaptures": {
"0": {
"name": "meta.brace.curly.myscript"
}
},
"end": "\}",
"endCaptures": {
"0": {
"name": "meta.brace.curly.myscript"
}
},
"patterns": [
{
"include": "#terms"
},
{
"include": "#numbers"
},
{
"include": "#strings"
}
]
}
]
}
},
"scopeName": "source.myscript"
}
根据我的默认 GitHub 主题,我通过选择 entity.name.type
获得了绿松石色。我不希望自定义主题,我只希望它映射到主题中的一组给定颜色。我想要:
- 黑色代表“实体”(术语)
- 蓝色代表“字符串”
- 绿色代表“数字”
- 标点符号为灰色
为了让 <text {term}>
大括号不变成红色,我一直在修修补补,但一直没弄明白。 another(123)
周围的括号也应该是灰色的。
我不知道其他语言是如何定义它们的样式的,比如 JSON(我想要的蓝色):
或其他JSON:
红色的逗号也应该是灰色的。
要指定自定义配置,请在 package.json 中使用 this:
"contributes": {
"configurationDefaults": {
"[markdown]": {
"editor.wordWrap": "on",
"editor.quickSuggestions": false
}
},