@Override public void invoke(@NotNull Project project, @NotNull PsiFile file, @Nullable("is null when called from inspection") Editor editor, @NotNull PsiElement startElement, @NotNull PsiElement endElement) { if (!(file instanceof GoFile) || editor == null || !(startElement instanceof GoBlock)) return; PsiElement brace = ((GoBlock)startElement).getRbrace(); if (brace == null) return; Template template = TemplateSettings.getInstance().getTemplateById("go_lang_add_return"); if (template == null) return; int start = brace.getTextRange().getStartOffset(); editor.getCaretModel().moveToOffset(start); editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); template.setToReformat(true); TemplateManager.getInstance(project).startTemplate(editor, template, true, Collections.emptyMap(), null); } }
public boolean selectPreviousVisualMode(@NotNull Editor editor) { final SelectionType lastSelectionType = EditorData.getLastSelectionType(editor); if (lastSelectionType == null) { return false; } final TextRange visualMarks = VimPlugin.getMark().getVisualSelectionMarks(editor); if (visualMarks == null) { return false; } editor.getCaretModel().removeSecondaryCarets(); CommandState.getInstance(editor) .pushState(CommandState.Mode.VISUAL, lastSelectionType.toSubMode(), MappingMode.VISUAL); Caret primaryCaret = editor.getCaretModel().getPrimaryCaret(); CaretData.setVisualStart(primaryCaret, visualMarks.getStartOffset()); CaretData.setVisualEnd(primaryCaret, visualMarks.getEndOffset()); CaretData.setVisualOffset(primaryCaret, visualMarks.getEndOffset()); updateSelection(editor, primaryCaret, visualMarks.getEndOffset()); primaryCaret.moveToOffset(visualMarks.getEndOffset()); editor.getScrollingModel().scrollToCaret(ScrollType.CENTER); return true; }
public boolean swapVisualSelections(@NotNull Editor editor) { final SelectionType lastSelectionType = EditorData.getLastSelectionType(editor); final TextRange lastVisualRange = EditorData.getLastVisualRange(editor); if (lastSelectionType == null || lastVisualRange == null) { return false; } final SelectionType selectionType = SelectionType.fromSubMode(CommandState.getInstance(editor).getSubMode()); EditorData.setLastSelectionType(editor, selectionType); editor.getCaretModel().removeSecondaryCarets(); Caret primaryCaret = editor.getCaretModel().getPrimaryCaret(); CaretData.setVisualStart(primaryCaret, lastVisualRange.getStartOffset()); CaretData.setVisualEnd(primaryCaret, lastVisualRange.getEndOffset()); CaretData.setVisualOffset(primaryCaret, lastVisualRange.getEndOffset()); CommandState.getInstance(editor).setSubMode(lastSelectionType.toSubMode()); updateSelection(editor, primaryCaret, lastVisualRange.getEndOffset()); primaryCaret.moveToOffset(lastVisualRange.getEndOffset()); editor.getScrollingModel().scrollToCaret(ScrollType.CENTER); return true; }
private void navigateToElement(TextRange[] textRange) { if(editor != null && textRange[0] != null) { editor.getCaretModel().moveToOffset(textRange[0].getStartOffset() + 1); editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); } }
@Override protected void run(@NotNull Result result) throws Throwable { StringBuffer textBuf = new StringBuffer(); textBuf.append("\n"); textBuf.append(methodCreated.getText()); editor.getDocument().insertString(insertPos, textBuf); final int endPos = insertPos + textBuf.length(); CodeStyleManager.getInstance(project).reformatText(phpClass.getContainingFile(), insertPos, endPos); PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument()); Method insertedMethod = phpClass.findMethodByName(functionName); if(insertedMethod != null) { editor.getCaretModel().moveToOffset(insertedMethod.getTextRange().getStartOffset()); editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); } }
/** * Scroll to the error specified by the given tree path, or do nothing * if no error is specified. * * @param treePath the tree path to scroll to. */ private void scrollToError(final TreePath treePath) { final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) treePath.getLastPathComponent(); if (treeNode == null || !(treeNode.getUserObject() instanceof ResultTreeNode)) { return; } final ResultTreeNode nodeInfo = (ResultTreeNode) treeNode.getUserObject(); if (nodeInfo.getFile() == null || nodeInfo.getProblem() == null) { return; // no problem here :-) } final VirtualFile virtualFile = nodeInfo.getFile().getVirtualFile(); if (virtualFile == null || !virtualFile.exists()) { return; } final FileEditorManager fileEditorManager = FileEditorManager.getInstance(project); final FileEditor[] editor = fileEditorManager.openFile( virtualFile, true); if (editor.length > 0 && editor[0] instanceof TextEditor) { final LogicalPosition problemPos = new LogicalPosition( Math.max(lineFor(nodeInfo) - 1, 0), Math.max(columnFor(nodeInfo), 0)); final Editor textEditor = ((TextEditor) editor[0]).getEditor(); textEditor.getCaretModel().moveToLogicalPosition(problemPos); textEditor.getScrollingModel().scrollToCaret(ScrollType.CENTER); } }
public void scrollTo(@NotNull PsiElement element, int offset) { NavigationUtil.activateFileWithPsiElement(element, true); Editor editor = fileEditorManager.getSelectedTextEditor(); if (null != editor) { editor.getCaretModel().moveToOffset(offset); editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); } }
private void handleTemplateFinished(Project project, Editor editor, RangeMarker caretMarker, StartMarkAction startAction) { try { editor.getCaretModel().moveToOffset(caretMarker.getEndOffset()); editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); } finally { FinishMarkAction.finish(project, editor, startAction); } }
public static void moveCursor(Editor editor, int cursorOffset) { CaretModel caretModel = editor.getCaretModel(); caretModel.moveToOffset(cursorOffset); ScrollingModel scrollingModel = editor.getScrollingModel(); scrollingModel.scrollToCaret(ScrollType.MAKE_VISIBLE); editor.getContentComponent().requestFocus(); }
public void jumpToGrammarPosition(Project project, int start) { final ANTLRv4PluginController controller = ANTLRv4PluginController.getInstance(project); if ( controller==null ) return; final Editor grammarEditor = controller.getEditor(previewState.grammarFile); if ( grammarEditor==null ) return; CaretModel caretModel = grammarEditor.getCaretModel(); caretModel.moveToOffset(start); ScrollingModel scrollingModel = grammarEditor.getScrollingModel(); scrollingModel.scrollToCaret(ScrollType.MAKE_VISIBLE); grammarEditor.getContentComponent().requestFocus(); }
@Override public void applyFix(final @NotNull Project project, @NotNull ProblemDescriptor descriptor) { PsiElement element = descriptor.getPsiElement(); BnfRule rule = PsiTreeUtil.getParentOfType(element, BnfRule.class); if (rule == null) return; BnfRule addedRule = BnfIntroduceRuleHandler.addNextRule(project, rule, "private " + myName + " ::= "); FileEditor selectedEditor = FileEditorManager.getInstance(project).getSelectedEditor(rule.getContainingFile().getVirtualFile()); if (selectedEditor instanceof TextEditor) { final Editor editor = ((TextEditor)selectedEditor).getEditor(); editor.getCaretModel() .moveToOffset(addedRule.getTextRange().getEndOffset() - (BnfIntroduceRuleHandler.endsWithSemicolon(addedRule) ? 1 : 0)); editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); } } }
public void moveEditorCaret(PsiElement element) { if (element == null) return; if (shouldMoveCaret(element)) { Editor editor = getEditor(element); if (editor == null) return; int textOffset = element.getTextOffset(); if (textOffset < editor.getDocument().getTextLength()) { editor.getCaretModel().moveToOffset(textOffset); editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); } } _shouldMoveCaret = true; }
@Override protected void moveOffsetAfter(boolean success) { RangeMarker exprMarker = getExprMarker(); WriteAction.run(() -> { Document document = myEditor.getDocument(); // todo restore original expression if not success PsiDocumentManager.getInstance(myProject).commitDocument(document); if (exprMarker != null && exprMarker.isValid()) { myEditor.getCaretModel().moveToOffset(exprMarker.getStartOffset()); myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); exprMarker.dispose(); } }); }
scrollingModel.scrollToCaret(ScrollType.MAKE_VISIBLE);
CaretModel caretModel = grammarEditor.getCaretModel(); caretModel.moveToOffset(startToken.getStartIndex()); scrollingModel.scrollToCaret(ScrollType.MAKE_VISIBLE);
protected void insertCodeAfterElement(PsiElement anchor, String code, Editor editor) { ApplicationManager.getApplication().runWriteAction(() -> { FileType fileType = anchor.getContainingFile().getFileType(); final PsiDocumentManager manager = PsiDocumentManager.getInstance(anchor.getProject()); final Document document = manager.getDocument(anchor.getContainingFile()); if (code.length() > 0 && document != null) { manager.doPostponedOperationsAndUnblockDocument(document); PsiFile newFile = PerlElementFactory.createFile(anchor.getProject(), "\n" + code, fileType); PsiElement container = anchor.getParent(); int newOffset = anchor.getTextOffset() + anchor.getTextLength(); if (newFile.getFirstChild() != null && newFile.getLastChild() != null) { container .addRangeAfter(newFile.getFirstChild(), newFile.getLastChild(), anchor); } manager.commitDocument(document); editor.getCaretModel().moveToOffset(newOffset); editor.getScrollingModel().scrollToCaret(ScrollType.CENTER); } }); }