@Test public void testChangeEventUpdatesStoredText() throws Exception { CamelLanguageServer camelLanguageServer = initializeLanguageServer("<to uri=\"\" xmlns=\"http://camel.apache.org/schema/blueprint\"></to>\n"); DidChangeTextDocumentParams changeEvent = new DidChangeTextDocumentParams(); VersionedTextDocumentIdentifier textDocument = new VersionedTextDocumentIdentifier(); textDocument.setUri(DUMMY_URI); changeEvent.setTextDocument(textDocument); TextDocumentContentChangeEvent contentChange = new TextDocumentContentChangeEvent("<to xmlns=\"http://camel.apache.org/schema/blueprint\" uri=\"\"></to>\n"); changeEvent.setContentChanges(Collections.singletonList(contentChange)); camelLanguageServer.getTextDocumentService().didChange(changeEvent); //check old position doesn't provide completion CompletableFuture<Either<List<CompletionItem>, CompletionList>> completionsAtOldPosition = getCompletionFor(camelLanguageServer, new Position(0, 11)); assertThat(completionsAtOldPosition.get().getLeft()).isEmpty(); //check new position provides completion CompletableFuture<Either<List<CompletionItem>, CompletionList>> completionsAtNewPosition = getCompletionFor(camelLanguageServer, new Position(0, 58)); assertThat(completionsAtNewPosition.get().getLeft()).isNotEmpty(); }
private void changeDocument(ICompilationUnit cu, String content, int version, Range range, int length) throws JavaModelException { DidChangeTextDocumentParams changeParms = new DidChangeTextDocumentParams(); VersionedTextDocumentIdentifier textDocument = new VersionedTextDocumentIdentifier(); textDocument.setUri(JDTUtils.toURI(cu)); textDocument.setVersion(version); changeParms.setTextDocument(textDocument); TextDocumentContentChangeEvent event = new TextDocumentContentChangeEvent(); if (range != null) { event.setRange(range); event.setRangeLength(length); } event.setText(content); List<TextDocumentContentChangeEvent> contentChanges = new ArrayList<>(); contentChanges.add(event); changeParms.setContentChanges(contentChanges); lifeCycleHandler.didChange(changeParms); }
@Override public void syncTextDocument( Document document, TextPosition start, TextPosition end, String insertedText, int version) { DidChangeTextDocumentParams changeDTO = dtoFactory.createDto(DidChangeTextDocumentParams.class); String uri = document.getFile().getLocation().toString(); changeDTO.setUri(uri); VersionedTextDocumentIdentifier versionedDocId = dtoFactory.createDto(VersionedTextDocumentIdentifier.class); versionedDocId.setUri(uri); versionedDocId.setVersion(version); changeDTO.setTextDocument(versionedDocId); TextDocumentContentChangeEvent actualChange = dtoFactory.createDto(TextDocumentContentChangeEvent.class); actualChange.setText(document.getContents()); changeDTO.setContentChanges(Collections.singletonList(actualChange)); textDocumentService.didChange(changeDTO); }
private void changeDocument(ICompilationUnit unit, String content, int version) throws JavaModelException { DidChangeTextDocumentParams changeParms = new DidChangeTextDocumentParams(); VersionedTextDocumentIdentifier textDocument = new VersionedTextDocumentIdentifier(); textDocument.setUri(JDTUtils.toURI(unit)); textDocument.setVersion(version); changeParms.setTextDocument(textDocument); TextDocumentContentChangeEvent event = new TextDocumentContentChangeEvent(); event.setText(content); List<TextDocumentContentChangeEvent> contentChanges = new ArrayList<>(); contentChanges.add(event); changeParms.setContentChanges(contentChanges); lifeCycleHandler.didChange(changeParms); }
TextDocumentEdit getTextDocumentEdit() { VersionedTextDocumentIdentifier identifier = new VersionedTextDocumentIdentifier(-1); identifier.setUri(filePath); List<TextEdit> edits = new ArrayList<>(); for (RenameChange change : changes) { edits.add(new TextEdit(change.getTextEdit().getRange(), change.getTextEdit().getNewText())); } return new TextDocumentEdit(identifier, edits); }
@Override public void syncTextDocument( Document document, TextPosition startPosition, TextPosition endPosition, String insertedText, int version) { DidChangeTextDocumentParams changeDTO = dtoFactory.createDto(DidChangeTextDocumentParams.class); String uri = document.getFile().getLocation().toString(); changeDTO.setUri(uri); VersionedTextDocumentIdentifier versionedDocId = dtoFactory.createDto(VersionedTextDocumentIdentifier.class); versionedDocId.setUri(uri); versionedDocId.setVersion(version); changeDTO.setTextDocument(versionedDocId); Range range = dtoFactory.createDto(Range.class); Position start = dtoFactory.createDto(Position.class); start.setLine(startPosition.getLine()); start.setCharacter(startPosition.getCharacter()); Position end = dtoFactory.createDto(Position.class); end.setLine(endPosition.getLine()); end.setCharacter(endPosition.getCharacter()); range.setStart(start); range.setEnd(end); TextDocumentContentChangeEvent actualChange = dtoFactory.createDto(TextDocumentContentChangeEvent.class); actualChange.setRange(range); actualChange.setText(insertedText); changeDTO.setContentChanges(Collections.singletonList(actualChange)); textDocumentService.didChange(changeDTO); }
public DidChangeTextDocumentParams(@NonNull final VersionedTextDocumentIdentifier textDocument, @NonNull final List<TextDocumentContentChangeEvent> contentChanges) { this.textDocument = textDocument; this.contentChanges = contentChanges; }
@Deprecated public DidChangeTextDocumentParams(@NonNull final VersionedTextDocumentIdentifier textDocument, final String uri, @NonNull final List<TextDocumentContentChangeEvent> contentChanges) { this(textDocument, contentChanges); this.uri = uri; }
/** * The document that did change. The version number points to the version after all provided content changes have * been applied. */ @Pure @NonNull public VersionedTextDocumentIdentifier getTextDocument() { return this.textDocument; }
public TextDocumentEdit(@NonNull final VersionedTextDocumentIdentifier textDocument, @NonNull final List<TextEdit> edits) { this.textDocument = textDocument; this.edits = edits; }
/** * The text document to change. */ @Pure @NonNull public VersionedTextDocumentIdentifier getTextDocument() { return this.textDocument; }
/** * The text document to change. */ public void setTextDocument(@NonNull final VersionedTextDocumentIdentifier textDocument) { this.textDocument = textDocument; }
public ExtendedTextDocumentEdit( VersionedTextDocumentIdentifier textDocument, List<ExtendedTextEdit> edits) { this.textDocument = textDocument; this.edits = edits; }
public VersionedTextDocumentIdentifier getTextDocument() { return textDocument; }
public void setTextDocument(VersionedTextDocumentIdentifier textDocument) { this.textDocument = textDocument; }
/** * The document that did change. The version number points to the version after all provided content changes have * been applied. */ public void setTextDocument(@NonNull final VersionedTextDocumentIdentifier textDocument) { this.textDocument = textDocument; }