package org.xpect.text;
public class RegionToString {
private IRegion region;
private int vicinityChars = 16;
public RegionToString with(IRegion region) {
this.region = region;
return this;
}
public RegionToString withVicinityChars(int vicinityChars) {
this.vicinityChars = vicinityChars;
return this;
}
@Override
public String toString() {
CharSequence document = region.getDocument();
int offset = region.getOffset();
int end = offset + region.getLength();
if (offset >= 0 && end <= document.length()) {
CharSequence prefix = CharSequences.getPrefix(document, offset, vicinityChars);
CharSequence infix = document.subSequence(offset, end);
CharSequence postfix = CharSequences.getPostfix(document, end, vicinityChars);
String result = prefix + ">>>" + infix + "<<<" + postfix;
return result.replace("\n", "\\n");
} else {
return "Invalid Region! offset:" + offset + " end: " + end + " Document:" + document;
}
}
}