寻找使用SWT的StyledText的复杂文本编辑器的示例

时间:2010-01-14 08:42:50

标签: eclipse swt styledtext

我需要编写一个文本编辑器,它可以使用SWT StyledText从多个来源(在我的例子中:拼写检查,样式提示,如重复的单词,链接和其他标记)合并任意文本样式。我检查了标准的方法:

  1. 我可以安装修改监听器并为每个修改创建整个文本的样式。这很慢但很准确。

  2. 我可以使用LineStyleListener。这意味着我必须自己重新绘制文本(例如,在重复的单词的情况下,因为其中一些将在当前编辑范围之外)加上编辑器不缓存样式,因此更频繁地调用此API人们会期待。

  3. 我可以像IDE那样使用后台协调程序。这意味着样式落后于编辑,这从用户的角度来看是不好的。

  4. 锦上添花的是我需要分层样式,所以我必须重新实现StyleRange API。

    有没有人见过更好的解决方案?有人可以指导我一些不仅突出显示关键词的例子吗?

1 个答案:

答案 0 :(得分:2)

我使用这个example作为一个相当先进的编辑器的起点。它帮助我理解了多线样式,并为我的编辑器实现了一个基于reg-ex的样式引擎。

StyleRange API并没有真正提供一种交叉方式,例如合并样式1,从索引1到索引20,样式2从10到14。某些喜欢这个

如果这是“层次样式”的意思,那么JFace就有一个解决方案:org.eclipse.jface.text.TextPresentation

您可以使用mergeStyleRange(.)添加所有样式,并使用getAllStyleRangeIterator()获取结果。非常有用。