0

所以 CodeMirror 用来modes标记它的代码
它将文档分成几行并使每一行成为一个流,然后将其放入预定义的mode. 它可以通过使用其state参数跨越多行。
看来ACE也有类似的方法

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

根据我对 Atom 的代码和风格的了解,它调用了不同的语法荧光笔grammars,它们与grammarsTextMate 中的非常相似。这些grammars类似于包含类名和正则表达式的 JSON 对象(请参阅如何编写 TextMate 语法)。

我终其一生都无法弄清楚Atom 文本编辑器究竟是如何执行代码解析、保持其状态以及扩展各种范围的。

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

4

2 回答 2

1

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

于 2016-07-14T23:27:07.353 回答
0

这个问题在这里得到了回答。

Atom 使用它的first-mate模块,该模块依赖于oniguruma解析正则表达式。

于 2016-07-15T07:20:19.200 回答