Как настроить textMateRules для нескольких тем в VS Code? - PullRequest
2 голосов
/ 08 марта 2019

В VS Code , я бы хотел настроить textMateRules одинаково для нескольких тем. Например, как для Atom One Dark, так и Default Dark+, но без влияния на другие темы, я хотел бы сделать курсив keyword s курсивом . Я могу добиться этого, дублируя одинаковые настройки дважды для каждой темы, как показано ниже

  "editor.tokenColorCustomizations": {
    "[Atom One Dark]": {
      "textMateRules": [
        {
          "scope": [ "keyword" ],
          "settings": { "fontStyle": "italic" }
        }
      ]
    },
    "[Default Dark+]": {
      "textMateRules": [
        {
          "scope": [ "keyword" ],
          "settings": { "fontStyle": "italic" }
        }
      ]
    }
  }

Как мне нужно настроить только один раз для обоих, не дублируя правила, особенно если есть несколько одинаковых правил для нескольких тем? Что-то вроде ниже (, но не работает, хотя )

  "editor.tokenColorCustomizations": {
    "[Atom One Dark] [Default Dark+]": {
      "textMateRules": [
        {
          "scope": [ "keyword" ],
          "settings": { "fontStyle": "italic" }
        }
      ]
    }
  }

1 Ответ

1 голос
/ 15 июля 2019

С этой страницы Github

Сначала скопируйте этот код в настройки пользователя.

"editor.tokenColorCustomizations": {
  "textMateRules": [
    {
      "scope": [
        //following will be in italic (=FlottFlott)
        "comment",
        "entity.name.type.class", //class names
        "keyword", //import, export, return…
        "constant", //String, Number, Boolean…, this, super
        "storage.modifier", //static keyword
        "storage.type.class.js", //class keyword
      ],
      "settings": {
        "fontStyle": "italic"
      }
    },
    {
      "scope": [
        //following will be excluded from italics (VSCode has some defaults for italics)
        "invalid",
        "keyword.operator",
        "constant.numeric.css",
        "keyword.other.unit.px.css",
        "constant.numeric.decimal.js",
        "constant.numeric.json"
      ],
      "settings": {
        "fontStyle": ""
      }
    }
  ]
}

Теперь посмотрите внимательно, в textMateRules вы должны определить область действия. В массиве областей вы должны указать, какие параметры вы хотите изменить, затем в массиве настроек той же области вы можете добавить свой стиль, например, вы хотите добавить fontStyle italic. Вот так.

"editor.tokenColorCustomizations": {
  "textMateRules": [
    {
      "scope": [
        //following will be in italic (=FlottFlott)
        "comment",
        "entity.name.type.class", //class names
        "keyword", //import, export, return…
        "constant", //String, Number, Boolean…, this, super
        "storage.modifier", //static keyword
        "storage.type.class.js", //class keyword
      ],
      "settings": {
        "fontStyle": "italic"
      }
    }
  ]
}
...