UndoableEdit removeUpdate(int removeOffset, int removeLength) {
Edit edit = null;
int removeEndOffset = removeOffset + removeLength;
int line0 = getElementIndex(removeOffset);
int line1 = getElementIndex(removeEndOffset);
if (line0 != line1) {
line1++;
Element[] removeElements = new Element[line1 - line0];
copyElements(line0, line1, removeElements, 0);
Element[] addElements = new Element[] {
new LineElement(this,
((LineElement)removeElements[0]).getStartPosition(),
((LineElement)removeElements[removeElements.length - 1]).getEndPosition()
)
};
replace(line0, removeElements.length, addElements);
edit = new Edit(line0, removeElements, addElements);
}
checkConsistency();
return edit;
}