У меня есть плагин, в который я хотел бы добавить дополнительную функциональность, когда пользователь запускает клавишу BACKSPACE и DELETE , не теряя первоначальную функциональность (в данном случае удаление символа).
Я пытаюсь переопределить EditorActionHandler
для указанного ideActions.<ACTION_EDITOR_VALUE>
:
public class MyPlugin implements BaseComponent {
@Override
public void initializeComponent() {
final EditorActionManager editorActionManager = EditorActionManager.getInstance();
EditorActionHandler originalBackspaceHandler = editorActionManager.getActionHandler(IdeActions.ACTION_EDITOR_BACKSPACE);
EditorActionHandler eaHandler = new EditorActionHandler() {
@Override
protected void doExecute(@NotNull Editor editor, @Nullable Caret caret, DataContext dataContext) {
super.doExecute(editor, caret, dataContext);
originalBackspaceHandler.execute(editor,caret,dataContext);
PsiElement e = dataContext.getData(CommonDataKeys.PSI_ELEMENT);
if(e != null) {
System.out.println("psi Element" + e.toString());
}
}
};
editorActionManager.setActionHandler(IdeActions.ACTION_EDITOR_DELETE, eaHandler);
} //initalizeComponent()
} //MyPlugin
Является ли это предпочтительным способом переопределения обработчиков editorAction
при сохранении текущей функциональности?Я хотел бы настроить таргетинг на другие IdeActions.<VALUES>
и повторно использовать тот же EditorActionHandler
.