【问题标题】:Hyperlinking the eclipse console - delayed writes causing BadLocationException?超链接 Eclipse 控制台 - 延迟写入导致 BadLocationException?
【发布时间】: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


    【解决方案1】:

    我的情况完全相同,得出了相同的结论:我在文档侦听器中添加了超链接,然后删除了文档侦听器。请注意,除了搜索字符串之外别无选择,因为用户可以清除控制台!就我而言,这并不是严重的性能损失,所以我对这个解决方案很满意。

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 2011-10-08
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多