} else { op = fMoveOperations.get(node2); if (op != null && op.getTargetEdit().getOffset() == source.getOffset()) { fMoveOperations.remove(node2); ops.remove(op);
@Override public boolean visit(MoveSourceEdit edit) { try { // If MoveSourcedEdit & MoveTargetEdit are the same level, should delete the original contenxt. // See issue#https://github.com/redhat-developer/vscode-java/issues/253 if (edit.getParent() != null && edit.getTargetEdit() != null && edit.getParent().equals(edit.getTargetEdit().getParent())) { org.eclipse.lsp4j.TextEdit te = new org.eclipse.lsp4j.TextEdit(); te.setNewText(""); te.setRange(JDTUtils.toRange(compilationUnit, edit.getOffset(), edit.getLength())); converted.add(te); return false; } } catch (JavaModelException e) { JavaLanguageServerPlugin.logException("Error converting TextEdits", e); } return super.visit(edit); }
@Override void performConsistencyCheck(TextEditProcessor processor, IDocument document) throws MalformedTreeException { if (fSource == null) throw new MalformedTreeException(getParent(), this, TextEditMessages.getString("MoveTargetEdit.no_source")); //$NON-NLS-1$ if (fSource.getTargetEdit() != this) throw new MalformedTreeException(getParent(), this, TextEditMessages.getString("MoveTargetEdit.different_target")); //$NON-NLS-1$ }
@Override void performConsistencyCheck(TextEditProcessor processor, IDocument document) throws MalformedTreeException { if (fSource == null) throw new MalformedTreeException(getParent(), this, TextEditMessages.getString("MoveTargetEdit.no_source")); //$NON-NLS-1$ if (fSource.getTargetEdit() != this) throw new MalformedTreeException(getParent(), this, TextEditMessages.getString("MoveTargetEdit.different_target")); //$NON-NLS-1$ }
parent.addChild(edit); if (edit instanceof MoveSourceEdit) { parent.addChild(((MoveSourceEdit) edit).getTargetEdit()); parent.addChild(((MoveSourceEdit) edit).getTargetEdit());
protected static void insert(TextEdit parent, TextEdit edit) { if (!parent.hasChildren()) { parent.addChild(edit); if (edit instanceof MoveSourceEdit) { parent.addChild(((MoveSourceEdit) edit).getTargetEdit()); } return; } TextEdit[] children = parent.getChildren(); // First dive down to find the right parent. for (TextEdit child : children) { if (covers(child, edit)) { insert(child, edit); return; } } // We have the right parent. Now check if some of the children have to // be moved under the new edit since it is covering it. for (int i = children.length - 1; i >= 0; i--) { TextEdit child = children[i]; if (covers(edit, child)) { parent.removeChild(i); edit.addChild(child); } } parent.addChild(edit); if (edit instanceof MoveSourceEdit) { parent.addChild(((MoveSourceEdit) edit).getTargetEdit()); } }
parent.addChild(edit); if (edit instanceof MoveSourceEdit) { parent.addChild(((MoveSourceEdit)edit).getTargetEdit()); parent.addChild(((MoveSourceEdit)edit).getTargetEdit());
((MoveSourceEdit) translatedTextEdit).setTargetEdit(((MoveSourceEdit) textEdit).getTargetEdit());