2016-05-30 2 views
1

Ian a écrit un plugin d'inspection pour IntelliJ. Pour ce plugin, j'ai besoin d'accéder depuis la classe basée sur ToolWindowFactory au code source actuel (position du curseur, etc.). Theres un chemin à travers le PSIManager, mais seulement dans les classes dérivées AnAction, pas pour les classes dérivées ToolWindowFactory. Il y a des idées?Comment accéder à la classe basée sur ToolWindowFactory au code source actuel

+0

Quel est exactement "code source en cours"? Il peut y avoir plusieurs volets séparés, chacun avec son propre éditeur. – yole

+0

hmmm, ok. alors le dernier utilisé. – DynamicBit

Répondre

1

Peut-être un com.intellij.openapi.edvent.event.CaretListener fonctionnerait-il? Vous pouvez l'enregistrer comme suit pour recevoir des événements pour tous les éditeurs ouverts.

com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(myCaretListener); 
+0

merci, cela fonctionne. – DynamicBit

0
 CaretListener listener = new CaretAdapter() { 
     @Override 
     public void caretPositionChanged(CaretEvent e) { 
      System.out.println(e.getNewPosition()); 
     } 
    }; 
    com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(listener);