if(gapOffset > current.getOffset()) {
fDocument.removePosition(getManagingPositionCategories()[0], current);
continue;
}
gap = new Position(gapOffset, current.getOffset() - gapOffset);
if (gap.getLength() > 0 && gap.overlapsWith(offset, length)) {
start = Math.max(offset, gapOffset);
end = Math.min(endOffset, gap.getOffset() + gap.getLength());
list.add(new TypedRegion(start, end - start, IDocument.DEFAULT_CONTENT_TYPE));
}
if (current.overlapsWith(offset, length)) {