SelectionListener not working

Answered

Hi , I want to know what code is selected by user. Currently I  use  editorCreated  hook  to register  addSelectionListener to listen to code selection changes (for some reason, i prefer listening to selection change to querying selection change). There is a situation where it doesnt work:   if i install my plugin for the first time,  my selection listener will not receive selection  event  from  java files already opened before the time i install plugin because listener is not registered in editorCreated, because editorCreated  is not invoked for already opened java files.  

 

plugin.xml 

<editorFactoryListener implementation="org.intellij.sdk.listener.EditorListener" />

EditorListener:

public class EditorListener implements EditorFactoryListener {
  private final EditorSelectionListener selectionListener = new EditorSelectionListener();

  public void editorCreated(@NotNull EditorFactoryEvent event) {
    Editor editor = event.getEditor();
    Project project = editor.getProject();
    Disposable editorDisposable = Disposer.newDisposable("EditorListener");
    EditorUtil.disposeWithEditor(editor, editorDisposable);
    editor.getSelectionModel().addSelectionListener(this.selectionListener, editorDisposable);
  }
}
1
1 comment

Hi,

Please try implementing DynamicPluginListener.pluginLoaded() and register listener in all opened editors (EditorFactory.getInstance().getAllEditors()).

0

Please sign in to leave a comment.