1

我想在我的编辑器中添加一个仅适用于给定范围的叠加层(例如,从第 3 行第 44 列到第 8 行第 5 列)。

问题是我无法想出任何方法来找到我的token()方法中的当前行,因为覆盖是无状态的,所以我无法将当前行存储在状态中。

multiplex.js我仔细研究了and中的扩展overlay.js,并试图了解嵌套模式是如何工作的,但我无法找到一种方法来使用这些工具中的任何一个来帮助我。请记住,我仍然希望它表现得像一个叠加层,因此不会干扰基本模式。

我的替代方法是扫描元素以查找添加的类并手动修改它们,使用element.getBoundingClientRect()cm.coorsChar()检查它们的位置。但这很丑陋,需要手动刷新,并且当标记的元素跨越我的范围边界时会导致错误。关于如何正确解决这个问题的任何想法?

4

1 回答 1

1

你不能像那样绑定一个覆盖层。但是你也不必手动弄乱 dom。该markText方法提供了一种更方便的方式来设置文档的特定部分的样式。

于 2015-10-19T14:10:58.013 回答