そのため、 CodeMirror はmodes
そのコードをトークン化するために使用します。
ドキュメントを行に分割し、各行をストリームにしてから、定義済みの に渡しmode
ます。パラメータを使用して、複数の行にまたがることができstate
ます。
ACE にも同様の方法があるようです。
これらの方法はいずれも、本質的に RegExp を使用しません (ただし、明らかに、モードを作成した人は誰でも RegExp でそれらのモードにコーディングできます)。
私が Atom のコードとスタイルについて読んだことから、それは異なる構文ハイライターを呼び出し、それらはTextMategrammars
のものとよく似ているということです。grammars
これらgrammars
は、クラス名と正規表現を含む JSON オブジェクトに似ています ( TextMate 文法の書き方を参照してください)。
Atom Text Editor が実際にコードの解析をどのように実行し、その状態を維持し、さまざまなスコープに拡張するかは、私の人生ではわかりません。
誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.