@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(); CharSequence documentText = context.getDocument().getImmutableCharSequence(); int offset = skipWhiteSpaces(editor.getCaretModel().getOffset(), documentText); if (documentText.charAt(offset) != '{') { Project project = context.getProject(); Template template = TemplateManager.getInstance(project).createTemplate("braces", "go", myOneLine ? "{$END$}" : " {\n$END$\n}"); template.setToReformat(true); TemplateManager.getInstance(project).startTemplate(editor, template); } else { editor.getCaretModel().moveToOffset(offset); ApplicationManager.getApplication().runWriteAction(() -> { EditorActionHandler enterAction = EditorActionManager.getInstance().getActionHandler(IdeActions.ACTION_EDITOR_START_NEW_LINE); enterAction.execute(editor, editor.getCaretModel().getCurrentCaret(), ((EditorEx)editor).getDataContext()); }); } }
private boolean hasStartingQuote( final InsertionContext insertionContext, final char quoteType, final int startOfLookupStringOffset) { return insertionContext.getDocument().getText().charAt(startOfLookupStringOffset - 1) == quoteType; }
@NotNull private String getStringAfterAutoCompletedValue(final InsertionContext context) { return context.getDocument().getText().substring(context.getTailOffset()); }
@NotNull private String getStringAfterAutoCompletedValue(final InsertionContext context) { return context.getDocument().getText().substring(context.getTailOffset()); }
private boolean hasEndingQuote( final InsertionContext insertionContext, final int caretOffset, final char quoteType) { final CharSequence chars = insertionContext.getDocument().getCharsSequence(); return CharArrayUtil.regionMatches(chars, caretOffset, String.valueOf(quoteType)); }
@NotNull private String getStringBeforeAutoCompletedValue( final InsertionContext context, final LookupElement item) { return context .getDocument() .getText() .substring(0, context.getTailOffset() - item.getLookupString().length()); } }
@NotNull private String getStringBeforeAutoCompletedValue( final InsertionContext context, final LookupElement item) { final int tailOffset = context.getDocument().getText().substring(0, context.getTailOffset()).endsWith("\"") ? context.getTailOffset() : context.getTailOffset() + 1; return context .getDocument() .getText() .substring(0, tailOffset) .replace("\"" + item.getLookupString() + "\"", ""); }
public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement lookupElement) { Object object = lookupElement.getObject(); if (!(object instanceof PhpClass)) { return; } StringBuilder textToInsertBuilder = new StringBuilder(); PhpClass aClass = (PhpClass)object; String fqn = aClass.getNamespaceName(); if(fqn.startsWith("\\")) { fqn = fqn.substring(1); } textToInsertBuilder.append(fqn); context.getDocument().insertString(context.getStartOffset(), textToInsertBuilder); }
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, "\""); } }
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(), "@"); } }
public void handleInsert(@NotNull InsertionContext context, @NotNull AssetLookupElement lookupElement) { context.getDocument().insertString(context.getStartOffset(), "{{ asset('"); PhpInsertHandlerUtil.insertStringAtCaret(context.getEditor(), "') }}"); }
Document document = context.getDocument(); PsiDocumentManager.getInstance(context.getProject()).doPostponedOperationsAndUnblockDocument(document); GoStatement firstStatement = ContainerUtil.getFirstItem(block.getStatementList());
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 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 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 handleStartingQuote( final InsertionContext insertionContext, final LookupElement lookupElement, final char quoteType) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = hasStartingQuote(insertionContext, quoteType, startOfLookupStringOffset); if (!hasStartingQuote) { insertionContext .getDocument() .insertString(startOfLookupStringOffset, String.valueOf(quoteType)); } }
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); }
@Override public void handleInsert(InsertionContext context, LookupElement lookupElement) { if(ResourceFileInsertHandler.isStringBeforeCaret(context.getEditor(), context, "'") || ResourceFileInsertHandler.isStringBeforeCaret(context.getEditor(), context, "\"")) { return; } int startOffset = context.getStartOffset(); context.getDocument().insertString(startOffset, "\""); context.getDocument().insertString(startOffset + lookupElement.getLookupString().length() + 1, "\""); // move to end context.getEditor().getCaretModel().moveCaretRelatively(1, 0, false, false, true); } }