boolean (@NotNull TypedDelegateFunc action, char charTyped, @NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) { boolean warned = false; for (TypedHandlerDelegate delegate : TypedHandlerDelegate.EP_NAME.getExtensionList()) { TypedHandlerDelegate.Result result = action.call(delegate, charTyped, project, editor, file); if (editor instanceof EditorWindow && !((EditorWindow)editor).isValid() && !warned) { LOG.warn(new IllegalStateException(delegate.getClass() + " has invalidated injected editor on typing char '"+charTyped+"'. Please don't call commitDocument() there or other destructive methods")); warned = true; } if (result == TypedHandlerDelegate.Result.STOP) { return true; } if (result == TypedHandlerDelegate.Result.DEFAULT) { break; } } return false; }