CodeMirrorはmodes
to tokenise its codeを使用します。
ドキュメントを行に分割し、各行をストリームにしてから、あらかじめ定義したmode
に挿入します。 state
パラメータを使用すると、複数の行にまたがることができます。
ACEはa similar methodと思われます。原子テキストエディタはどのようにコードを解析/トークン化しますか? (構文強調表示)
いずれの方法もRegExpを本質的に使用していません(ただし、誰でもモードを作成しても、RegExpでそのモードにコード化できます)。
私がAtomのコードとスタイルを読んだところからは、異なる構文のハイライターgrammars
が呼び出され、TextMateのgrammars
によく似ています。 これらのgrammars
は、クラス名とRegExps(see how to write a TextMate grammar)を含むJSONオブジェクトに似ています。
私の人生はわかりませんどのように正確に Atom Text Editorは、実際にコードの解析を行い、その状態を維持し、さまざまなスコープにも及んでいます。
誰かが正しい方向に私を指すことができればそれはすばらしいでしょう。
良い点!私はそれをやります、ありがとう。 –