java - 在 Eclipse 中以特定行号打开 XML 文件
问题描述
我正在编写一个 Eclipse 插件,我需要在特定行号(错误所在)处打开一个 XML 文件。
我已经按照这个问题的公认答案,它实际上有效......在我的听众中生成resourceChanged()事件的不良副作用。FileSystemChangesListener
有没有办法跳转到特定行而不产生文件更改?这些事件触发插件中的其他执行。
我尝试添加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()事件。
解决方案
该IFile.createMarker
调用正在生成资源更改事件,您无法阻止这一点。
但是,您可以确定这是IResourceData
您收到的创建标记事件 - 该getFlags()
方法将IResourceData.MARKERS
设置标志。
请注意,资源增量可以合并,因此可能设置了几个标志 - 例如,如果IResourceDelta.CONTENT
设置了文件的内容也已更改。
推荐阅读
- javascript - React Hooks setState 数组中的元素
- c++ - 更改派生类数据成员后的段错误
- r - 有没有办法从一个函数返回两个单独的列表?
- apache-flink - 在 EMR 上部署 flink 应用程序时出错
- html - 将子元素保留在其父元素中(HTML 和 CSS)
- javascript - Try Catch 中的 NodeJS JSON 写入错误
- python - Python socket 在 5 秒内没有收到数据后向 Client 发送消息
- android - android测验按钮正在改变大小和位置,如何解决这个问题
- javascript - 从 Wikipedia API 说明文本中删除换行符
- mysql - Docker Compose:Depends_On 与外部容器?