代码之家  ›  专栏  ›  技术社区  ›  Michael Borgwardt

如何在eclipse编辑器插件中显示语法错误

  •  4
  • Michael Borgwardt  · 技术社区  · 16 年前

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

    • 对于下划线,我只是让扫描仪返回一个 IToken 用“扭曲的下划线” TextAttribute 而不是普通的,或者是否有一个特定的机制来标记语法错误?
    • IAnnotationModel 这里的相关接口是什么?如果是,我在哪里注册实现以便标记出现?
    • 我只找到了 SourceViewerConfiguration.getAnnotationHover()

    我很乐意提供一些具体的建议和一个教程的URL,其中包括了这方面的内容——eclipse帮助文档和示例似乎没有。

    编辑: org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction

    2 回复  |  直到 14 年前
        1
  •  8
  •   Michael Rutherfurd    16 年前

    你应该用记号笔。

    “Eclipse Java开发人员指南”中的一个示例如下:

    <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
  •  2
  •   Uri    16 年前

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

    标记在UI中表示为注释,但Eclipse会添加和删除注释本身。使用直接注释,您可以控制。