2016-08-25 3 views
2

Я пытаюсь написать плагин Eclipse, который запускает LaunchConfiguration, когда уже запущенный LaunchConfiguration печатает пользовательскую предопределенную строку в консоли.Как читать консоль-вывод-текст с помощью eclipse-плагина?

Вот пример псевдокода за то, что я ищу:

  String check = "Server started and running"; 

      new ConsoleOutputListener(Event event) { 
      String consoleText = event.getConsoleOutputTextOfAllConsoles(); 

       if(consoleText.contains(check)) { 
        //launch LaunchConfiguration 
       } 

      } 

Есть ли способ реализовать приведенный выше пример? Любая помощь si ценится как всегда!

ответ

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 вы можете добавить шаблон слушателя с помощью метода TextConsoleaddPatternMatchListener.

+0

Здравствуйте, Грег, я редактировал вопрос и добавил пример. Я думаю, что ваше решение не то, что я специально ищу, но, возможно, вы можете снова взглянуть на отредактированный вопрос. Заранее спасибо. – PrestigeDev

+0

Думаю, вам все равно придется использовать прослушиватели шаблонов, но вы можете установить это динамически, слушая добавление консолей. Я обновил ответ, чтобы описать, как это сделать. –

+0

Он отлично работает. Спасибо, Грег, за отличную работу здесь, в Stackoverflow. – PrestigeDev