Log.log.finest("transfer marker: " + marker + " start=" + start + " end=" + end);
if (end < 0) { end = 0; }
assert start <= end;
int length = end - start + 1;
Range or = new Range(start, length);
Range ir = tm.getInputRange(or);
int irStart = ir.getStart();
int irEnd = ir.getEnd();
if (irEnd < irStart) {
irEnd = irStart; // at least length 1
}
IMarker m = template.createMarker(markerId);
m.setAttribute(IMarker.MESSAGE, marker.getAttribute(IMarker.MESSAGE, "[no message]"));
m.setAttribute(IMarker.SEVERITY, marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING));
m.setAttribute(IMarker.CHAR_END, irEnd + 1);
m.setAttribute(IMarker.CHAR_START, irStart);
Log.log.finest("new range: " + ir.getStart() + " - " + ir.getEnd());
}
}