問題タブ [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.
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 ファイルに何を入れることができますか? 現在の「黒」のパネルの背景色を変更したくありません。エディタ ペインのテキストに影響を与えずに、このパネルのテキストの色のみを変更したいと考えています。以下の暗赤色を変更できますが、すべての言語の文字列スコープの色を変更する必要があります。
regex - VSCode: カスタム TextMate 文法のルールの優先順位を変更しますか?
私が作成した単純な to-do リスト言語の文法では、一部のスコープが正規表現規則で重複しているため、特定のスコープがまったく認識されません。これらのスコープを優先して、別のスコープ内で認識されるようにしたいと思います。
現在、次のようになっています。
スコープは次のとおりです。
XXam/pm
緊急 (赤、またはで始まる行*
)- 待機中 (黄色; で始まる行
`
) - url (紫; で始まる単語
http
) - タグ (青; で始まる単語
@
)
緊急や待機中の行でもタグやURLに色をつけてほしいのですが、現状Scope and Token Inspectorを見ると、2行目と3行目が全て緊急範囲で、4行目全てが待機範囲と表示されているのですが、これらの行には、タグと URL が含まれている必要があります。
.tmLanguage ファイルの定義の順序を逆にしてみましたが、違いはありませんでした。これらの定義は次のとおりです。
では、tag と url のスコープが緊急および待機中のスコープ内にある場合でも認識されるようにするには、何を変更する必要があるでしょうか?
更新: 不完全な回避策
次の正規表現を使用して、行でタグまたは URL が検出されるとすぐに緊急スコープと待機スコープ (赤と黄色) を終了させることで、スコープの重複を防ぐことができます。
この回避策の制限は、タグと URL を行末に配置する必要があることです。そうしないと、通常のテキストが本来あるべきでない場所に表示されます。
理想的には、タグと URL が緊急スコープと待機スコープ内で認識されることを希望します。これにより、行の途中にあるタグや URL の後でも緊急スコープまたは待機スコープを継続できます。