private TextEditBasedChangeGroup[] getSortedChangeGroups(TextEditBasedChange change) { TextEditBasedChangeGroup[] edits= change.getChangeGroups(); List<TextEditBasedChangeGroup> result= new ArrayList<>(edits.length); for (int i= 0; i < edits.length; i++) { if (!edits[i].getTextEditGroup().isEmpty()) result.add(edits[i]); } Comparator<TextEditBasedChangeGroup> comparator= new OffsetComparator(); Collections.sort(result, comparator); return result.toArray(new TextEditBasedChangeGroup[result.size()]); }
GroupCategorySet getGroupCategorySet() { return fChangeGroup.getGroupCategorySet(); }
private int getOffset(TextEditBasedChangeGroup edit) { return edit.getRegion().getOffset(); } }
private TextEditProcessor createTextEditProcessor(IDocument document, int flags, TextEditBasedChangeGroup[] changes) { if (fEdit == null) return new TextEditProcessor(document, new MultiTextEdit(0,0), flags); List<TextEdit> includes= new ArrayList<>(0); for (int c= 0; c < changes.length; c++) { TextEditBasedChangeGroup change= changes[c]; Assert.isTrue(change.getTextEditChange() == this); if (change.isEnabled()) { includes.addAll(Arrays.asList(change.getTextEditGroup().getTextEdits())); } } fCopier= new TextEditCopier(fEdit); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setIncludes(mapEdits( includes.toArray(new TextEdit[includes.size()]), fCopier)); if (!keep) fCopier= null; return result; }
private TextEditProcessor createTextEditProcessor(IDocument document, int flags, boolean preview) { if (fEdit == null) return new TextEditProcessor(document, new MultiTextEdit(0,0), flags); List<TextEdit> excludes= new ArrayList<>(0); TextEditBasedChangeGroup[] groups= getChangeGroups(); for (int index= 0; index < groups.length; index++) { TextEditBasedChangeGroup edit= groups[index]; if (!edit.isEnabled()) { excludes.addAll(Arrays.asList(edit.getTextEditGroup().getTextEdits())); } } if (preview) { fCopier= new TextEditCopier(fEdit); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setExcludes(mapEdits( excludes.toArray(new TextEdit[excludes.size()]), fCopier)); if (!keep) fCopier= null; return result; } else { LocalTextEditProcessor result= new LocalTextEditProcessor(document, fEdit, flags | TextEdit.UPDATE_REGIONS); result.setExcludes(excludes.toArray(new TextEdit[excludes.size()])); return result; } }
private TextEditProcessor createTextEditProcessor(ComposableBufferChange change, IDocument document, int flags, boolean preview) { List excludes= new ArrayList(0); for (final Iterator iterator= change.getGroups().iterator(); iterator.hasNext();) { TextEditBasedChangeGroup group= (TextEditBasedChangeGroup) iterator.next(); if (!group.isEnabled()) excludes.addAll(Arrays.asList(group.getTextEdits())); } if (preview) { fCopier= new TextEditCopier(change.getEdit()); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setExcludes(mapEdits((TextEdit[]) excludes.toArray(new TextEdit[excludes.size()]), fCopier)); if (!keep) fCopier= null; return result; } else { LocalTextEditProcessor result= new LocalTextEditProcessor(document, change.getEdit(), flags | TextEdit.UPDATE_REGIONS); result.setExcludes((TextEdit[]) excludes.toArray(new TextEdit[excludes.size()])); return result; } }
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; } }
void setEnabled(boolean enabled) { fChangeGroup.setEnabled(enabled); }
if (extended.group != null && extended.surroundingLines >= 0) { TextEditBasedChangeGroup group= extended.group; TextEditBasedChange editChange= group.getTextEditChange(); setInput(editChange, editChange.getCurrentContent(group.getRegion(), true, 2, new NullProgressMonitor()), editChange.getPreviewContent(new TextEditBasedChangeGroup[] { group }, group.getRegion(), true, 2, new NullProgressMonitor()), editChange.getTextType()); return; } else if (extended.groups != null && extended.groups.length > 0 && extended.range != null) { TextEditBasedChange editChange= extended.groups[0].getTextEditChange(); TextEditBasedChangeGroup[] groups= extended.groups; if (extended.groupCategory != null) {
int getActive() { return fChangeGroup.isEnabled() ? PreviewNode.ACTIVE : PreviewNode.INACTIVE; }
/** * Adds a {@link TextEditGroup text edit group}. This method is a convenience * method for calling <code>change.addChangeGroup(new * TextEditBasedChangeGroup(change, group));</code>. * * @param group the text edit group to add */ public void addTextEditGroup(TextEditGroup group) { addChangeGroup(new TextEditBasedChangeGroup(this, group)); }
private TextEditProcessor createTextEditProcessor(IDocument document, int flags, TextEditBasedChangeGroup[] changes) { if (fEdit == null) return new TextEditProcessor(document, new MultiTextEdit(0,0), flags); List includes= new ArrayList(0); for (int c= 0; c < changes.length; c++) { TextEditBasedChangeGroup change= changes[c]; Assert.isTrue(change.getTextEditChange() == this); if (change.isEnabled()) { includes.addAll(Arrays.asList(change.getTextEditGroup().getTextEdits())); } } fCopier= new TextEditCopier(fEdit); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setIncludes(mapEdits( (TextEdit[])includes.toArray(new TextEdit[includes.size()]), fCopier)); if (!keep) fCopier= null; return result; }
for (int index= 0; index < groups.length; index++) { TextEditBasedChangeGroup edit= groups[index]; if (!edit.isEnabled()) { excludes.addAll(Arrays.asList(edit.getTextEditGroup().getTextEdits()));
private TextEditProcessor createTextEditProcessor(ComposableBufferChange change, IDocument document, int flags, boolean preview) { List<TextEdit> excludes= new ArrayList<>(0); for (final Iterator<TextEditBasedChangeGroup> iterator= change.getGroups().iterator(); iterator.hasNext();) { TextEditBasedChangeGroup group= iterator.next(); if (!group.isEnabled()) excludes.addAll(Arrays.asList(group.getTextEdits())); } if (preview) { fCopier= new TextEditCopier(change.getEdit()); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setExcludes(mapEdits(excludes.toArray(new TextEdit[excludes.size()]), fCopier)); if (!keep) fCopier= null; return result; } else { LocalTextEditProcessor result= new LocalTextEditProcessor(document, change.getEdit(), flags | TextEdit.UPDATE_REGIONS); result.setExcludes(excludes.toArray(new TextEdit[excludes.size()])); return result; } }
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; } }
void setEnabledShallow(boolean enabled) { fChangeGroup.setEnabled(enabled); }
/** * Adds a {@link TextEditGroup text edit group}. This method is a convenience * method for calling <code>change.addChangeGroup(new * TextEditBasedChangeGroup(change, group));</code>. * * @param group the text edit group to add */ public void addTextEditGroup(TextEditGroup group) { addChangeGroup(new TextEditBasedChangeGroup(this, group)); }
private TextEditBasedChangeGroup[] getSortedChangeGroups(TextEditBasedChange change) { TextEditBasedChangeGroup[] groups= change.getChangeGroups(); List result= new ArrayList(groups.length); for (int i= 0; i < groups.length; i++) { if (!groups[i].getTextEditGroup().isEmpty()) result.add(groups[i]); } Comparator comparator= new OffsetComparator(); Collections.sort(result, comparator); return (TextEditBasedChangeGroup[])result.toArray(new TextEditBasedChangeGroup[result.size()]); }
private TextEditProcessor createTextEditProcessor(IDocument document, int flags, TextEditBasedChangeGroup[] changes) { if (fEdit == null) return new TextEditProcessor(document, new MultiTextEdit(0,0), flags); List<TextEdit> includes= new ArrayList<>(0); for (int c= 0; c < changes.length; c++) { TextEditBasedChangeGroup change= changes[c]; Assert.isTrue(change.getTextEditChange() == this); if (change.isEnabled()) { includes.addAll(Arrays.asList(change.getTextEditGroup().getTextEdits())); } } fCopier= new TextEditCopier(fEdit); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setIncludes(mapEdits( includes.toArray(new TextEdit[includes.size()]), fCopier)); if (!keep) fCopier= null; return result; }
private TextEditProcessor createTextEditProcessor(IDocument document, int flags, boolean preview) { if (fEdit == null) return new TextEditProcessor(document, new MultiTextEdit(0,0), flags); List<TextEdit> excludes= new ArrayList<>(0); TextEditBasedChangeGroup[] groups= getChangeGroups(); for (int index= 0; index < groups.length; index++) { TextEditBasedChangeGroup edit= groups[index]; if (!edit.isEnabled()) { excludes.addAll(Arrays.asList(edit.getTextEditGroup().getTextEdits())); } } if (preview) { fCopier= new TextEditCopier(fEdit); TextEdit copiedEdit= fCopier.perform(); boolean keep= getKeepPreviewEdits(); if (keep) flags= flags | TextEdit.UPDATE_REGIONS; LocalTextEditProcessor result= new LocalTextEditProcessor(document, copiedEdit, flags); result.setExcludes(mapEdits( excludes.toArray(new TextEdit[excludes.size()]), fCopier)); if (!keep) fCopier= null; return result; } else { LocalTextEditProcessor result= new LocalTextEditProcessor(document, fEdit, flags | TextEdit.UPDATE_REGIONS); result.setExcludes(excludes.toArray(new TextEdit[excludes.size()])); return result; } }