2011-07-04 2 views
4

Je veux construire un plugin simple idée, qui permettra de détecter les changements d'un type de fichier, puis les convertir dans un autre format.Comment détecter les modifications de fichiers dans Intellij-idea?

actuelle, j'utiliser ce code pour ce faire:

VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() { 
    @Override 
    public void contentsChanged(VirtualFileEvent event) { 
     // do something 
    } 
}); 

Il fonctionne, mais pas efficace.

Je trouve this article dit:

La façon la plus efficace pour écouter les événements VFS est de mettre en œuvre l'interface BulkFileListener et de souscrire avec elle au sujet VirtualFileManager.VFS_CHANGES.

Mais je ne trouve aucun exemple pour l'implémenter. Comment faire ça?

Répondre

7

Je suppose que vous aurez trouvé la réponse maintenant, mais pour d'autres, il semble fonctionner comme ça

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) { 
     // ... 
    } 

    ... 
} 
+0

Détecte pour chaque action non seulement sauver –

Questions connexes