Plugins 如何在Intellij idea中检测文件更改?
我想构建一个简单的idea插件,它将检测一种文件的更改,然后将其转换为另一种格式 目前,我使用这样的代码来执行此操作:Plugins 如何在Intellij idea中检测文件更改?,plugins,intellij-idea,Plugins,Intellij Idea,我想构建一个简单的idea插件,它将检测一种文件的更改,然后将其转换为另一种格式 目前,我使用这样的代码来执行此操作: VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() { @Override public void contentsChanged(VirtualFileEvent event) { // do something } });
VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() {
@Override
public void contentsChanged(VirtualFileEvent event) {
// do something
}
});
它可以工作,但效率不高
我发现他说:
侦听VFS事件的最有效方法是实现BulkFileListener接口,并使用它订阅VirtualFileManager.VFS_更改主题
但是我找不到任何例子来实现它。如何做到这一点?我想你现在已经找到了答案,但对其他人来说,似乎是这样的
public class A implements ApplicationComponent, BulkFileListener {
private final MessageBusConnection connection;
public A() {
connection = ApplicationManager.getApplication().getMessageBus().connect();
}
public void initComponent() {
connection.subscribe(VirtualFileManager.VFS_CHANGES, this);
}
public void disposeComponent() {
connection.disconnect();
}
public void before(List<? extends VFileEvent> events) {
// ...
}
public void after(List<? extends VFileEvent> events) {
// ...
}
...
}
公共类A实现ApplicationComponent,BulkFileListener{
私有最终消息总线连接;
公共A(){
连接=ApplicationManager.getApplication().getMessageBus().connect();
}
公共组件(){
订阅(VirtualFileManager.VFS_CHANGES,this);
}
公共无效处置组件(){
连接断开();
}
public void before(列表)此检测每个操作,而不仅仅是保存