如何为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 生成项目)。其中大部分是关于我的具体用例。

  1. 您如何指定用户随后可以覆盖的自定义设置?我想将自动换行指定为脚本的可切换选项。
  2. 如何挑选 scope 颜色才是您喜欢的颜色?
  3. 如何正确设置括号的样式?

这是我的。

样式为:

{
  "$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
  }
},