protected boolean rangeRemoved(TextEdit edit) { unchangedUntil(edit.getOffset()); return false; }
public UndoCollector(TextEdit root) { fOffset= root.getOffset(); fLength= root.getLength(); }
@Override void aboutToBeAdded(TextEdit parent) { defineRegion(parent.getOffset()); }
@Override void aboutToBeAdded(TextEdit parent) { defineRegion(parent.getOffset()); }
protected boolean rangeRemoved(TextEdit edit) { unchangedUntil(edit.getOffset()); return false; }
@Override public final int getLength() { if (fDefined) return super.getLength(); List<TextEdit> children= internalGetChildren(); if (children == null || children.size() == 0) return 0; // the children are already sorted TextEdit first= children.get(0); TextEdit last= children.get(children.size() - 1); return last.getOffset() - first.getOffset() + last.getLength(); }
@Override public final int getLength() { if (fDefined) return super.getLength(); List<TextEdit> children= internalGetChildren(); if (children == null || children.size() == 0) return 0; // the children are already sorted TextEdit first= children.get(0); TextEdit last= children.get(children.size() - 1); return last.getOffset() - first.getOffset() + last.getLength(); }
protected static boolean covers(TextEdit thisEdit, TextEdit otherEdit) { if (thisEdit.getLength() == 0) // an insertion point can't cover anything return false; int thisOffset = thisEdit.getOffset(); int thisEnd = thisEdit.getExclusiveEnd(); if (otherEdit.getLength() == 0) { int otherOffset = otherEdit.getOffset(); return thisOffset < otherOffset && otherOffset < thisEnd; } int otherOffset = otherEdit.getOffset(); int otherEnd = otherEdit.getExclusiveEnd(); return thisOffset <= otherOffset && otherEnd <= thisEnd; }
private static void restorePositions(Map<TextEdit, TextEdit> editMap) { for (Iterator<TextEdit> iter= editMap.keySet().iterator(); iter.hasNext();) { TextEdit marker= iter.next(); TextEdit edit= editMap.get(marker); if (marker.isDeleted()) { edit.markAsDeleted(); } else { edit.adjustOffset(marker.getOffset() - edit.getOffset()); edit.adjustLength(marker.getLength() - edit.getLength()); } } } }
/** * Move all offsets in the tree by the given delta. This node must be a * root node. The resulting offsets must be greater or equal to zero. * * @param delta the delta * @since 3.1 */ public final void moveTree(int delta) { Assert.isTrue(fParent == null); Assert.isTrue(getOffset() + delta >= 0); internalMoveTree(delta); }
/** * Move all offsets in the tree by the given delta. This node must be a * root node. The resulting offsets must be greater or equal to zero. * * @param delta the delta * @since 3.1 */ public final void moveTree(int delta) { Assert.isTrue(fParent == null); Assert.isTrue(getOffset() + delta >= 0); internalMoveTree(delta); }
private static org.eclipse.lsp4j.TextEdit convertEdit(TextEdit edit, IDocument document) { org.eclipse.lsp4j.TextEdit textEdit = new org.eclipse.lsp4j.TextEdit(); if (edit instanceof ReplaceEdit) { ReplaceEdit replaceEdit = (ReplaceEdit) edit; textEdit.setNewText(replaceEdit.getText()); int offset = edit.getOffset(); textEdit.setRange(new Range(createPosition(document, offset), createPosition(document, offset + edit.getLength()))); } return textEdit; }