@Override public boolean visit(MoveSourceEdit edit) { manageCopy(new DeleteEdit(edit.getOffset(), edit.getLength())); return true; } @Override
@Override public boolean visit(MoveSourceEdit edit) { manageCopy(new DeleteEdit(edit.getOffset(), edit.getLength())); return true; } @Override
@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 performSourceComputation(TextEditProcessor processor, IDocument document) { try { TextEdit[] children= removeChildren(); if (children.length > 0) { String content= document.get(getOffset(), getLength()); EditDocument subDocument= new EditDocument(content); fSourceRoot= new MultiTextEdit(getOffset(), getLength()); fSourceRoot.addChildren(children); fSourceRoot.internalMoveTree(-getOffset()); int processingStyle= getStyle(processor); TextEditProcessor subProcessor= TextEditProcessor.createSourceComputationProcessor(subDocument, fSourceRoot, processingStyle); subProcessor.performEdits(); if (needsTransformation()) applyTransformation(subDocument, processingStyle); fSourceContent= subDocument.get(); } else { fSourceContent= document.get(getOffset(), getLength()); if (needsTransformation()) { EditDocument subDocument= new EditDocument(fSourceContent); applyTransformation(subDocument, getStyle(processor)); fSourceContent= subDocument.get(); } } } catch (BadLocationException cannotHappen) { Assert.isTrue(false); } }
@Override void performSourceComputation(TextEditProcessor processor, IDocument document) { try { TextEdit[] children= removeChildren(); if (children.length > 0) { String content= document.get(getOffset(), getLength()); EditDocument subDocument= new EditDocument(content); fSourceRoot= new MultiTextEdit(getOffset(), getLength()); fSourceRoot.addChildren(children); fSourceRoot.internalMoveTree(-getOffset()); int processingStyle= getStyle(processor); TextEditProcessor subProcessor= TextEditProcessor.createSourceComputationProcessor(subDocument, fSourceRoot, processingStyle); subProcessor.performEdits(); if (needsTransformation()) applyTransformation(subDocument, processingStyle); fSourceContent= subDocument.get(); } else { fSourceContent= document.get(getOffset(), getLength()); if (needsTransformation()) { EditDocument subDocument= new EditDocument(fSourceContent); applyTransformation(subDocument, getStyle(processor)); fSourceContent= subDocument.get(); } } } catch (BadLocationException cannotHappen) { Assert.isTrue(false); } }
@Override public boolean visit(MoveTargetEdit edit) { try { if (edit.getSourceEdit() != null) { org.eclipse.lsp4j.TextEdit te = new org.eclipse.lsp4j.TextEdit(); te.setRange(JDTUtils.toRange(compilationUnit, edit.getOffset(), edit.getLength())); Document doc = new Document(compilationUnit.getSource()); edit.apply(doc, TextEdit.UPDATE_REGIONS); String content = doc.get(edit.getSourceEdit().getOffset(), edit.getSourceEdit().getLength()); if (edit.getSourceEdit().getSourceModifier() != null) { content = applySourceModifier(content, edit.getSourceEdit().getSourceModifier()); } te.setNewText(content); converted.add(te); return false; // do not visit children } } catch (MalformedTreeException | BadLocationException | CoreException e) { JavaLanguageServerPlugin.logException("Error converting TextEdits", e); } return super.visit(edit); }