原子文本编辑器如何解析/标记代码? (语法高亮)

How does atom text editor parse / tokenise code? (syntax-highlighting)

所以CodeMirror使用modes to tokenise its code.
它将文档分解成行并使每一行成为一个流,然后将其放入预定义的 mode 中。它可以使用其 state 参数跨越多行。
似乎 ACE 有 a similar method.

这些方法都没有固有地使用 RegExp(但显然创建模式的人可以在 RegExp 中编码到他们的模式中)。

根据我对 Atom 代码和风格的了解,它调用了不同的语法荧光笔 grammars,它们与 TextMate 中的 grammars 非常相似。 这些 grammars 类似于包含类名和正则表达式 (see how to write a TextMate grammar) 的 JSON 对象。

我一辈子都想不通 Atom Text Editor 究竟是如何执行代码解析、保持其状态并扩展到各种范围的。

如果有人能为我指出正确的方向,那就太好了。

您最好在 Atom forums 中提问,因为 Atom 开发人员经常光顾它们。

问题已回答here

A​​tom 使用其 first-mate module, which relies on oniguruma 来解析正则表达式。