【问题标题】:Show error marker for external resource显示外部资源的错误标记
【发布时间】:2017-08-02 15:19:41
【问题描述】:

我编写了一个执行语法检查的eclipse编辑器,如果发现错误,它将在编辑器中显示。

目前,我正在通过在各自的 IResource 中创建一个标记来执行此操作,并且在用户使用 File -> Open File... 选项以使用该编辑器打开非项目文件之前效果很好。

问题是EditorInput 不再是IFileEditorInput(它是FileStoreEditorInput),它允许我通过getFile() 检索连接的IResource(我可以通过@987654328 在其上添加标记@)。事实上,核心问题是打开的文件根本不是IResource(至少这是我的猜测,因为它不在 Eclipse 工作区中)。

还有其他方法可以在编辑器中显示错误标记吗?它不需要是可保存的或任何东西......只是一种告诉编辑器在源代码中创建相同标记的方法,就好像在打开的IResource 上附加了一些IMarker

【问题讨论】:

  • 假设这是一个基于标准 TextEditor 的文本编辑器,我认为您需要替换 Annotation Model 才能使用 ResourceMarkerAnnotationModel 以外的其他内容。
  • 这听起来像是很多工作......难道没有某种默认值可以切换到吗?
  • 我不这么认为。对工作区之外的事物进行操作的编辑器并不常见,也没有那么多的支持。
  • 好的,谢谢!你碰巧知道在哪里“注册”新的 annotationModel 吗?据我发现它或多或少与编辑器的文档相关联,尽管我找不到像setAnnotationModel这样的方法...
  • 对不起,我很久没看这个了。请注意,您可以使用IFile.createLink 在工作区内创建指向外部资源的链接,这可能是解决此问题的另一种方法。

标签: eclipse eclipse-plugin editor markers


【解决方案1】:

好吧,我实际上是在寻找在DocumentProviderAnnotationModel 中创建Annotation。可以通过addAnnotation 添加它。

这种方法效果很好。但是我还没有找到可用注释类型的列表(就像标记一样),所以实际获得正确的注释有点棘手......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2014-04-19
    相关资源
    最近更新 更多