我需要编写一个文本编辑器,它可以使用 SWT StyledText 合并来自多个来源的任意文本样式(在我的例子中:拼写检查器、重复单词、链接和其他标记等样式提示)。我检查了执行此操作的标准方法:
我可以安装一个修改监听器并为每次修改创建整个文本的样式。这很慢但很准确。
我可以使用
LineStyleListener
. 这意味着我必须自己重绘文本(例如在重复单词的情况下,因为其中一些将超出当前编辑范围)加上编辑器不缓存样式,所以这个 API 被更频繁地调用那么人们会期望。我可以像 IDE 一样使用后台协调器。这意味着样式滞后于编辑,从用户的角度来看这是不好的。
锦上添花的是我需要分层样式,所以我必须重新实现StyleRange
API。
有没有人看到更好的解决方案?有人可以指导我一些不只是突出关键字的例子吗?