@Nullable public static InsertHandler<LookupElement> createTemplateBasedInsertHandler(@NotNull String templateId) { return (context, item) -> { Template template = TemplateSettings.getInstance().getTemplateById(templateId); Editor editor = context.getEditor(); if (template != null) { editor.getDocument().deleteString(context.getStartOffset(), context.getTailOffset()); TemplateManager.getInstance(context.getProject()).startTemplate(editor, template); } else { int currentOffset = editor.getCaretModel().getOffset(); CharSequence documentText = editor.getDocument().getImmutableCharSequence(); if (documentText.length() <= currentOffset || documentText.charAt(currentOffset) != ' ') { EditorModificationUtil.insertStringAtCaret(editor, " "); } else { EditorModificationUtil.moveCaretRelatively(editor, 1); } } }; } }
editor.getDocument().deleteString(range.getStartOffset(), range.getEndOffset());
@NotNull private static InsertHandler<LookupElement> createTemplateBasedInsertHandler(@NotNull String templateId, @Nullable String traileringString) { return (context, item) -> { Template template = TemplateSettings.getInstance().getTemplateById(templateId); Editor editor = context.getEditor(); if (template != null) { editor.getDocument().deleteString(context.getStartOffset(), context.getTailOffset()); TemplateManager.getInstance(context.getProject()).startTemplate(editor, template); } else { int currentOffset = editor.getCaretModel().getOffset(); CharSequence documentText = editor.getDocument().getImmutableCharSequence(); if (documentText.length() <= currentOffset || documentText.charAt(currentOffset) != ' ') { if (traileringString != null) { EditorModificationUtil.insertStringAtCaret(editor, traileringString); } } else { EditorModificationUtil.moveCaretRelatively(editor, 1); } } }; }
final int[] endOffsets = range.getEndOffsets(); for (int i = range.size() - 1; i >= 0; i--) { document.deleteString(startOffsets[i], endOffsets[i]);
@Override public Result postProcessEnter(@NotNull PsiFile file, @NotNull Editor editor, @NotNull DataContext dataContext) { if (!file.getLanguage().is(BallerinaLanguage.INSTANCE)) { return Result.Continue; } // We need to save the file before checking. Otherwise issues can occur when we press enter in a string. Project project = file.getProject(); PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); // Checks whether the previous line starts with "#". LogicalPosition caretPos = editor.getCaretModel().getLogicalPosition(); int prevLine = caretPos.line - 1; String lineString = editor.getDocument().getText( new TextRange(editor.getDocument().getLineStartOffset(prevLine), editor.getDocument().getLineEndOffset(prevLine))); if (lineString.trim().startsWith("#")) { int newCol = lineString.indexOf("#"); String enteredText = editor.getDocument().getText( new TextRange(editor.getDocument().getLineStartOffset(caretPos.line), editor.getDocument().getLineEndOffset(caretPos.line))).trim(); editor.getDocument().deleteString(editor.getDocument().getLineStartOffset(caretPos.line), editor.getDocument().getLineEndOffset(caretPos.line)); editor.getCaretModel().moveToLogicalPosition(new LogicalPosition(caretPos.line, 1)); enterNewLine(editor, enteredText, newCol); // Commit the document. PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); } return Result.Continue; }
private void removeCommaIfNecessary(final Editor editor) { final int offset = editor.getCaretModel().getOffset(); if (editor.getDocument().getText().charAt(offset) == ',') { editor.getDocument().deleteString(offset, offset + 1); } }
private void removeSiblingFieldCommaIfNecessary(final Editor editor) { final int offset = editor.getCaretModel().getOffset(); final String textAfterOffset = editor.getDocument().getText().substring(offset); if (StringUtils.nextCharAfterSpacesAndLineBreaksIsCurlyBraces(textAfterOffset)) { final String textBeforeOffset = editor.getDocument().getText().substring(0, offset); if (StringUtils.nextCharAfterSpacesAndLineBreaksIsCommaStartingFromEnd(textBeforeOffset)) { final int lastCommaIndex = textBeforeOffset.lastIndexOf(","); editor.getDocument().deleteString(lastCommaIndex, lastCommaIndex + 1); } } }
public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement lookupElement) { // reuse core class + namespace insertHandler PhpReferenceInsertHandler.getInstance().handleInsert(context, lookupElement); // phpstorm8: remove leading backslash on PhpReferenceInsertHandler String backslash = context.getDocument().getText(new TextRange(context.getStartOffset(), context.getStartOffset() + 1)); if("\\".equals(backslash)) { context.getDocument().deleteString(context.getStartOffset(), context.getStartOffset() + 1); } }
private void removeEmptyLineIfNecessary(final Editor editor) { final int offset = editor.getCaretModel().getOffset(); final int lineNumber = editor.getDocument().getLineNumber(offset); final int lineStartOffset = editor.getDocument().getLineStartOffset(lineNumber); final int lineEndOffset = editor.getDocument().getLineEndOffset(lineNumber); final String lineContent = editor.getDocument().getText().substring(lineStartOffset, lineEndOffset); if ("".equals(lineContent.trim())) { final int endIndex = editor.getDocument().getText().length() > lineEndOffset ? lineEndOffset + 1 : lineEndOffset; editor.getDocument().deleteString(lineStartOffset, endIndex); } }
@Override public void insert(@NotNull String selected) { String text = this.psiElement.getText(); int i = getServiceChar(text); if(i < 0) { HintManager.getInstance().showErrorHint(editor, "No valid char in text range"); return; } String afterAtText = text.substring(i); // strip ending quotes int length = StringUtils.stripEnd(afterAtText, "'\"").length(); int startOffset = this.psiElement.getTextRange().getStartOffset(); int afterAt = startOffset + i + 1; editor.getDocument().deleteString(afterAt, afterAt + length - 1); editor.getDocument().insertString(afterAt, selected); }
private void removeEmptyLineIfNecessary(final Editor editor) { final int offset = editor.getCaretModel().getOffset(); final int lineNumber = editor.getDocument().getLineNumber(offset); final int lineStartOffset = editor.getDocument().getLineStartOffset(lineNumber); final int lineEndOffset = editor.getDocument().getLineEndOffset(lineNumber); final String lineContent = editor.getDocument().getText().substring(lineStartOffset, lineEndOffset); if ("".equals(lineContent.trim())) { final int endIndex = editor.getDocument().getText().length() > lineEndOffset ? lineEndOffset + 1 : lineEndOffset; editor.getDocument().deleteString(lineStartOffset, endIndex); } }
private void forceDocumentUpdate(final Editor editor, final PsiFile psiFile) { editor.getDocument().insertString(0, " "); PsiDocumentManager.getInstance(psiFile.getProject()).commitDocument(editor.getDocument()); editor.getDocument().deleteString(0, 1); }
@Override public void preprocessTemplate(Editor editor, PsiFile file, int caretOffset, String textToInsert, String templateText) { if (isMyFile(file) && textToInsert.startsWith("<%") && caretOffset > 0) { Document document = editor.getDocument(); CharSequence text = document.getCharsSequence(); if (text.charAt(caretOffset - 1) == '<') { document.deleteString(caretOffset - 1, caretOffset); editor.getCaretModel().moveToOffset(caretOffset - 1); } } } }
public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement lookupElement) { // reuse core class + namespace insertHandler PhpReferenceInsertHandler.getInstance().handleInsert(context, lookupElement); // phpstorm8: remove leading backslash on PhpReferenceInsertHandler String backslash = context.getDocument().getText(new TextRange(context.getStartOffset(), context.getStartOffset() + 1)); if("\\".equals(backslash)) { context.getDocument().deleteString(context.getStartOffset(), context.getStartOffset() + 1); } }
int openAnglesOffset = openAngles.getTextRange().getStartOffset(); editor.getDocument().deleteString(openAnglesOffset, openAnglesOffset + 1); return true; int closeAnglesOffset = closeAngles.getTextRange().getStartOffset(); editor.getDocument().deleteString(closeAnglesOffset - 1, closeAnglesOffset); return true;
doc.deleteString(start.getStartIndex(), stop.getStopIndex()+1);
doc.deleteString(start.getStartIndex(), stop.getStopIndex()+1);
POST_HANDLER.set(editor, () -> true); editor.getDocument().deleteString(startOffsetToDelete, iterator.getEnd());