ここには 2 つの概念があります。
- テキスト ファイルをさまざまなスコープのトークンに変換する言語文法
- これらのスコープを(うまくいけば)目を楽しませる方法で色付けします。
独自の文法を作成したり、TextMate などから変換したりする場合、テーマで定義されたスコープとは異なるスコープを使用している可能性があります。その場合、トークンが実際に定義されていても、定義するトークン間に明確な区別はありません。
これには2つの方法があります。1 つ目は、テーマをカスタム スコープで拡張し、必要に応じて色を付けることです。あなたの言語を使用しているすべての人があなたの配色を気に入らない限り、本当に良い方法ではありません. もう 1 つは、VSCode とテーマの作成者によって既に定義および色付けされている (限られたセットの) スコープを使用することです。おそらく、あなたの言語は、選択したテーマでうまく機能し、他のテーマでも十分に機能するでしょう。
例comment
として、デフォルトのダーク VSCode テーマで定義されているスコープを次に示します。
"name": "Dark Visual Studio",
"settings": [
{
"scope": "comment",
"settings": {
"foreground": "#608b4e"
}
},
C++ 文法からの同等の言語スニペットを次に示します。
"comments": {
"patterns": [
{
"captures": {
"0": {
"name": "punctuation.definition.comment.java"
}
},
"match": "/\\*\\*/",
"name": "comment.block.empty.java"
},
基本的に、言語はcomment
必要に応じて の下に複数のトークンを定義します。テーマにはそれcomment.*
が緑色になると書かれているため、それらはすべて同じように色付けされます。