2016-06-27 30 views
0

我在Eclipse中使用MessageConsole來顯示輸出信息。輸出被格式化爲Error 1 - (MyClass.java:10),由於控制檯應該能夠自動解析,如this post中建議的那樣,該代碼可生成可點擊的代碼鏈接(在本例中爲MyClass.java第10行)。Eclipse MessageConsole:無法生成可單擊的鏈接(Filename.java:LineNumber)

但是,它沒有以這種方式工作。但是當我使用System.out.println()直接在插件Eclipse中輸出這種模式時,可以生成鏈接。

我也考慮過插件中有多個控制檯的可能性,但是將圖案文本傳輸到其他控制檯也不起作用。任何見解?

我的代碼是象下面這樣:

的Java代碼鏈接
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)"); 

回答

1

匹配僅針對有javaStackTraceConsole控制檯類型控制檯來完成。

所以你可以使用org.eclipse.ui.console.consolePatternMatchListeners擴展點來定義你自己的模式匹配器來爲你的控制檯做同樣的事情。

或者你可以使用:

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

構造函數來爲您的控制檯來匹配現有的匹配控制檯類型。

+0

謝謝。正如你所建議的,我最終使用了messageConsole.addPatternMatchListener來完成這個技巧。我也嘗試了構造函數的方法,並給了consoleType參數一個值「javaStackTraceConsole」。它將無法工作,因爲MessageConsole不能轉換爲JavaStrackTraceConsole。 – Aliu