/** * Inserts text into the document * * @param editor The editor to insert into * @param caret The caret to start insertion in * @param str The text to insert */ public void insertText(@NotNull Editor editor, @NotNull Caret caret, @NotNull String str) { int start = caret.getOffset(); editor.getDocument().insertString(start, str); caret.moveToOffset(start + str.length()); VimPlugin.getMark().setMark(editor, MarkGroup.MARK_CHANGE_POS, start); }
document.insertString(offset, entry); offset += entry.length();
@Override public void handleInsert(@NotNull InsertionContext context, LookupElement item) { Editor editor = context.getEditor(); int tailOffset = context.getTailOffset(); Document document = editor.getDocument(); context.commitDocument(); boolean staysAtChar = document.getTextLength() > tailOffset && document.getCharsSequence().charAt(tailOffset) == myChar; context.setAddCompletionChar(false); if (!staysAtChar) { document.insertString(tailOffset, String.valueOf(myChar)); } editor.getCaretModel().moveToOffset(tailOffset + 1); AutoPopupController.getInstance(context.getProject()).scheduleAutoPopup(editor); } }
/** * Inserts the character above/below the cursor at the cursor location * * @param editor The editor to insert into * @param caret The caret to insert after * @param dir 1 for getting from line below cursor, -1 for getting from line above cursor * @return true if able to get the character and insert it, false if not */ public boolean insertCharacterAroundCursor(@NotNull Editor editor, @NotNull Caret caret, int dir) { boolean res = false; VisualPosition vp = caret.getVisualPosition(); vp = new VisualPosition(vp.line + dir, vp.column); int len = EditorHelper.getLineLength(editor, EditorHelper.visualLineToLogicalLine(editor, vp.line)); if (vp.column < len) { int offset = EditorHelper.visualPositionToOffset(editor, vp); char ch = editor.getDocument().getCharsSequence().charAt(offset); editor.getDocument().insertString(caret.getOffset(), Character.toString(ch)); MotionGroup.moveCaret(editor, caret, VimPlugin.getMotion().moveCaretHorizontal(editor, caret, 1, true)); res = true; } return res; }
@Override public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement item) { int tailOffset = context.getTailOffset(); Document document = context.getDocument(); int documentTextLength = document.getTextLength(); boolean insertParentheses; if (documentTextLength > tailOffset) { String currentTail = document.getText( new TextRange(tailOffset, tailOffset + 1) ); char firstChar = currentTail.charAt(0); insertParentheses = firstChar != ' ' && firstChar != '(' && firstChar != '['; } else { insertParentheses = true; } if (insertParentheses) { context.getDocument().insertString(tailOffset, "()"); // + 1 to put between the `(` and `)` context.getEditor().getCaretModel().moveToOffset(tailOffset + 1); } } }
@Override public void handleInsert(@NotNull InsertionContext context, LookupElement item) { Editor editor = context.getEditor(); int tailOffset = context.getTailOffset(); Document document = editor.getDocument(); context.commitDocument(); boolean staysAtChar = (document.getTextLength() > tailOffset) && (document.getCharsSequence().charAt(tailOffset) == myCharacter); context.setAddCompletionChar(false); if (!staysAtChar) { document.insertString(tailOffset, String.valueOf(myCharacter)); } editor.getCaretModel().moveToOffset(tailOffset + 1); AutoPopupController.getInstance(context.getProject()).scheduleAutoPopup(editor); } }
if (startOffset > 0 && startOffset == editor.getDocument().getTextLength() && editor.getDocument().getCharsSequence().charAt(startOffset - 1) != '\n') { editor.getDocument().insertString(startOffset, "\n"); startOffset++;
private int getStartOffset(@NotNull Editor editor, @NotNull Caret caret, SelectionType type, boolean beforeCursor) { if (beforeCursor) { return type == SelectionType.LINE_WISE ? VimPlugin.getMotion().moveCaretToLineStart(editor, caret) : caret.getOffset(); } int startOffset; if (type == SelectionType.LINE_WISE) { startOffset = Math.min(editor.getDocument().getTextLength(), VimPlugin.getMotion().moveCaretToLineEnd(editor, caret) + 1); if (startOffset > 0 && startOffset == editor.getDocument().getTextLength() && editor.getDocument().getCharsSequence().charAt(startOffset - 1) != '\n') { editor.getDocument().insertString(startOffset, "\n"); startOffset++; } } else { startOffset = caret.getOffset(); if (!EditorHelper.isLineEmpty(editor, caret.getLogicalPosition().line, false)) { startOffset++; } } if (startOffset > 0 && startOffset > editor.getDocument().getTextLength()) return startOffset - 1; return startOffset; }
editor.getDocument().insertString(start, "\n"); startOffset = start + 1; editor.getDocument().insertString(start, "\n");
editor.getDocument().insertString(caret, " end"); result = Result.STOP; editor.getDocument().insertString(caret, ">"); result = Result.STOP; editor.getDocument().insertString(caret, ">>"); result = Result.STOP; editor.getDocument().insertString(caret, String.valueOf(charTyped)); result = Result.STOP; editor.getDocument().insertString(caret, "}"); result = Result.STOP;
document.insertString(context.getTailOffset(), "["); editor.getCaretModel().moveToOffset(context.getTailOffset()); document.insertString(context.getTailOffset(), "]"); if (!putCaretInside) { editor.getCaretModel().moveToOffset(context.getTailOffset());
public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement lookupElement) { // resource: "@AsseticBundle/Resources/config/filters/cssimport.xml" // if no @ is before cursor add one if(!isStringBeforeCaret(context.getEditor(), context, "@")) { context.getDocument().insertString(context.getStartOffset(), "@"); } }
int lineDiff = endLine - startLine; if (lineDiff < 2) { document.insertString(lbraceEndOffset, StringUtil.repeat("\n", 2 - lineDiff));
public void handleInsert(@NotNull InsertionContext context, @NotNull AssetLookupElement lookupElement) { context.getDocument().insertString(context.getStartOffset(), "{{ asset('"); PhpInsertHandlerUtil.insertStringAtCaret(context.getEditor(), "') }}"); }
private void handleEndingQuote(final InsertionContext insertionContext, final char quoteType) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final boolean hasEndingQuote = hasEndingQuote(insertionContext, caretOffset, quoteType); if (!hasEndingQuote) { insertionContext.getDocument().insertString(caretOffset, String.valueOf(quoteType)); } } }
private void handleStartingQuote( final InsertionContext insertionContext, final LookupElement lookupElement) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = insertionContext.getDocument().getText().charAt(startOfLookupStringOffset - 1) == '\"'; if (!hasStartingQuote) { insertionContext.getDocument().insertString(startOfLookupStringOffset, "\""); } }
private void handleStartingQuote( final InsertionContext insertionContext, final LookupElement lookupElement) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = insertionContext.getDocument().getText().charAt(startOfLookupStringOffset - 1) == '\"'; if (!hasStartingQuote) { insertionContext.getDocument().insertString(startOfLookupStringOffset, "\""); } }
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); }
private void handleEndingQuote(final InsertionContext insertionContext) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final CharSequence chars = insertionContext.getDocument().getCharsSequence(); final boolean hasEndingQuote = CharArrayUtil.regionMatches(chars, caretOffset, "\""); if (!hasEndingQuote) { insertionContext.getDocument().insertString(caretOffset, "\""); } EditorModificationUtil.moveCaretRelatively(insertionContext.getEditor(), 1); }
private void handleEndingQuote(final InsertionContext insertionContext) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final CharSequence chars = insertionContext.getDocument().getCharsSequence(); final boolean hasEndingQuote = CharArrayUtil.regionMatches(chars, caretOffset, "\""); if (!hasEndingQuote) { insertionContext.getDocument().insertString(caretOffset, "\""); EditorModificationUtil.moveCaretRelatively(insertionContext.getEditor(), 1); } } }