【问题标题】:Looking for an example of a complex text editor using SWT's StyledText [closed]寻找使用 SWT 的 StyledText 的复杂文本编辑器的示例 [关闭]
【发布时间】:2010-01-14 08:42:49
【问题描述】:

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

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

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

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

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

有没有人看到更好的解决方案?有人可以指导我看一些不只是突出关键字的例子吗?

【问题讨论】:

标签: eclipse swt styledtext


【解决方案1】:

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

StyleRange API 并没有真正提供一种进行交集的方法,例如合并从索引 1 到索引 20 的样式 1 和从 10 到 14 的样式 2。类似

如果这就是您所说的“分层样式”,那么 JFace 中有一个解决方案:org.eclipse.jface.text.TextPresentation

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

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2010-09-18
    • 2010-10-21
    相关资源
    最近更新 更多