@NotNull private LineRange getLineRange(@NotNull Editor editor, @NotNull Caret caret, @NotNull DataContext context, @NotNull ExCommand cmd) { final LineRange range = cmd.getLineRange(editor, caret, context); final LineRange normalizedRange; // Something like "30,20sort" gets converted to "20,30sort" if (range.getEndLine() < range.getStartLine()) { normalizedRange = new LineRange(range.getEndLine(), range.getStartLine()); } else { normalizedRange = range; } // If we don't have a range, we either have "sort", a selection, or a block if (normalizedRange.getEndLine() - normalizedRange.getStartLine() == 0) { // If we have a selection. final SelectionModel selectionModel = editor.getSelectionModel(); if (selectionModel.hasSelection()) { final int start = selectionModel.getSelectionStart(); final int end = selectionModel.getSelectionEnd(); final int startLine = editor.offsetToLogicalPosition(start).line; final int endLine = editor.offsetToLogicalPosition(end).line; return new LineRange(startLine, endLine); } // If we have a generic selection, i.e. "sort" entire document else { return new LineRange(0, editor.getDocument().getLineCount() - 1); } } return normalizedRange; }
public void mouseDragged(@NotNull EditorMouseEvent event) { if (!VimPlugin.isEnabled()) return; if (event.getArea() == EditorMouseEventArea.EDITING_AREA || event.getArea() != EditorMouseEventArea.ANNOTATIONS_AREA) { if (dragEditor == null) { if (event.getArea() == EditorMouseEventArea.EDITING_AREA) { mode = CommandState.SubMode.VISUAL_CHARACTER; } else if (event.getArea() != EditorMouseEventArea.ANNOTATIONS_AREA) { mode = CommandState.SubMode.VISUAL_LINE; } startOff = event.getEditor().getSelectionModel().getSelectionStart(); endOff = event.getEditor().getSelectionModel().getSelectionEnd(); } dragEditor = event.getEditor(); } }
private void processMouseReleased(@NotNull Editor editor, @NotNull CommandState.SubMode mode, int startOff, int endOff) { if (ExEntryPanel.getInstance().isActive()) { ExEntryPanel.getInstance().deactivate(false); } ExOutputModel.getInstance(editor).clear(); if (CommandState.getInstance(editor).getMode() == CommandState.Mode.VISUAL) { CommandState.getInstance(editor).popState(); } int start = editor.getSelectionModel().getSelectionStart(); int end = editor.getSelectionModel().getSelectionEnd(); if (start == end) return; if (mode == CommandState.SubMode.VISUAL_LINE) { end--; endOff--; } if (end == startOff || end == endOff) { int t = start; start = end; end = t; if (mode == CommandState.SubMode.VISUAL_CHARACTER) { start--; } } MotionGroup.moveCaret(editor, editor.getCaretModel().getPrimaryCaret(), start); toggleVisual(editor, 1, 0, mode); MotionGroup.moveCaret(editor, editor.getCaretModel().getPrimaryCaret(), end); KeyHandler.getInstance().reset(editor); }
int end = editor.getSelectionModel().getSelectionEnd(); editor.getSelectionModel().setSelection(start, Math.max(start, end - 1));
boolean hasSelection = selectionModel.hasSelection(); GoExpression expression = hasSelection ? findExpressionInSelection(operation.getFile(), selectionModel.getSelectionStart(), selectionModel.getSelectionEnd()) : findExpressionAtOffset(operation); if (expression instanceof GoParenthesesExpr) expression = ((GoParenthesesExpr)expression).getExpression();
if (mode == CommandState.SubMode.NONE) { int start = editor.getSelectionModel().getSelectionStart(); int end = editor.getSelectionModel().getSelectionEnd(); if (start != end) { int line = editor.offsetToLogicalPosition(start).line;
int end = editor.getSelectionModel().getSelectionEnd(); editor.getSelectionModel().setSelection(start, Math.max(start, end - 1));
@NotNull protected PsiElement findElementAtCaretOrInSelection() { SelectionModel selectionModel = myFixture.getEditor().getSelectionModel(); if (selectionModel.hasSelection()) { PsiElement left = myFixture.getFile().findElementAt(selectionModel.getSelectionStart()); PsiElement right = myFixture.getFile().findElementAt(selectionModel.getSelectionEnd() - 1); assertNotNull(left); assertNotNull(right); return ObjectUtils.assertNotNull(PsiTreeUtil.findCommonParent(left, right)); } else { return ObjectUtils.assertNotNull(myFixture.getFile().findElementAt(myFixture.getEditor().getCaretModel().getOffset())); } }
if (mode == CommandState.SubMode.VISUAL_BLOCK) { EditorData.setVisualBlockStart(editor, editor.getSelectionModel().getSelectionStart()); updateBlockSelection(editor, editor.getSelectionModel().getSelectionEnd()); MotionGroup .moveCaret(editor, editor.getCaretModel().getPrimaryCaret(), EditorData.getVisualBlockEnd(editor), true);
endOffset = editor.getSelectionModel().getSelectionEnd(); } else {
int selStop = selectionModel.getSelectionEnd()-1; // I'm inclusive and they are exclusive for end offset