当前位置: 首页 > 面试题库 >

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

姚昊焱
2023-03-14
问题内容

我如何像eclipse
Java编辑器一样在eclipse编辑器插件中指示语法错误(例如,非法的令牌序列),即通过红色蠕动的下划线,可以跳到的滚动条上的红色标记以及解释性消息,何时出现?您将鼠标悬停在任何一个上吗?

我正在为自定义文件格式(特别是Shark3D游戏引擎的“蛇文件格式”)编写一个eclipse编辑器插件。我已经实现了扫描仪以突出显示语法和轮廓。

  • 对于下划线,我是否只是让扫描程序返回IToken带有“可变形下划线”的,TextAttribute而不是正常的下划线,或者是否存在用于标记语法错误的特定机制?
  • 如何实现滚动条标记?是IAnnotationModel相关的接口吗?如果是这样,我应该在哪里注册实现,以便标记出现?
  • 我只发现了SourceViewerConfiguration.getAnnotationHover(),这将允许我实现悬停行为,但仅实现“​​注释”,我想这意味着滚动条标记-如何实现文本本身的悬停行为?

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

编辑:
标记是对此的最佳解决方案。有关如何使用它们的工作示例,请参见以下代码中的插件示例代码org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction


问题答案:

您应该使用标记。

从“ 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");


 类似资料:
  • 我正在测试ace-editor显示服务器上的大型文本文件。由于它吹嘘能够处理高达4百万行的文件,并且具有文本高亮显示功能,这使它成为一个很好的候选者。 我一直在努力理解Ace Editor的文档和EditSession。根据我的理解,它可以告诉ace editor从一个文件中读取并显示它。 我正在使用createEditSessiont()创建会话并指定文档。在api文档中: createEdit

  • 我在使用AndroidADT插件的日食上遇到了一个非常奇怪的问题。 当我尝试打开一个XML布局文件时,结果就是屏幕截图中的那个。布局编辑器不会显示文件名,也不会加载任何内容。编辑器停留在“加载编辑器”上,如果我切换到视图,则XML加载良好。 这个问题在我打开的每个布局文件和每个项目中都会出现。我试着: 重新启动日食 更新广告开发服务插件 从Android SDK 管理器安装所有软件包和更新 控制台

  • 问题内容: 我见过Veloedit,它看起来语法高亮,但是不允许正在编辑的文件中的制表符(wtf?),并且也不了解HTML。 通过一点点搜索,我发现了Veloecipse,它声称是在Veloedit的基础上开发的,并且还添加了HTML支持- 但似乎与Eclipse 3.4不兼容 。 是否还有其他任何人正在使用的其他Velocity模板编辑器插件? 理想的解决方案应具有以下功能: VTL的语法重点

  • 我使用的是JDK1.6(由于依赖关系),为了从xsd生成类,我添加了maven-jaxb2插件,如pom中所示。xml。 但日食(开普勒)抱怨如下。 分析命令行[[-Xsimplify,-spoint,D:\test\workspace\sample\target\generated sources\xjc\META-INF\sun jaxb.epoint]]时出错(org.jvnet.jaxb2

  • 问题内容: 我想在我的Java文件中显示每一行的作者姓名。我已经在使用FishEye(http://www.atlassian.com/software/fisheye/),但是我想在Eclipse Java编辑器中使用此功能。 问题答案: Eclipse中有一个类似的功能:在Java文件的右键菜单中选择Team / Show Annotation…。它应该与各种团队提供者一起工作(我只有CSV和

  • 问题内容: 我在jsp文件中出现错误(在X行上),但这似乎都是正确的。 会是什么呢?是否在任何地方使用ServletException或javax.servlet.http? 问题答案: 对于第一个错误(),您需要将文件放入`classpath: 为此,请按照下列步骤操作: 右键单击该项目。 单击构建路径->配置构建路径 在库选项卡中->单击添加外部jar 选择档案 对于第二个错误:( ): 右键