我正在编写一个应该捕获eclipse控制台输出的插件。我的plugin.xml包含
<extension
point="org.eclipse.ui.console.consolePatternMatchListeners">
<consolePatternMatchListener
class="eventhandling.PatternMatcher"
id="eventhandling.PatternMatcher"
regex=".*">
<enablement>
<test property="org.eclipse.ui.console.consoleTypeTest" value="exampleConsole"/>
</enablement>
</consolePatternMatchListener>
然而,我的PatternMatcher(如下所示)未被调用。我想知道如何创建从eclipse控制台捕获所有内容的工作代码。
import org.eclipse.ui.console.*;;
public class PatternMatcher implements IPatternMatchListener {
@Override
public void connect(TextConsole console) {
// TODO Auto-generated method stub
System.out.println("testing");
}
@Override
public void disconnect() {
// TODO Auto-generated method stub
System.out.println("testing");
}
@Override
public void matchFound(PatternMatchEvent event) {
// TODO Auto-generated method stub
System.out.println("testing");
}
@Override
public String getPattern() {
// TODO Auto-generated method stub
System.out.println("testing");
return "*";
}
@Override
public int getCompilerFlags() {
// TODO Auto-generated method stub
System.out.println("testing");
return 0;
}
@Override
public String getLineQualifier() {
// TODO Auto-generated method stub
System.out.println("testing");
return null;
}
}
答案 0 :(得分:0)
您没有说出要匹配的控制台类型,但这里是实际的Java Stack Trace控制台模式匹配器,显示了一些更常用的启用值:
<consolePatternMatchListener
class="org.eclipse.jdt.internal.debug.ui.console.JavaConsoleTracker"
regex="\(\w*${java_extensions_regex}\S*\)"
qualifier="${java_extensions_regex}"
id="org.eclipse.jdt.debug.ui.JavaConsoleTracker">
<enablement>
<or>
<test property="org.eclipse.ui.console.consoleTypeTest" value="javaStackTraceConsole"/>
<test property="org.eclipse.debug.ui.processTypeTest" value="java"/>
<test property="org.eclipse.debug.ui.processTypeTest" value="org.eclipse.ant.ui.antProcess"/>
</or>
</enablement>
</consolePatternMatchListener>
我相信这与Java堆栈跟踪控制台以及Java和Ant程序的进程输出控制台相匹配。