問題タブ [tmlanguage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
syntax - 文字列埋め込み評価コードの構文規則の書き方
カスタム言語用の vscode 構文ファイルを作成しようとしています
私はフォトショップを使用して、カスタム言語のサンプル構文を描画しています。
tmLanguage の構文の書き方
コード規則を評価する
子文字列エンティティ パターンに使用しますが、サラウンド文字列は一致しません
タグの属性の二重引用符コンテンツ ルール
が存在する場合 name
、すべての二重引用符で囲まれた内容は文字列の色です
それ以外の場合、サラウンド文字列はプレーン テキストの色です。
regex - コメント内のアスタリスクで囲まれたものをキャプチャするための正規表現は何ですか?
次のようなコメントを定義する既存の言語定義を変更しようとしています。
これにより、a で始まる行#
がコメントとして識別され、それに応じて強調表示されます。私がやりたいことは、コメントされた単語をアスタリスクで囲み、それを別のものとして表示させることkeyword
です。ただし、これを追加するだけでは機能しません。
ただし、行が で始まらない場合は機能する#
ため、両方のルールの間に競合があると想定しています。そのため、コメント内の で囲まれていないものすべてを識別する正規表現を使用することで、次のように回避できると考えました*
。
何か案は?
visual-studio-code - 構文強調表示の文法インジェクションの何が問題になっていますか?
マークダウンでの単純な文法インジェクションのこの例に従っています。
上記のコードには小さな問題があります -superjs
フェンスで囲まれたコード ブロックに文字列が表示される限り、残りは常に superjs としてレンダリングされ、他の組み込み言語のフェンスで囲まれたコード ブロックの構文の強調表示が壊れます。
markdown.tmLanguage.jsonに従って修正したいと思います。
ただし、機能せず、デバッグ方法もわかりません。
visual-studio-code - 型宣言での Visual Studio Code C++ の色の書式設定
ご覧のとおり、C++ の型宣言 (string および new 型) では、型の色は通常のテキストの色になっています。これは、Java ソース コードには当てはまらないため (まったく同じテーマ)。
ユーザー設定でカスタマイズしてみました:
ただし、宣言ではなく、型定義で型の色を変更するだけです。
私もいろいろなテーマを試してみましたが、どれも同じです。
奇妙なことに、これは下の画像に示すように Java ソース コードでは発生しません。
私は何かが欠けているかもしれません。ユーザー設定に、「タイプ」の代わりに変更する必要があるフィールドまたは属性がある可能性があります。
誰も方法を知っていますか?
visual-studio-code - 拡張機能を使用して既存の VSCode 言語拡張機能に文法と構成を追加する方法は?
リージョンを追加して、Microsoft の AL 言語を拡張しようとしています。これを手動で行うには、vscode 拡張フォルダー .vscode\extensions\Microsoft.al-0.14.17461 に移動し、ファイル al.configuration.json および alsyntax.tmlanguage を変更します。
しかし、私は独自の VSCode 拡張機能を作成してこれを行いたいと考えています。そこで、独自の拡張機能を作成し、それらの特定のファイルをそれにコピーし、特定のコードを追加しました。そして幸いなことに、それはうまくいきました!
ただし、特定のコードだけでなく、構文ファイル全体を使用する場合にのみ機能します..
以下はal.configuration.jsonのコードで、追加したい**の間の折りたたみ部分です。
visual-studio-code - vscode tmLanguage でマークダウンを拡張する
VS コードのマークダウンに新しいカラーリングを追加しようとしています。
パッケージ.json
markdown.tmLanguage.json
@johnのようなものに色を付けるというアイデア。しかし、それを機能させる方法について少し迷っています。
visual-studio-code - VS Code の構文強調表示で「キーワード」を動的に追加することは可能ですか?
私は VS Code で構文の強調表示をいじっており、これまでのところ、カスタム JSON TextMate 文法を使用してかなり良い結果を得ることができました。GCC ARM Assembly の拡張機能は既に存在していましたが、それはまずいと思ったので、ソース コードを出発点として使用して独自のものを作成しました。
ただし、処理方法がわからないように見えるシナリオがあります。GCC ARM では、.macro
ディレクティブを使用して次のようなマクロを作成できます。
GCC ARM を見たことがない場合は、最初の行でマクロが開始されることだけを知っておく必要があります。ここで、print
はマクロの名前で、 はマクロのformat
引数storage
です。次に、マクロ内で、必要な場所で引数の値を使用でき\format
ます\storage
。\@
マクロ内でのみ意味を持つ特別な「変数」であるもあります。マクロが呼び出されるたびにインクリメントされる数値だけです。
私がやりたいのは、マクロ宣言の引数名を動的に認識し、対応する使用法 (スラッシュで始まる) をマクロ内に表示される場所に色付けする構文の強調表示を何らかの方法で作成することです。これに関する問題は、マクロコンテキスト内のルールから参照できる新しい「キーワード」(またはテキストの文字列を呼びたいもの) のリストを動的に作成する必要があるようです。
TextMate文法を使用したVSコードでこれは可能ですか? VS Codeでそれはまったく可能ですか? そうでない場合、どのエディタでも可能ですか? TextMate 文法で不可能な場合、これを達成するために何をしなければなりませんか?
説明が不十分な場合は、お気軽に詳細をお尋ねください。質問を編集します。
regex - 多くの関数を保持できる関数をキャプチャするための tmLanguage 正規表現
私の vscode 拡張機能 tmLanguage は、明示的に JavaScript 用に構築されたものではありませんが、最良の使用例を示しているため、例として使用します。次の例を見てください。
私の目標は、行 #1 を開始トークンとして、行 #15 を終了トークンとして、行 #2-14 を関数本体トークンとしてキャプチャすることです。行番号 17 ~ 22 についてそれぞれ繰り返します。私の関数の開始行は空白に固有のものではなく、ユーザーの裁量により改行される可能性があることに注意してください。
私はアンカーを使用するなど、さまざまな方法を試し\G
ましたが、次の文法例が最も近いものです。ただし、最初に見つかった閉じ括弧の後}
、または上記の例の 6 行目で停止します。15行目でキャプチャを終了させたい
私の例では yaml を使用していますが、vscode で動作する使い慣れたものであれば問題ありません
編集Gama11 のフィードバックに基づいて、私はそれを機能させることができました。基本的に、プロセスの最も重要な部分は再帰です。したがって、基本的には何も変更せず、{}
ペアを見つけるための再帰的な正規表現を追加しました。これが実際の例です:
visual-studio-code - tmLanguage 文法の「injections」と「injectionSelector」の違いは何ですか?
injectionScope
Visual Studio Code の注入文法を作成するとき、私はこのプロパティに既に精通しています。
ただし、プロパティを使用するいくつかの文法にも遭遇しましたinjections
。たとえば、ここにあります: https://github.com/pushqrdx/vscode-inline-html/blob/master/syntaxes/es6.inline.html.json、および私それに関するドキュメントが見つかりません。それは何のために使用されますか?
visual-studio-code - VSCode の出力パネルにカスタムの配色を追加するにはどうすればよいですか
VSCodeのOutput Colorizer拡張機能をインストールしました。ただし、私が見つけることができる指示はありません。私が知っているのは、拡張機能が「text/log」、「text/x-log」、「text/x-code-output」、「x-code-output」MIME タイプを作成することだけです..これにより、カスタムを指定できます出力パネルに影響を与える特定のスコープの色。私が行ったのは、Output Colorizer 拡張機能をインストールすることだけです。
VSCode の出力パネル (下のスクリーンショット) のテキストの色をオーバーライドするために、settings.json ファイルに何を入れることができますか? 現在の「黒」のパネルの背景色を変更したくありません。エディタ ペインのテキストに影響を与えずに、このパネルのテキストの色のみを変更したいと考えています。以下の暗赤色を変更できますが、すべての言語の文字列スコープの色を変更する必要があります。