如何通过键入来编辑文件时如何调整自定义Eclipse标记的位置属性?

时间:2015-06-13 15:54:31

标签: eclipse eclipse-cdt markers

Eclipse在编辑文件时是否调整自定义标记的位置属性?

我有很多Eclipse插件,我在其中成功创建和删除标记,创建快速修复,并以编程方式将编辑应用于活动编辑器。当从缓冲区插入或删除文本时,编辑器中的所有文本都会移动,而Eclipse的标记和我的自定义标记与文本保持同步。

问题在于,在编辑文件时,无论是通过常规键入还是通过更改IBuffer以编程方式,都不会修改属性(例如CHAR_START) - 它们会在创建标记并首次显示时报告值。因此,当人们在标记上执行QuickFix时,报告的位置不正确。 (这是CDT中的信息标记,如果重要的话。)

编辑发生时,这些标记位置应如何更新? 是否有Eclipse方法来执行此操作,但我需要实现一些设置或通知或监听器?

一种可能性是实现ResourceChangeReporter - 但是在文本编辑发生时不会触发它,例如,当调用保存时。而且,如果是的话,我看不到有关文件如何实际更改的信息。

我想我可以要求在应用快速修复之前保存脏文件,但我仍然看不到从哪里获取有关文件编辑的信息。如果我以编程方式应用编辑,我就知道这些信息,但是当通过输入进行编辑时它无效。

1 个答案:

答案 0 :(得分:0)

使用org.eclipse.ui.editors.markerUpdaters扩展点声明的更新程序并实施IMarkerUpdater接口,可以在编辑期间更新标记位置。

但是有一个默认的更新程序org.eclipse.ui.texteditor.BasicMarkerUpdater已经为所有应该为您进行基本位置更新的标记激活。