Eclipse控制台:检测警告和错误模式并使其可单击

时间:2009-05-25 10:55:43

标签: eclipse console design-patterns

我正在运行eclipse中的ant编译器(mxmlc)用于我们的一些构建(它们也意味着在我们的持续集成服务器上运行,这就是为什么我不使用flex builder本身构建) - - eclipse-console无法识别mxmlc的模式,因此我无法点击它们。

模式是这样的:

<文件的绝对路径>(< line no>):col:< column no>警告:< message>

用于检测这些消息的正则表达式应该不难。

如何让eclipse识别出一种新的错误信息?我是否必须编写自己的扩展程序,或者是否有一些常规支持我可以在配置中添加正则表达式?

我也可以尝试让ant将错误翻译成看似java错误的内容,但我宁愿让eclipse识别mxmlc错误。

4 个答案:

答案 0 :(得分:8)

修改 我发现了一个插件,可以看一下这个:Sunshade Errorlink(向下滚动一下)。我不确定这是多么灵活,但它提到了蚂蚁支持。


我知道你可能想要一个实际的实现,但这是你想要的插件设计的一个粗略的起点。如果有人想要实现它,请在此处添加链接以指向它。如果我有空闲时间,我可能会自己做(哈!):)

假设控制台基于TextConsole,这似乎是合理的,spec说:

  

支持正则表达式匹配的抽象文本控制台   超链接。

     

模式匹配侦听器可以通过编程方式在控制台中注册   或通过 org.eclipse.ui.console.consolePatternMatchListeners   延伸点。

我看了一下,spec for that extension point有以下示例:

<extension point="org.eclipse.ui.console.consolePatternMatchListener">
  <consolePatternMatchListener
    class="com.example.ExampleConsolePatternMatcher"
    id="com.example.ExampleConsolePatternMatcher"
    regex=".*foo.*">
    <enablement>
      <test 
        property="org.eclipse.ui.console.consoleTypeTest"
        value="exampleConsole"/>
    </enablement>
  </consolePatternMatchListener>
</extension>

您需要IPatternMatchListenerDelegate的API,然后您应该可以使用TextConsole.addHyperlink来创建所需的链接。

答案 1 :(得分:5)

@zvikico让我更多地研究Grep控制台 - 可以设置它来制作可点击的链接!

当前链接:http://marian.schedenig.name/projects/grep-console/ - 您可以使用Eclipse-Marketplace

进行安装

要获得可点击的链接,必须执行以下操作:

  1. 安装Grep控制台(我使用3.7.0)
  2. 为您的文件/网址添加新的表达式(控制台视图中的(?)图标),确保您的正则表达式仅捕获文件/链接或您有一个捕获组{{1仅匹配文件/链接

    ()

    将匹配像这样的控制台输出:

    FFDC-Vorfall an (.*\.txt)

  3. 在样式&amp;链接此表达式的选项卡,双击&#34;链接&#34;您的整线或捕获组的单元格。

  4. 选择文件或网址

  5. 在文件/网址的输入字段中,对第一个组使用FfdcProvider logIncident FFDC1003I: FFDC-Vorfall an C:\server1_e2f9557d_16.01.20_12.54.37.4484801293756887191925.txt erstellt. {line}。然后Grep Console将使用该值。

  6. (可选)使用蓝色下划线样式,以便突出显示链接

  7. 要打开文件/链接,您必须按住 CTRL 键(可在选项中更改),然后单击

  8. 请参阅文档的Styles & LinksPattern Strings

答案 2 :(得分:2)

几年后我才提出这个问题,希望用Eclipse CDT做这件事。 Sunshade Errorlink似乎不适用于我的Eclipse版本(4.4.0)。因此,我把一个简单而不专业的插件放在一起,似乎正在为我充分解决问题。我已经把它放在GitHub上以防其他人想要保存自己类似的麻烦,或者使用我的代码作为参考:https://github.com/mjwach/ErrorLinkyThing

答案 3 :(得分:1)

Grep Console插件就是这样做的。