在Eclipse中以特定的行号打开XML文件

时间:2018-04-27 16:15:29

标签: java eclipse eclipse-plugin jface

我正在编写一个eclipse插件,我需要在特定的行号(错误所在的位置)打开一个XML文件。

我已经按照question上接受的答案进行了操作,它确实有效......在我的FileSystemChangesListener侦听器中生成 resourceChanged()事件会产生不良副作用。

有没有办法跳转到特定行而不会产生文件更改?这些事件会触发插件中的其他执行。

我尝试将TRANSIENT参数添加为true但无效:

HashMap<String, Object> map = new HashMap<String, Object>();
map.put(IMarker.LINE_NUMBER, lineNumber);
map.put(IMarker.TRANSIENT, true); // doesn't make any difference.
marker.setAttributes(map);
IDE.openEditor(page, marker);

仍然会生成 resourceChanged()事件。

1 个答案:

答案 0 :(得分:1)

IFile.createMarker来电正在生成资源更改事件,您无法阻止此事。

但是,您可以确定这是您收到的IResourceData中的创建标记事件 - getFlags()方法将设置IResourceData.MARKERS标记。

请注意,资源增量可以合并,因此可能设置了多个标志 - 例如,如果设置了IResourceDelta.CONTENT,文件的内容也会发生变化。