【发布时间】: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