private int computeCurrentLineStartOffset() { final int lineNumber = computeCurrentLineNumber(); return getControl().getOffsetAtLine(lineNumber); }
private @NonNull LineRegion getLineRegion(TextSelection selection) { int firstLine = getControl().getLineAtOffset(selection.offset); int lastLine = getControl().getLineAtOffset(selection.offset + selection.length); int lastLineBegin = getControl().getOffsetAtLine(lastLine); // dont count the last line if the caret is at index 0 if (lastLineBegin == selection.offset + selection.length) { lastLine -= 1; } // limit lastLine = Math.min(getControl().getContent().getLineCount() - 1, lastLine); lastLine = Math.max(firstLine, lastLine); return new LineRegion(firstLine, lastLine); }
private int calculatePageUpOffset() { final int linesPerPage = ((StyledTextSkin)getControl().getSkin()).getVisibleLineCount(); final int globalOffset = getControl().getCaretOffset(); final int lineIndex = getControl().getContent().getLineAtOffset(globalOffset); final int lineLocalOffset = globalOffset - getControl().getContent().getOffsetAtLine(lineIndex); final int newLineIndex = Math.max(0, lineIndex - linesPerPage); final int newLineLocalOffset = Math.min(getControl().getContent().getLine(newLineIndex).length(), lineLocalOffset); return getControl().getOffsetAtLine(newLineIndex) + newLineLocalOffset; }
private int calculatePageDownOffset() { final int linesPerPage = ((StyledTextSkin)getControl().getSkin()).getVisibleLineCount(); final int globalOffset = getControl().getCaretOffset(); final int lineIndex = getControl().getContent().getLineAtOffset(globalOffset); final int lineLocalOffset = globalOffset - getControl().getContent().getOffsetAtLine(lineIndex); final int newLineIndex = Math.min(getControl().getContent().getLineCount()-1, lineIndex + linesPerPage); final int newLineLocalOffset = Math.min(getControl().getContent().getLine(newLineIndex).length(), lineLocalOffset); return getControl().getOffsetAtLine(newLineIndex) + newLineLocalOffset; }
int lastLine = getControl().getLineAtOffset(selectionOffset + selectionLength); if (getControl().getOffsetAtLine(lastLine) < selectionOffset + selectionLength) { int lineStart = getControl().getOffsetAtLine(lineNumber); if (dataBuffer.charAt(lineStart) != '\t') { String begin = dataBuffer.substring(lineStart,Math.min(lineStart + getControl().getTabAdvance(), dataBuffer.length())); int lineStart = getControl().getOffsetAtLine(lineNumber); dataBuffer.replace(lineStart, lineStart + removals[lineNumber-firstLine], ""); //$NON-NLS-1$ removed += removals[lineNumber-firstLine];
int lastLine = getControl().getLineAtOffset(selectionOffset + selectionLength); if (getControl().getOffsetAtLine(lastLine) < selectionOffset + selectionLength) { int lineStart = getControl().getOffsetAtLine(lineNumber) + added; dataBuffer.replace(lineStart, lineStart + 0, insertString); added += insertString.length();