1

崇高なテキストの新しい構文を作成しようとしています。ルールに基づいてドキュメント全体が強調表示されます。引用は次のとおりです。

各ルールは一致したテキスト領域を消費するため、次のルールの一致試行から除外されます (いくつかの例外を除いて)。

強調表示しようとしている次のファイルがあります。

div
  div
    div

一致する次のルールがあります(たとえば):

{
  "name": "entity.name.tag.z",
  "match": "[A-z]+"
},
{
  "name": "entity.language.z",
  "match": "\\s*[A-z]+"
},

想定されるように、最初のルールは 3 つの div すべてに一致する必要があるため、2 番目のルールは何にも一致しません。

しかし、最初の 'div' のみが一致し、2 番目と 3 番目は一致しません。2 番目のルールを削除すると、3 つすべてが正しく一致します。

4

1 に答える 1

2

私は専門家ではありませんが、ここに私の推測があります:

最初のルールしかない場合、1回の一致で3行と一致しません。最初のルールには空白が含まれていないため、3つの別々の一致になります。明確にするために、試合はそうではありません

[match1]div
          div
             div[/match1]

しかし

[match1]div[/match1]
       [match1]div[/match1]
              [match1]div[/match1]

2番目のルールを追加すると、2行目の先頭、つまり最初のルールの前にトリガーされ、期待される結果は次のようになります。

[match1]div[/match1]
[match2]    div[/match2]
[match2]         div[/match2]
于 2012-12-11T15:44:21.620 に答える