@Override protected TextEdit doCopy() { return new MoveSourceEdit(this); }
@Override protected TextEdit doCopy() { return new MoveSourceEdit(this); }
private Collection<TextEdit> relocateComments(Collection<ImportComment> reassignedComments, int insertPosition) { if (reassignedComments.isEmpty()) { return Collections.emptyList(); } Collection<TextEdit> edits = new ArrayList<>(reassignedComments.size() * 3); ImportComment lastComment = null; for (ImportComment currentComment : reassignedComments) { MoveSourceEdit sourceEdit = new MoveSourceEdit( currentComment.region.getOffset(), currentComment.region.getLength()); edits.add(sourceEdit); if (lastComment != null) { // Preserve blank lines between comments. int succeedingLineDelimiters = lastComment.succeedingLineDelimiters > 1 ? 2 : 1; edits.add(new InsertEdit(insertPosition, createDelimiter(succeedingLineDelimiters))); } edits.add(new MoveTargetEdit(insertPosition, sourceEdit)); lastComment = currentComment; } return edits; }
private Collection<TextEdit> relocateComments(Collection<ImportComment> reassignedComments, int insertPosition) { if (reassignedComments.isEmpty()) { return Collections.emptyList(); } Collection<TextEdit> edits = new ArrayList<>(reassignedComments.size() * 3); ImportComment lastComment = null; for (ImportComment currentComment : reassignedComments) { MoveSourceEdit sourceEdit = new MoveSourceEdit( currentComment.region.getOffset(), currentComment.region.getLength()); edits.add(sourceEdit); if (lastComment != null) { // Preserve blank lines between comments. int succeedingLineDelimiters = lastComment.succeedingLineDelimiters > 1 ? 2 : 1; edits.add(new InsertEdit(insertPosition, createDelimiter(succeedingLineDelimiters))); } edits.add(new MoveTargetEdit(insertPosition, sourceEdit)); lastComment = currentComment; } return edits; }
private Collection<TextEdit> relocateComments(Collection<ImportComment> reassignedComments, int insertPosition) { if (reassignedComments.isEmpty()) { return Collections.emptyList(); } Collection<TextEdit> edits = new ArrayList<>(reassignedComments.size() * 3); ImportComment lastComment = null; for (ImportComment currentComment : reassignedComments) { MoveSourceEdit sourceEdit = new MoveSourceEdit( currentComment.region.getOffset(), currentComment.region.getLength()); edits.add(sourceEdit); if (lastComment != null) { // Preserve blank lines between comments. int succeedingLineDelimiters = lastComment.succeedingLineDelimiters > 1 ? 2 : 1; edits.add(new InsertEdit(insertPosition, createDelimiter(succeedingLineDelimiters))); } edits.add(new MoveTargetEdit(insertPosition, sourceEdit)); lastComment = currentComment; } return edits; }
/** * Creates text edits to move an import's text to a new position. */ private ImportEdits moveOriginalImport(OriginalImportEntry importEntry, int position) { MoveSourceEdit leadingSourceEdit = new MoveSourceEdit( importEntry.leadingDelimiter.getOffset(), importEntry.leadingDelimiter.getLength()); MoveTargetEdit leadingTargetEdit = new MoveTargetEdit(position, leadingSourceEdit); Collection<TextEdit> leadingDelimiterEdits = Arrays.asList(leadingSourceEdit, leadingTargetEdit); MoveSourceEdit importSourceEdit = new MoveSourceEdit( importEntry.declarationAndComments.getOffset(), importEntry.declarationAndComments.getLength()); MoveTargetEdit importTargetEdit = new MoveTargetEdit(position, importSourceEdit); Collection<TextEdit> declarationAndCommentEdits = Arrays.asList(importSourceEdit, importTargetEdit); return new ImportEdits(leadingDelimiterEdits, declarationAndCommentEdits); }
/** * Creates text edits to move an import's text to a new position. */ private ImportEdits moveOriginalImport(OriginalImportEntry importEntry, int position) { MoveSourceEdit leadingSourceEdit = new MoveSourceEdit( importEntry.leadingDelimiter.getOffset(), importEntry.leadingDelimiter.getLength()); MoveTargetEdit leadingTargetEdit = new MoveTargetEdit(position, leadingSourceEdit); Collection<TextEdit> leadingDelimiterEdits = Arrays.asList(leadingSourceEdit, leadingTargetEdit); MoveSourceEdit importSourceEdit = new MoveSourceEdit( importEntry.declarationAndComments.getOffset(), importEntry.declarationAndComments.getLength()); MoveTargetEdit importTargetEdit = new MoveTargetEdit(position, importSourceEdit); Collection<TextEdit> declarationAndCommentEdits = Arrays.asList(importSourceEdit, importTargetEdit); return new ImportEdits(leadingDelimiterEdits, declarationAndCommentEdits); }
/** * Creates text edits to move an import's text to a new position. */ private ImportEdits moveOriginalImport(OriginalImportEntry importEntry, int position) { MoveSourceEdit leadingSourceEdit = new MoveSourceEdit( importEntry.leadingDelimiter.getOffset(), importEntry.leadingDelimiter.getLength()); MoveTargetEdit leadingTargetEdit = new MoveTargetEdit(position, leadingSourceEdit); Collection<TextEdit> leadingDelimiterEdits = Arrays.asList(leadingSourceEdit, leadingTargetEdit); MoveSourceEdit importSourceEdit = new MoveSourceEdit( importEntry.declarationAndComments.getOffset(), importEntry.declarationAndComments.getLength()); MoveTargetEdit importTargetEdit = new MoveTargetEdit(position, importSourceEdit); Collection<TextEdit> declarationAndCommentEdits = Arrays.asList(importSourceEdit, importTargetEdit); return new ImportEdits(leadingDelimiterEdits, declarationAndCommentEdits); }
MoveSourceEdit source = new MoveSourceEdit(region.getOffset(), region.getLength()); region = getMoveRegion(node2); source.setTargetEdit(new MoveTargetEdit(region.getOffset()));
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
final TextEdit getCopySourceEdit(CopySourceInfo info) { TextEdit edit= (TextEdit) this.sourceCopyInfoToEdit.get(info); if (edit == null) { SourceRange range= getExtendedRange(info.getNode()); int start= range.getStartPosition(); int end= start + range.getLength(); if (info.isMove) { MoveSourceEdit moveSourceEdit= new MoveSourceEdit(start, end - start); moveSourceEdit.setTargetEdit(new MoveTargetEdit(0)); edit= moveSourceEdit; } else { CopySourceEdit copySourceEdit= new CopySourceEdit(start, end - start); copySourceEdit.setTargetEdit(new CopyTargetEdit(0)); edit= copySourceEdit; } this.sourceCopyInfoToEdit.put(info, edit); } return edit; }
protected void modifyNode(IDocumentElementNode node, IModelChangedEvent event) { IDocumentElementNode oldNode = (IDocumentElementNode) event.getOldValue(); IDocumentElementNode newNode = (IDocumentElementNode) event.getNewValue(); IDocumentElementNode node1 = (oldNode.getPreviousSibling() == null || oldNode.equals(newNode.getPreviousSibling())) ? oldNode : newNode; IDocumentElementNode node2 = node1.equals(oldNode) ? newNode : oldNode; if (node1.getOffset() < 0 && node2.getOffset() < 0) { TextEdit op = fOperationTable.get(node1); if (op == null) { // node 1 has no rule, so node 2 has no rule, therefore rewrite parent/ancestor insertNode(node); } } else if (node1.getOffset() > -1 && node2.getOffset() > -1) { // both nodes have offsets, so create a move target/source combo operation IRegion region = getMoveRegion(node1); MoveSourceEdit source = new MoveSourceEdit(region.getOffset(), region.getLength()); region = getMoveRegion(node2); source.setTargetEdit(new MoveTargetEdit(region.getOffset())); fOperationTable.put(node, source); fOperationList.add(source); if (fReadableNames != null) fReadableNames.put(source, NLS.bind(PDECoreMessages.XMLTextChangeListener_editNames_modifyNode, node.getXMLTagName())); } else { // one node with offset, the other without offset. Delete/reinsert the one without offset insertNode((node1.getOffset() < 0) ? node1 : node2); } }
protected void modifyNode(IDocumentNode node, IModelChangedEvent event) { IDocumentNode oldNode = (IDocumentNode)event.getOldValue(); IDocumentNode newNode = (IDocumentNode)event.getNewValue(); IDocumentNode node1 = (oldNode.getPreviousSibling() == null || oldNode.equals(newNode.getPreviousSibling())) ? oldNode : newNode; IDocumentNode node2 = node1.equals(oldNode) ? newNode : oldNode; if (node1.getOffset() < 0 && node2.getOffset() < 0) { TextEdit op = (TextEdit)fOperationTable.get(node1); if (op == null) { // node 1 has no rule, so node 2 has no rule, therefore rewrite parent/ancestor insertNode(node); } } else if (node1.getOffset() > -1 && node2.getOffset() > -1) { // both nodes have offsets, so create a move target/source combo operation IRegion region = getMoveRegion(node1); MoveSourceEdit source = new MoveSourceEdit(region.getOffset(), region.getLength()); region = getMoveRegion(node2); source.setTargetEdit(new MoveTargetEdit(region.getOffset())); fOperationTable.put(node, source); fOperationList.add(source); } else { // one node with offset, the other without offset. Delete/reinsert the one without offset insertNode((node1.getOffset() < 0) ? node1 : node2); } }
translatedTextEdit = new MoveSourceEdit(jspOffset, length); ((MoveSourceEdit) translatedTextEdit).setTargetEdit(((MoveSourceEdit) textEdit).getTargetEdit());