【发布时间】:2010-02-17 22:12:17
【问题描述】:
我正在编写一个带有超链接控制台的 Eclipse 插件,但是在创建超链接时我看到了 BadLocationExceptions。
为了创建超链接,我按照相关问题How to write a hyperlink to an eclipse console from a plugin 的说明进行操作。
背景: 问题似乎是底层文档与写入控制台的请求异步更新(例如,通过 MessageOutputStream),因此在写入后立即尝试创建超链接不会'无法正常工作,因为请求中提供的偏移量和长度索引无效。
为了解决这个问题,我在底层文档上创建了一个 DocumentListener,这样我就可以检测控制台何时更新并在那时创建超链接。但是侦听器提供了与控制台批量更新相对应的事件 - 所以我无法轻易检测到控制台是否已经更新。唯一的选择似乎是在控制台文档中搜索我想要超链接的字符串,这似乎效率很低。
所以问题是:在写入控制台之后,何时是创建超链接的正确时间?当我发出超链接创建请求时,是否有任何经过验证的机制可以保证基础文档已经更新?写入控制台然后创建超链接的代码示例会很棒。
不确定 eclipse 的确切版本(我是在上班前在家写的)——但我知道我正在使用 MessageConsole.addHyperlink() 来发出请求。
【问题讨论】:
标签: eclipse eclipse-plugin hyperlink