@Override public void execute( @NotNull final Editor editor, char charTyped, @NotNull DataContext dataContext) { if (editor.isViewer()) return; Document doc = editor.getDocument(); Project project = CommonDataKeys.PROJECT.getData(dataContext); if (!FileDocumentManager.getInstance().requestWriting(doc, project)) { return; } doc.startGuardedBlockChecking(); try { final String str = String.valueOf(charTyped); CommandProcessor.getInstance() .setCurrentCommandName(EditorBundle.message("typing.in.editor.command.name")); EditorModificationUtil.typeInStringAtCaretHonorMultipleCarets(editor, str, true); } catch (ReadOnlyFragmentModificationException e) { EditorActionManager.getInstance().getReadonlyFragmentModificationHandler(doc).handle(e); } finally { doc.stopGuardedBlockChecking(); } }
public static void typeInStringAtCaretHonorMultipleCarets( final Editor editor, @NotNull final String str, final boolean toProcessOverwriteMode) { typeInStringAtCaretHonorMultipleCarets(editor, str, toProcessOverwriteMode, str.length()); }