之前寫過一篇文章大概講了向console中加入文件鏈接的原理,後臺調研了一下jdt的實現,發現,通過eclipse提供的擴展點可以很方便的實現。主要實現的擴展點有:
1. org.eclipse.ui.console.consolePatternMatchListeners
該擴展點需要實現org.eclipse.ui.console.IPatternMatchListenerDelegate接口,主要功能是通過正則表達式匹配console中的每一行,對匹配的行作出操作(比如增加文件鏈接)
2. org.eclipse.core.variables.dynamicVariables
這個擴展點需要實現org.eclipse.core.variables.IDynamicVariableResolver接口,作用就是定義一個dynamic variable,這裏定義一個正則表達式,匹配console中的內容。
具體實現可參考org.eclipse.jdt.debug.ui插件中關於java console tracker的定義,以及JavaConsoleTracker和JavaLikeExtensionsResolver兩個類的源碼。