我正在实现 CodeMirror 以用作需要一些语法突出显示的特殊文件的编辑器。我为它编写了自己的解析器,但现在我面临以下问题:有一种特定类型的标记,我总是希望将其标记为原子范围(使用doc.markText
)。
我原以为在解析令牌时会存在一些事件处理程序,其中包含{line, ch}
用于其开始和结束位置的对象。通读文档,这似乎不存在,所以我会自己写,但问题是似乎没有办法获得与解析器相关的任何位置数据。
解决此问题的最佳方法是什么?确实有一些粗略的方法,例如注册更改处理程序或每隔几秒迭代整个内容,但当然应该避免这种情况。