我正在尝试编写一个Eclipse插件,当已经运行的LaunchConfiguration
在控制台中打印用户预定义字符串时,该插件会启动LaunchConfiguration
。
以下是我正在寻找的伪代码示例:
String check = "Server started and running";
new ConsoleOutputListener(Event event) {
String consoleText = event.getConsoleOutputTextOfAllConsoles();
if(consoleText.contains(check)) {
//launch LaunchConfiguration
}
}
有没有办法实现上面的例子? 任何帮助都一如既往地赞赏!
答案 0 :(得分:3)
您的问题有点不明确,您可能会使用org.eclipse.ui.console.consolePatternMatchListeners
扩展点在控制台上定义模式匹配侦听器。
像(来自Eclipse帮助):
<extension
point="org.eclipse.ui.console.consolePatternMatchListeners">
<consolePatternMatchListener
class="com.example.ExampleConsolePatternMatcher"
id="com.example.ExampleConsolePatternMatcher"
regex=".*foo.*">
<enablement>
<test property="org.eclipse.ui.console.consoleTypeTest" value="exampleConsole"/>
</enablement>
</consolePatternMatchListener>
</extension>
与特定类型的控制台上的正则表达式匹配。
控制台支持有许多扩展点,用于定义控制台的不同类型的扩展。
如果您想更加动态地执行此操作,您可以使用IConsoleManager
侦听正在创建的控制台:
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
// Existing consoles
IConsole[] consoles = manager.getConsoles();
// Listen for consoles being added/removed
manager.addConsoleListener(console listener);
文本控制台将是TextConsole
的一个实例,您可以使用TextConsole
addPatternMatchListener
方法添加模式监听器。