2015-10-19 73 views
1

我想为我的编辑器添加一个叠加层,它只适用于给定的范围(例如,从第3行第44列到第8行第5列)。如何限制叠加到特定范围?

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

我对multiplex.jsoverlay.js的扩展进行了深入研究,并尝试了解嵌套模式如何工作,但我无法想出一种方法来使用这些工具来帮助我。请记住,我仍然希望这表现得像叠加层,因此不会干扰基本模式。

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

回答

1

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