1

中括弧内にあるコードのブロック全体を強調表示する必要があるため、ルールを作成しました。

<context id="action-body" style-ref="action-body" extend-parent="true">
   <start>{</start>
   <end>}</end>
   <include>
      <context ref="builtin-vars" />
      <context ref="keywords" />
   </include>
</context>

内部のコード、キーワード、変数が正しく強調表示されますが、内部に別の閉じ中括弧がある場合はもちろん停止します。正規表現が再帰のレベルをチェックするのは簡単ではないことを私は知っていますが、gtkSourceView構文はこのような場合に特別な何かを持っているのでしょうか?

私が強調表示している言語(実際にはPegJS)は、JavaScriptコードを中括弧の内側にのみ含めることができ、外側には含めることができないため、これは深刻なことです。そして、私はそれらを1色の除外で強調したいと思います:)


関連している:

4

1 に答える 1

1

この方法 ( from ) は、そのような構文が単一行で使用されているが複数行では使用されていない場合に、OK を強調表示します (カーソルが中括弧内にある場合、gedit は少し遅くなります)。

<context id="action-body" style-ref="action-body">
   <match>(\{(?:[^{}]*|(?0))*\})</match>
   <!-- <include>
      <context ref="builtin-vars"/>
      <context ref="keywords"/>
   </include> -->
</context>

(そして、含まれているコンテキストを使用することはできませんが、仕様では使用できると書かれています:( )

于 2011-08-23T11:33:10.607 に答える