void (@NotNull Editor editor, char c, @NotNull DataContext context, @NotNull ActionPlan plan) { if (COMPLEX_CHARS.contains(c) || Character.isSurrogate(c)) return; for (TypedHandlerDelegate delegate : TypedHandlerDelegate.EP_NAME.getExtensionList()) { if (!delegate.isImmediatePaintingEnabled(editor, c, context)) { return; } } if (editor.isInsertMode()) { int offset = plan.getCaretOffset(); plan.replace(offset, offset, String.valueOf(c)); } super.beforeExecute(editor, c, context, plan); }