/** * Adjusts the edits offset according to the given * delta. This method doesn't update any children. * * @param delta the delta of the text replace operation */ void adjustOffset(int delta) { if (isDeleted()) return; fOffset+= delta; Assert.isTrue(fOffset >= 0); }
/** * Adjusts the edits offset according to the given * delta. This method doesn't update any children. * * @param delta the delta of the text replace operation */ void adjustOffset(int delta) { if (isDeleted()) return; fOffset+= delta; Assert.isTrue(fOffset >= 0); }
/** * Adjusts the edits length according to the given * delta. This method doesn't update any children. * * @param delta the delta of the text replace operation */ void adjustLength(int delta) { if (isDeleted()) return; fLength+= delta; Assert.isTrue(fLength >= 0); }
/** * Adjusts the edits length according to the given * delta. This method doesn't update any children. * * @param delta the delta of the text replace operation */ void adjustLength(int delta) { if (isDeleted()) return; fLength+= delta; Assert.isTrue(fLength >= 0); }
if (isDeleted()) { buffer.append("[deleted]"); //$NON-NLS-1$ } else {
if (isDeleted()) { buffer.append("[deleted]"); //$NON-NLS-1$ } else {
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()); } } } }
private static void restorePositions(Map<TextEdit, TextEdit> editMap) { for (Entry<TextEdit, TextEdit> entry: editMap.entrySet()) { TextEdit marker = entry.getKey(); TextEdit edit= entry.getValue(); if (marker.isDeleted()) { edit.markAsDeleted(); } else { edit.adjustOffset(marker.getOffset() - edit.getOffset()); edit.adjustLength(marker.getLength() - edit.getLength()); } } } }
/** * Returns the text range spawned by the given array of text edits. * The method requires that the given array contains at least one * edit. If all edits passed are deleted the method returns <code> * null</code>. * * @param edits an array of edits * @return the text range spawned by the given array of edits or * <code>null</code> if all edits are marked as deleted */ public static IRegion getCoverage(TextEdit[] edits) { Assert.isTrue(edits != null && edits.length > 0); int offset= Integer.MAX_VALUE; int end= Integer.MIN_VALUE; int deleted= 0; for (int i= 0; i < edits.length; i++) { TextEdit edit= edits[i]; if (edit.isDeleted()) { deleted++; } else { offset= Math.min(offset, edit.getOffset()); end= Math.max(end, edit.getExclusiveEnd()); } } if (edits.length == deleted) return null; return new Region(offset, end - offset); }
/** * Returns the text range spawned by the given array of text edits. * The method requires that the given array contains at least one * edit. If all edits passed are deleted the method returns <code> * null</code>. * * @param edits an array of edits * @return the text range spawned by the given array of edits or * <code>null</code> if all edits are marked as deleted */ public static IRegion getCoverage(TextEdit[] edits) { Assert.isTrue(edits != null && edits.length > 0); int offset= Integer.MAX_VALUE; int end= Integer.MIN_VALUE; int deleted= 0; for (TextEdit edit : edits) { if (edit.isDeleted()) { deleted++; } else { offset= Math.min(offset, edit.getOffset()); end= Math.max(end, edit.getExclusiveEnd()); } } if (edits.length == deleted) return null; return new Region(offset, end - offset); }
void internalAdd(TextEdit child) throws MalformedTreeException { child.aboutToBeAdded(this); if (child.isDeleted()) throw new MalformedTreeException(this, child, TextEditMessages.getString("TextEdit.deleted_edit")); //$NON-NLS-1$ if (!covers(child)) throw new MalformedTreeException(this, child, TextEditMessages.getString("TextEdit.range_outside")); //$NON-NLS-1$ if (fChildren == null) { fChildren= new ArrayList<>(2); } int index= computeInsertionIndex(child); fChildren.add(index, child); child.internalSetParent(this); }
private static void createEdit(TextEdit source, TextEdit target, Map<TextEdit, TextEdit> editMap) { TextEdit[] children= source.getChildren(); for (TextEdit child : children) { // a deleted child remains deleted even if the temporary buffer // gets modified. if (child.isDeleted()) continue; RangeMarker marker= new RangeMarker(child.getOffset(), child.getLength()); target.addChild(marker); editMap.put(marker, child); createEdit(child, marker, editMap); } }
void internalAdd(TextEdit child) throws MalformedTreeException { child.aboutToBeAdded(this); if (child.isDeleted()) throw new MalformedTreeException(this, child, TextEditMessages.getString("TextEdit.deleted_edit")); //$NON-NLS-1$ if (!covers(child)) throw new MalformedTreeException(this, child, TextEditMessages.getString("TextEdit.range_outside")); //$NON-NLS-1$ if (fChildren == null) { fChildren= new ArrayList<>(2); } int index= computeInsertionIndex(child); fChildren.add(index, child); child.internalSetParent(this); }
private static void createEdit(TextEdit source, TextEdit target, Map<TextEdit, TextEdit> editMap) { TextEdit[] children= source.getChildren(); for (int i= 0; i < children.length; i++) { TextEdit child= children[i]; // a deleted child remains deleted even if the temporary buffer // gets modified. if (child.isDeleted()) continue; RangeMarker marker= new RangeMarker(child.getOffset(), child.getLength()); target.addChild(marker); editMap.put(marker, child); createEdit(child, marker, editMap); } }
private boolean coveredBy(TextEditBasedChangeGroup group, IRegion sourceRegion) { int sLength= sourceRegion.getLength(); if (sLength == 0) return false; int sOffset= sourceRegion.getOffset(); int sEnd= sOffset + sLength - 1; TextEdit[] edits= group.getTextEdits(); for (int i= 0; i < edits.length; i++) { TextEdit edit= edits[i]; if (edit.isDeleted()) return false; int rOffset= edit.getOffset(); int rLength= edit.getLength(); int rEnd= rOffset + rLength - 1; if (rLength == 0) { if (!(sOffset < rOffset && rOffset <= sEnd)) return false; } else { if (!(sOffset <= rOffset && rEnd <= sEnd)) return false; } } return true; } }
private boolean coveredBy(TextEditBasedChangeGroup group, IRegion sourceRegion) { int sLength= sourceRegion.getLength(); if (sLength == 0) return false; int sOffset= sourceRegion.getOffset(); int sEnd= sOffset + sLength - 1; TextEdit[] edits= group.getTextEdits(); for (int i= 0; i < edits.length; i++) { TextEdit edit= edits[i]; if (edit.isDeleted()) return false; int rOffset= edit.getOffset(); int rLength= edit.getLength(); int rEnd= rOffset + rLength - 1; if (rLength == 0) { if (!(sOffset < rOffset && rOffset <= sEnd)) return false; } else { if (!(sOffset <= rOffset && rEnd <= sEnd)) return false; } } return true; } }
private boolean coveredBy(TextEditBasedChangeGroup group, IRegion sourceRegion) { int sLength= sourceRegion.getLength(); if (sLength == 0) return false; int sOffset= sourceRegion.getOffset(); int sEnd= sOffset + sLength - 1; TextEdit[] edits= group.getTextEdits(); for (int i= 0; i < edits.length; i++) { TextEdit edit= edits[i]; if (edit.isDeleted()) return false; int rOffset= edit.getOffset(); int rLength= edit.getLength(); int rEnd= rOffset + rLength - 1; if (rLength == 0) { if (!(sOffset < rOffset && rOffset <= sEnd)) return false; } else { if (!(sOffset <= rOffset && rEnd <= sEnd)) return false; } } return true; } }