33

私は現在、新しいファイルの種類 (ANTLR) の拡張機能を作成しようとしていますが、Visual Studio Code で構文の強調表示に使用される色を変更する方法を考えています。私には、それが拡張機能で定義されていないように見えますが、別の場所にあります。色の設定エントリはなく、それを定義する CSS ファイルも見つかりませんでした (vscode が Electron を使用しているため、これは予想されることです)。また、生成された vscode の設定ファイルとそれに付属のファイルも調べましたが、手がかりもありませんでした。ウェブ検索も役に立ちませんでした。だから、私は今ちょっと迷っています。

誰かがヒントをくれたり、関連するドキュメントを教えてくれませんか?

4

4 に答える 4

27

ここには 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.*が緑色になると書かれているため、それらはすべて同じように色付けされます。

于 2017-01-07T23:16:09.623 に答える
13

公式ドキュメントから、テーマにパッチを当てる必要はありません:

エディターの構文強調表示の色を調整するには、ユーザー設定の settings.json ファイルで editor.tokenColorCustomizations を使用します。

単純なトークンのカスタマイズに加えて、TextMate ルールをもう少し複雑な設定で完全にオーバーライドできます。次に例を示します。

"editor.tokenColorCustomizations": {"textMateRules": [{
        "scope": "keyword.control.ref.latex",
        "settings": {
            "foreground": "#FF0000"
        }
    }]}
于 2019-05-22T14:07:03.397 に答える
6

シンタックス ハイライトルールは、.plistファイル (または.tmLanguageファイル) に保存されます。これらのファイルでは、構文の強調表示のためにさまざまなトークン タイプが宣言されています。

  • キーワードとは?
  • 文字列リテラルとは
  • コメントとは何ですか?

詳細については、こちらをご覧ください: https://code.visualstudio.com/Docs/customization/colorizer

ファイルで色を定義しないでください.plist!

トークンの種類と色の関係は、色テーマの宣言で行われます。

詳細については、 https://code.visualstudio.com/Docs/customization/themesおよびVisual Studio Code でテーマを追加する方法をご覧ください。

一般に、このドキュメントは、VSCode を拡張しようとするときにも役立ちます: https://code.visualstudio.com/docs/extensionAPI/overview

于 2016-07-01T15:47:07.193 に答える