private boolean isCaretLine(int line, @NotNull Editor editor) { return line == editor.getCaretModel().getLogicalPosition().line; }
/** * Gets the number of characters on the current line. This will be different than the number of visual * characters if there are "real" tabs in the line. * * @param editor The editor * @return The number of characters in the current line */ public static int getLineLength(@NotNull final Editor editor) { return getLineLength(editor, editor.getCaretModel().getLogicalPosition().line); }
private int getRelativeLineNumber(int line, @NotNull Editor editor) { final int visualLine = EditorHelper.logicalLineToVisualLine(editor, line); final int currentLine = editor.getCaretModel().getLogicalPosition().line; final int currentVisualLine = EditorHelper.logicalLineToVisualLine(editor, currentLine); return Math.abs(currentVisualLine - visualLine); }
/** * Gets the line number specified by this range without regard to any offset. * * @param editor The editor to get the line for * @param context The data context * @param lastZero True if last line was set to start of file * @return The zero based line number, -1 for start of file */ protected int getRangeLine(@NotNull Editor editor, DataContext context, boolean lastZero) { if (line == CURRENT_LINE) { line = editor.getCaretModel().getLogicalPosition().line; } else if (line == LAST_LINE) { line = EditorHelper.getLineCount(editor) - 1; } return line; }
int lline = editor.getCaretModel().getLogicalPosition().line; int total = EditorHelper.getLineCount(editor); int pct = (int)((float)lline / (float)total * 100f + 0.5); msg.append(" --").append(pct).append("%-- "); LogicalPosition lp = editor.getCaretModel().getLogicalPosition(); int col = editor.getCaretModel().getOffset() - doc.getLineStartOffset(lline);
int line = editor.getCaretModel().getLogicalPosition().line; int pos = -1; for (int i = 0; i < patterns.size(); i++) {
LogicalPosition lp = editor.getCaretModel().getLogicalPosition(); int col = editor.getCaretModel().getOffset() - doc.getLineStartOffset(lp.line); int endoff = doc.getLineEndOffset(lp.line); int lline = editor.getCaretModel().getLogicalPosition().line; int total = EditorHelper.getLineCount(editor);
startLine = defaultLine == -1 ? editor.getCaretModel().getLogicalPosition().line : defaultLine; endLine = startLine; boolean lastZero = false;
protected boolean execute(@NotNull Editor editor, @NotNull DataContext context, @NotNull Command cmd) { final Argument argument = cmd.getArgument(); if (argument == null) { return false; } TextRange range = MotionGroup .getMotionRange(editor, editor.getCaretModel().getPrimaryCaret(), context, cmd.getCount(), cmd.getRawCount(), argument, false); if (range == null) { return false; } LogicalPosition current = editor.getCaretModel().getLogicalPosition(); LogicalPosition start = editor.offsetToLogicalPosition(range.getStartOffset()); LogicalPosition end = editor.offsetToLogicalPosition(range.getEndOffset()); if (current.line != start.line) { MotionGroup.moveCaret(editor, editor.getCaretModel().getPrimaryCaret(), range.getStartOffset()); } int count; if (start.line < end.line) { count = end.line - start.line + 1; } else { count = 1; } Command command = new Command(count, null, null, Command.Type.UNDEFINED, 0); VimPlugin.getProcess().startFilterCommand(editor, context, command); return true; } }
public boolean scrollScreen(@NotNull final Editor editor, int rawCount, boolean down) { final CaretModel caretModel = editor.getCaretModel(); final int currentLogicalLine = caretModel.getLogicalPosition().line;
@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; }
offset = moveCaretVertical(editor, editor.getCaretModel().getPrimaryCaret(), EditorHelper.visualLineToLogicalLine(editor, visualLine) - editor.getCaretModel().getLogicalPosition().line);
LogicalPosition curpos = reg_buf.getCaretModel().getLogicalPosition(); if (reglnum + reg_firstlnum != curpos.line || reginput.pointer() - regline.pointer() != curpos.column) {
@Override public Result execute() { final Problems problems = Problems.collectFrom(project, file); for (Problem p : problems) { if (p.containsOffset(offset)) { return SimpleResult.success(p.getFixes()); } } // no exact match; try line-wise final Editor editor = createEditor(file, offset); final int line = editor.getCaretModel().getLogicalPosition().line + 1; // NB 0-based to 1-based line for (Problem p : problems) { if (p.isOnLine(line)) { return SimpleResult.success(p.getFixes()); } } return SimpleResult.success(); } }
LogicalPosition currentPosition = caretModel.getLogicalPosition(); final int enterLine = currentPosition.line - 1; final int currentOffset = caretModel.getOffset();
PsiFile currentFile = event.getData(LangDataKeys.PSI_FILE); CaretModel caretModel = editor.getCaretModel(); LogicalPosition oldLogicPos = caretModel.getLogicalPosition(); String text = currentFile.getText(); List<String> lines = Splitter.on("\n").splitToList(text);