private static String getLine(IDocument document, int line) throws BadLocationException { IRegion region = document.getLineInformation(line); return document.get(region.getOffset(), region.getLength()); }
/** * @param p * @param region * @return true if p overlaps with region, or if region is null */ private boolean intersectsRegion(Position p, IRegion region) { if (region==null) return true; if (p.offset > region.getOffset()+region.getLength()) return false; if (p.offset+p.length < region.getOffset()) return false; return true; }
private static IRegion getAttributeRegion(IDocument document, String value, int offset) { try { FindReplaceDocumentAdapter findReplaceAdapter = new FindReplaceDocumentAdapter(document); IRegion nameRegion = findReplaceAdapter.find(offset, value, true, true, false, false); if (nameRegion != null) { if (document.get(nameRegion.getOffset() + nameRegion.getLength() - value.length(), value.length()).equals(value)) return new Region(nameRegion.getOffset() + nameRegion.getLength() - value.length(), value.length()); } } catch (BadLocationException e) { } return null; }
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); }
/** * {@inheritDoc} */ public String getCurrentContent(IRegion region, boolean expandRegionToFullLine, int surroundingLines, IProgressMonitor pm) throws CoreException { Assert.isNotNull(region); Assert.isTrue(surroundingLines >= 0); IDocument document= getCurrentDocument(pm); Assert.isTrue(document.getLength() >= region.getOffset() + region.getLength()); return getContent(document, region, expandRegionToFullLine, surroundingLines); }
public String[] getArguments() { String prefix= ""; //$NON-NLS-1$ String postfix= ""; //$NON-NLS-1$ try { IRegion line= fDocument.getLineInformationOfOffset(fSourceStart); prefix= fDocument.get(line.getOffset(), fSourceStart - line.getOffset()); postfix= fDocument.get(fSourceEnd + 1, line.getOffset() + line.getLength() - fSourceEnd); } catch (BadLocationException exception) { // Do nothing } return new String[] { fWord, prefix, postfix, fSentence ? Boolean.toString(true) : Boolean.toString(false), fMatch ? Boolean.toString(true) : Boolean.toString(false) }; }
@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); }
@Override public void replace(int offset, int length, String text) { fReusableRegion.update(offset, length); try { IRegion masterRegion= fMapping.toOriginRegion(fReusableRegion); fMasterDocument.replace(masterRegion.getOffset(), masterRegion.getLength(), text); } catch (BadLocationException e) { internalError(); } }
private String formatElement(IDocument document, TypedPosition partition) throws BadLocationException { String partitionText = document.get(partition.getOffset(), partition.getLength()); IRegion line = document.getLineInformationOfOffset(partition.getOffset()); int indentLength = partition.getOffset() - line.getOffset(); String lineDelimiter = document.getLineDelimiter(document.getLineOfOffset(line.getOffset())); if (lineDelimiter == null) { lineDelimiter = TextUtilities.getDefaultLineDelimiter(document); } return XmlTagFormatter.format(partitionText, prefs, document.get(line.getOffset(), indentLength), lineDelimiter); }
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 IRegion findPrefixRange(IDocument document, IRegion line) throws BadLocationException { int lineOffset = line.getOffset(); int lineEnd = lineOffset + line.getLength(); int indentEnd = findEndOfWhiteSpace(document, lineOffset, lineEnd); if (indentEnd < lineEnd && document.getChar(indentEnd) == '*') { indentEnd++; while (indentEnd < lineEnd && document.getChar(indentEnd) == ' ') { indentEnd++; } } return new Region(lineOffset, indentEnd - lineOffset); }
public void setInput(RefactoringStatusContext context) { FileStatusContext fc= (FileStatusContext)context; IFile file= fc.getFile(); updateTitle(file); IDocument document= getDocument(file); IRegion region= fc.getTextRegion(); if (region != null && document.getLength() >= region.getOffset() + region.getLength()) setInput(document, region); else { setInput(document, new Region(0, 0)); } }
private TextEdit editRootElement(String elementName, FindReplaceDocumentAdapter adapter, IDocument doc, int offset) throws BadLocationException { IRegion region = adapter.find(0, "<" + elementName + "[^>]*", true, true, false, true); //$NON-NLS-1$ //$NON-NLS-2$ if (region != null) { String replacementString = "<" + elementName; //$NON-NLS-1$ if (doc.getChar(region.getOffset() + region.getLength()) == '/') replacementString += "/"; //$NON-NLS-1$ return new ReplaceEdit(region.getOffset(), region.getLength(), replacementString); } return null; }
@Override public void documentAboutToBeChanged(DocumentEvent event) { if (fActiveRegion != null) { fRememberedPosition= new Position(fActiveRegion.getOffset(), fActiveRegion.getLength()); try { event.getDocument().addPosition(fRememberedPosition); } catch (BadLocationException x) { fRememberedPosition= null; } } }
protected String getTextContent(Element element) { ElementData data = (ElementData) fOffsetTable.get(element); try { IRegion nameRegion = fFindReplaceAdapter.find(data.offset, "</" + element.getNodeName() + ">", true, true, false, false); //$NON-NLS-1$ //$NON-NLS-2$ int offset = data.offset + element.getNodeName().length() + 2; if (nameRegion != null) return fTextDocument.get(offset, nameRegion.getOffset() - offset).trim(); } catch (BadLocationException e) { } return null; }
private static Position getPosition(ASTNode node, IDocument document) { int offset = node.getStartPosition(); try { IRegion region = document.getLineInformationOfOffset(offset); return new Position(region.getOffset() + region.getLength(), 1); } catch (BadLocationException e) { return new Position(offset, 1); } }