/** * @return <code>true</code> if a list of {@link org.eclipse.lsp4j.TextEdit} * contains any actual changes, <code>false</code> otherwise. */ public static boolean hasChanges(List<org.eclipse.lsp4j.TextEdit> edits) { if (edits == null) { return false; } //@formatter:off return edits.stream() .filter(edit -> (!edit.getRange().equals(ZERO_RANGE) || !"".equals(edit.getNewText()))) .findFirst() .isPresent(); //@formatter:on }
public List<TextEdit> transform() { List<TextEdit> inverse = new ArrayList<>(); Iterator<TextEdit> editIterator = edits.iterator(); ch = source.get(); while (editIterator.hasNext()) { TextEdit edit = editIterator.next(); advanceTo(edit.getRange().getStart(), sink); Position undoStart = new Position(currentWriteLine, currentWriteChar); for (int i = 0; i < edit.getNewText().length(); i++) { sink.accept((int) edit.getNewText().charAt(i)); } StringBuilder replaced = new StringBuilder(); advanceTo(edit.getRange().getEnd(), forStringBuilder(replaced)); Position undoEnd = new Position(currentWriteLine, currentWriteChar); inverse.add(new TextEdit(new Range(undoStart, undoEnd), replaced.toString())); } // all edits have been processed. Copy the rest of the chars. while (ch >= 0) { sink.accept(ch); ch = source.get(); } return inverse; }
public Document applyChanges(final Iterable<? extends TextEdit> changes) { String newContent = this.contents; for (final TextEdit change : changes) { Range _range = change.getRange(); boolean _tripleEquals = (_range == null); if (_tripleEquals) { newContent = change.getNewText(); } else { final int start = this.getOffSet(change.getRange().getStart()); final int end = this.getOffSet(change.getRange().getEnd()); String _substring = newContent.substring(0, start); String _newText = change.getNewText(); String _plus = (_substring + _newText); String _substring_1 = newContent.substring(end); String _plus_1 = (_plus + _substring_1); newContent = _plus_1; } } Integer _xifexpression = null; if ((this.version != null)) { _xifexpression = Integer.valueOf(((this.version).intValue() + 1)); } else { _xifexpression = null; } return new Document(_xifexpression, newContent); }
public TextEditDto(org.eclipse.lsp4j.TextEdit o) { if (o.getRange() == null) { setRange((org.eclipse.lsp4j.Range)null); } else { org.eclipse.lsp4j.Range rangeVal = new RangeDto(o.getRange()); setRange((org.eclipse.lsp4j.Range)rangeVal); } if (o.getNewText() == null) { setNewText((java.lang.String)null); } else { java.lang.String newTextVal = (java.lang.String)makeDto(o.getNewText());; setNewText((java.lang.String)newTextVal); } }
String docText = doc.getText(); if (edit!=null) { String replaceWith = edit.getNewText(); int cursorReplaceOffset = 0;
for (TextEdit edit : entry.getValue()) { Range range = edit.getRange(); edits.replace(document.toOffset(range.getStart()), document.toOffset(range.getEnd()), edit.getNewText()); for (TextEdit textEdit : docEdit.getEdits()) { Range range = textEdit.getRange(); edits.replace(workingDocument.toOffset(range.getStart()), workingDocument.toOffset(range.getEnd()), textEdit.getNewText()); edits.apply(workingDocument);
private static ExtendedTextEdit doConvert(TextEdit edit, StringBuilder currentLine) { ExtendedTextEdit extendedEdit = new ExtendedTextEdit(); extendedEdit.setRange(edit.getRange()); extendedEdit.setNewText(edit.getNewText()); extendedEdit.setLineText(currentLine.toString()); extendedEdit.setInLineStart(edit.getRange().getStart().getCharacter()); if (edit.getRange().getEnd().getLine() == edit.getRange().getStart().getLine()) { extendedEdit.setInLineEnd(edit.getRange().getEnd().getCharacter()); } else { extendedEdit.setInLineEnd(Math.max(0, currentLine.length() - 1)); } return extendedEdit; }
if (proposal.getKind() == CompletionProposal.CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) { completionBuffer.append(edit.getNewText()); range = edit.getRange(); } else {