【问题标题】:Eclipse MessageConsole: cannot generate clickable link as (Filename.java:LineNumber)Eclipse MessageConsole:无法将可点击链接生成为(Filename.java:LineNumber)
【发布时间】:2016-06-27 03:09:02
【问题描述】:

我在 Eclipse 中使用MessageConsole 来显示输出信息。输出格式为Error 1 - (MyClass.java:10),预计会生成一个可点击的代码链接(在本例中为MyClass.java 第10 行),因为控制台应该能够按照@987654321 中的建议自动解析模式(FileName.java:LineNumber) @。

但是,它无法以这种方式工作。但是当我在插件Eclipse中直接使用System.out.println()输出这个模式时,就可以生成链接了。

我还考虑了插件中多个控制台的可能性,但是将带图案的文本流式传输到其他控制台也不起作用。有什么见解吗?

我的代码如下:

ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
MessageConsole myConsole = new MessageConsole( name, null );
conMan.addConsoles( new IConsole[]{myConsole} );
MessageConsoleStream out = myConsole.newMessageStream();
out.println("Error 1 - (MyClass.java:10)");

【问题讨论】:

    标签: java eclipse eclipse-plugin


    【解决方案1】:

    仅对具有 javaStackTraceConsole 控制台类型的控制台进行 Java 代码链接匹配。

    因此您可以使用org.eclipse.ui.console.consolePatternMatchListeners 扩展点来定义您自己的模式匹配器,以便为您的控制台做同样的事情。

    或者你可以使用:

    public MessageConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle)
    

    为您的控制台指定控制台类型以匹配现有匹配器的构造函数。

    【讨论】:

    • 谢谢。正如你所建议的那样,我最终使用 messageConsole.addPatternMatchListener 来解决问题。我还尝试了构造方法,并为 consoleType 参数赋予了“javaStackTraceConsole”的值。它不起作用,因为 MessageConsole 无法转换为 JavaStrackTraceConsole。
    猜你喜欢
    • 2012-08-10
    • 2011-09-27
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多