/** * Counts the number of line breaks. Assumes {@code '\r'}, {@code '\n'} or {@code '\r\n'} to be valid line breaks. * * This follows the semantics of the {@link LineNumberReader}. * * @since 2.3 */ public static int countLineBreaks(CharSequence text) { return countLineBreaks(text, 0, text.length()); }
public AbstractTraceRegion getTraceRegion() { ILocationData locationData = new LocationData(originOffset, originLength, originLineNumber, originEndLineNumber, originURI); AbstractTraceRegion result = new TraceRegion(0, delegate.length(), 0, Strings.countLineBreaks(delegate), locationData, null); return result; }
protected void leftCompressTrace(String completeContent) { List<AbstractTraceRegion> allNested = getWritableNestedRegions(); int i = 0; while (i < allNested.size()) { AppendableBasedTraceRegion nested = (AppendableBasedTraceRegion) allNested.get(i); int offset = nested.getMyOffset(); int diff = 0; while(completeContent.charAt(offset + diff) <= ' ' && diff < nested.length) { diff++; } if (diff == nested.length) { allNested.remove(i); } else { nested.lineNumber += Strings.countLineBreaks(completeContent, offset, offset + diff); nested.offset += diff; nested.length -= diff; nested.leftCompressTrace(completeContent); i++; } } }
protected void rightCompressTrace(String completeContent) { List<AbstractTraceRegion> allNested = getWritableNestedRegions(); int i = 0; while (i < allNested.size()) { AppendableBasedTraceRegion nested = (AppendableBasedTraceRegion) allNested.get(i); int endOffset = nested.getMyOffset() + nested.getMyLength() - 1; int diff = 0; while(completeContent.charAt(endOffset - diff) <= ' ' && diff < nested.length) { diff++; } if (diff != 0) { nested.endLineNumber -= Strings.countLineBreaks(completeContent, endOffset - diff + 1, endOffset + 1); nested.length -= diff; nested.rightCompressTrace(completeContent); } i++; } }
String s = child.toString(); length += s.length(); line += Strings.countLineBreaks(s);