Java 在Eclipse中获取编码更改(实时)
我正在尝试使用一个插件来监听eclipse中的codechanges。在Eclipse中,我发现了以下侦听器:Java 在Eclipse中获取编码更改(实时),java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在尝试使用一个插件来监听eclipse中的codechanges。在Eclipse中,我发现了以下侦听器: IResourceChangeListener 但它似乎在保存文件时更新,而不是在写入文件时更新。是否有可能让这些变化“生效” 编辑:我所说的代码更改是指在eclipse编辑器中编辑文件的内容。基本上,当您键入某个内容时,我需要的是事件校准;) EDIT2:我的代码如下所示: plugin.xml: <extension point="org.eclipse.cor
IResourceChangeListener
但它似乎在保存文件时更新,而不是在写入文件时更新。是否有可能让这些变化“生效”
编辑:我所说的代码更改是指在eclipse编辑器中编辑文件的内容。基本上,当您键入某个内容时,我需要的是事件校准;) EDIT2:我的代码如下所示: plugin.xml:
<extension
point="org.eclipse.core.resources.fileModificationValidator">
<fileModificationValidator
class="packages.in.project.MyFileModificationValidator">
</fileModificationValidator>
什么是“代码更改”?。。。因为您的用例不是很清楚,前提是您对物理资源的更改(保存时)不感兴趣
“代码更改”是源文件内容在内存中的任何更改吗?如果是这样的话,答案是否定的。我可以编写一个程序来读取一个文件,对内存中的内容做一些事情,如果我没有提供这样做的机制,你不会注意到
在简历中,一切都取决于谁访问,以及他们是否提供了一种机制来通知他们正在进行“代码更改”,无论这对你意味着什么。对于物理资源的更改,Eclipse通知您是正确的,为了了解这些更改,
IResourceChangeListener
界面是正确的选择。IResourceChangeListener
是一个良好的开端。您可以使用它来检测对工作区资源的更改
您还应该研究如何实现FileModificationValidator
。文件修改验证器是一个与团队相关的钩子,用于修改文件内容的预检查操作。您可以同时实现validatedit
和validateSave
得到答案;)
我使用IDocumentListener来
在编辑器中获取更改
@Override
public void documentChanged(DocumentEvent event) {
//...
}
您希望如何处理更改通知?可能是Java编辑器提供了一种更好的方法来完成您想要的任何事情。@greg-449我想将更改发送到服务器;)我无法使验证器工作:/I保存时收到此消息,但没有任何结果
!ENTRY org.eclipse.core.resources 412013-11-2416:36:33.270!消息fileModificationValidator扩展点中必须定义0或1个验证程序扩展。
确保您已正确注册验证程序。看,看起来不错。当然,您应该返回一个有效的状态NOTNULL。还可以看看这里:IWorkspace.validateEdit(…)它提供了许多额外的细节。添加了返回值,但仍收到错误消息。我必须在其他地方注册Vilidator吗?
@Override
public void documentChanged(DocumentEvent event) {
//...
}