之前写过一篇文章大概讲了向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两个类的源码。