【问题标题】:How to show syntax errors in an eclipse editor plugin如何在 Eclipse 编辑器插件中显示语法错误
【发布时间】:2008-12-25 12:06:51
【问题描述】:

我如何在 Eclipse 编辑器插件中指示语法错误(例如,非法的标记序列),就像在 Eclipse Java 编辑器中一样,即通过红色扭曲的下划线、滚动条上可以跳转到的红色标记以及将鼠标悬停在其中一个上时会显示说明性消息?

我正在为自定义文件格式(特别是 Shark3D 游戏引擎的“蛇文件格式”)编写一个 Eclipse 编辑器插件。我已经实现了一个扫描器来获得语法高亮和一个大纲。

  • 对于下划线,我是否只是让扫描仪返回一个带有“扭曲下划线”TextAttributeIToken 而不是正常的,还是有一种特定的机制来标记语法错误?
  • 如何实现滚动条标记? IAnnotationModel是这里的相关接口吗?如果是这样,我在哪里注册实现以便标记出现?
  • 我只找到了SourceViewerConfiguration.getAnnotationHover(),它可以让我实现悬停行为,但仅限于“注释”,我想这意味着滚动条标记 - 如何实现文本本身的悬停行为?

我很乐意提供具体建议以及涵盖此内容的教程的 URL - eclipse 帮助文档和示例似乎没有。

编辑: 标记是最好的解决方案。可以在org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction的插件示例代码中找到如何使用它们的工作示例

【问题讨论】:

    标签: java syntax-highlighting eclipse-plugin


    【解决方案1】:

    您应该使用标记。

    一个来自“The Java Developer's Guide to Eclipse”的例子如下:

    <extension point="org.eclipse.core.resources.markers"  
                id="snakesyntax"  
                name="Snake syntax error">  
        <super type="org.eclipse.core.resources.problemmarker" />  
        <super type="org.eclipse.core.resources.textmarker" />  
        <persistent value="true" />
    <extension>
    
    IMarker marker = res.createMarker("com.ibm.tool.resources.snakesyntax");
    
    marker.setAttribute(IMarker.SEVERITY, 0);
    marker.setAttribute(IMarker.CHAR_START, startOfSyntaxError);
    marker.setAttribute(IMarker.CHAR_END, endOfSyntaxError);
    marker.setAttribute(IMarker.LOCATION, "Snake file");
    marker.setAttribute(IMarker.MESSAGE, "Syntax error");
    

    【讨论】:

      【解决方案2】:

      正确的方法是使用标记界面。

      标记本质上是一种将标记对象映射到源代码中位置的模型,因此在多个文件中可能出现错误的情况下,这很有意义。 (见 IMarker 界面)

      如果您想将标记添加到当前编辑器而不是所有项目,一个更便宜的选择是使用注释,您可以自己添加删除。

      标记在 UI 中表示为注释,但 Eclipse 会自行添加和删除注释。使用直接注释,您可以掌控一切。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-18
        • 2010-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多