private Hash internalGetHash(int line) throws BadLocationException { Hash hash= fHashes.get(line); if (hash == null) { if (fDocument == null) throw new AssertionError("hash cannot be null after loadAndForget"); //$NON-NLS-1$ IRegion lineRegion= fDocument.getLineInformation(line); String lineContents= fDocument.get(lineRegion.getOffset(), lineRegion.getLength()); hash= fHashFunction.computeHash(lineContents); fHashes.set(line, hash); } return hash; }
private Hash internalGetHash(int line) throws BadLocationException { Hash hash= fHashes.get(line); if (hash == null) { if (fDocument == null) throw new AssertionError("hash cannot be null after loadAndForget"); //$NON-NLS-1$ IRegion lineRegion= fDocument.getLineInformation(line); String lineContents= fDocument.get(lineRegion.getOffset(), lineRegion.getLength()); hash= fHashFunction.computeHash(lineContents); fHashes.set(line, hash); } return hash; }
private String getText(IDocument document, int offset, int length, int numberOfLines) throws BadLocationException { int endOffset= offset + length; try { int endLine= document.getLineOfOffset(offset) + Math.max(0, numberOfLines -1); IRegion lineInfo= document.getLineInformation(endLine); endOffset= Math.min(endOffset, lineInfo.getOffset() + lineInfo.getLength()); } catch (BadLocationException x) { } return document.get(offset, endOffset - offset); }
private int computeVisualColumn(final int line, final int column) throws BadLocationException { IRegion info= fDocument.getLineInformation(line); int lineLength= info.getLength(); int to= Math.min(lineLength, column); String content= fDocument.get(info.getOffset(), lineLength); int visual= 0; for (int offset= 0; offset < to; offset++) visual+= visualSizeIncrement(content.charAt(offset), visual); if (column > lineLength) visual+= column - lineLength; // virtual spaces return visual; }
private int computeCharacterColumn(int line, int visualColumn) throws BadLocationException { IRegion info= fDocument.getLineInformation(line); int lineLength= info.getLength(); String content= fDocument.get(info.getOffset(), lineLength); int visual= 0; for (int offset= 0; offset < lineLength; offset++) { if (visual >= visualColumn) return offset; visual+= visualSizeIncrement(content.charAt(offset), visual); } return lineLength + Math.max(0, visualColumn - visual); }
private int computeVisualColumn(final int line, final int column) throws BadLocationException { IRegion info= fDocument.getLineInformation(line); int lineLength= info.getLength(); int to= Math.min(lineLength, column); String content= fDocument.get(info.getOffset(), lineLength); int visual= 0; for (int offset= 0; offset < to; offset++) visual+= visualSizeIncrement(content.charAt(offset), visual); if (column > lineLength) visual+= column - lineLength; // virtual spaces return visual; }
private int computeCharacterColumn(int line, int visualColumn) throws BadLocationException { IRegion info= fDocument.getLineInformation(line); int lineLength= info.getLength(); String content= fDocument.get(info.getOffset(), lineLength); int visual= 0; for (int offset= 0; offset < lineLength; offset++) { if (visual >= visualColumn) return offset; visual+= visualSizeIncrement(content.charAt(offset), visual); } return lineLength + Math.max(0, visualColumn - visual); }
private void convertLineDelimiters(IDocument document) throws BadLocationException { int lines= document.getNumberOfLines(); for (int line= 0; line < lines; line++) { IRegion region= document.getLineInformation(line); String lineDelimiter= document.getLineDelimiter(line); if (lineDelimiter != null) document.replace(region.getOffset() + region.getLength(), lineDelimiter.length(), fLineDelimiter); } }
public int getLineEnd(int line) throws CoreException { if (fDocument != null) { try { IRegion region= fDocument.getLineInformation(line); return region.getOffset() + region.getLength(); } catch (BadLocationException e) { String message= "Illegal line: " + line; //$NON-NLS-1$ throw new CoreException(createError(DOCUMENT_ERROR, message, e)); } } return getScanner().getLineEnd(line); }
private static void convertLineDelimiters(IDocument document, String defaultLineDelimiter) throws BadLocationException { int lines = document.getNumberOfLines(); for (int line = 0; line < lines; line++) { IRegion region = document.getLineInformation(line); String lineDelimiter = document.getLineDelimiter(line); if (lineDelimiter != null) document.replace(region.getOffset() + region.getLength(), lineDelimiter.length(), defaultLineDelimiter); } }
private void convertLineDelimiters(IDocument document) throws BadLocationException { int lines= document.getNumberOfLines(); for (int line= 0; line < lines; line++) { IRegion region= document.getLineInformation(line); String lineDelimiter= document.getLineDelimiter(line); if (lineDelimiter != null) document.replace(region.getOffset() + region.getLength(), lineDelimiter.length(), fLineDelimiter); } }
public int getLineEnd(int line) throws CoreException { if (fDocument != null) { try { IRegion region= fDocument.getLineInformation(line); return region.getOffset() + region.getLength(); } catch (BadLocationException e) { String message= "Illegal line: " + line; //$NON-NLS-1$ throw new CoreException(createError(DOCUMENT_ERROR, message, e)); } } return getScanner().getLineEnd(line); }
private int lineEndOffset(int end, IDocument doc) throws BadLocationException { int eoff = doc.getLineOffset(end) + doc.getLineInformation(end).getLength(); // Include line end char c = doc.getChar(eoff); if (c=='\r' && doc.getLength() > eoff+1 && doc.getChar(eoff+1) =='\n') eoff += 2; else eoff += 1; return eoff; }
private void revealLine(ITextEditor editor, int lineNumber) throws BadLocationException { IDocument document= editor.getDocumentProvider().getDocument(editor.getEditorInput()); IRegion region= document.getLineInformation(lineNumber - 1); editor.selectAndReveal(region.getOffset(), 0); }
private void revealLine(ITextEditor editor, int lineNumber) throws BadLocationException { IDocument document= editor.getDocumentProvider().getDocument(editor.getEditorInput()); IRegion region= document.getLineInformation(lineNumber - 1); editor.selectAndReveal(region.getOffset(), 0); }
private static void setTagPositions(IDocument document, NLSLine line) throws BadLocationException { IRegion info= document.getLineInformation(line.getLineNumber()); int defaultValue= info.getOffset() + info.getLength(); NLSElement[] elements= line.getElements(); for (int i= 0; i < elements.length; i++) { NLSElement element= elements[i]; if (!element.hasTag()) { element.setTagPosition(computeInsertOffset(elements, i, defaultValue), 0); } } }
private static void setTagPositions(IDocument document, NLSLine line) throws BadLocationException { IRegion info= document.getLineInformation(line.getLineNumber()); int defaultValue= info.getOffset() + info.getLength(); NLSElement[] elements= line.getElements(); for (int i= 0; i < elements.length; i++) { NLSElement element= elements[i]; if (!element.hasTag()) { element.setTagPosition(computeInsertOffset(elements, i, defaultValue), 0); } } }
private static void setTagPositions(IDocument document, NLSLine line) throws BadLocationException { IRegion info= document.getLineInformation(line.getLineNumber()); int defaultValue= info.getOffset() + info.getLength(); NLSElement[] elements= line.getElements(); for (int i= 0; i < elements.length; i++) { NLSElement element= elements[i]; if (!element.hasTag()) { element.setTagPosition(computeInsertOffset(elements, i, defaultValue), 0); } } }
private static void setTagPositions(IDocument document, NLSLine line) throws BadLocationException { IRegion info= document.getLineInformation(line.getLineNumber()); int defaultValue= info.getOffset() + info.getLength(); NLSElement[] elements= line.getElements(); for (int i= 0; i < elements.length; i++) { NLSElement element= elements[i]; if (!element.hasTag()) { element.setTagPosition(computeInsertOffset(elements, i, defaultValue), 0); } } }
@Override public IRegion toOriginLines(int imageLine) throws BadLocationException { IRegion imageRegion= fSlaveDocument.getLineInformation(imageLine); IRegion originRegion= toOriginRegion(imageRegion); int originStartLine= fMasterDocument.getLineOfOffset(originRegion.getOffset()); if (originRegion.getLength() == 0) return new Region(originStartLine, 1); int originEndLine= fMasterDocument.getLineOfOffset(inclusiveEnd(originRegion)); return new Region(originStartLine, (originEndLine + 1) - originStartLine); }