public List<? extends Location> definition(TextDocumentPositionParams position, IProgressMonitor monitor) { ITypeRoot unit = JDTUtils.resolveTypeRoot(position.getTextDocument().getUri()); Location location = null; if (unit != null && !monitor.isCanceled()) { location = computeDefinitionNavigation(unit, position.getPosition().getLine(), position.getPosition().getCharacter(), monitor); } return location == null ? null : Arrays.asList(location); }
TextDocumentPositionParams clone(TextDocumentPositionParams textDocumentPositionParams) { if (textDocumentPositionParams == null) { return null; } Position position = textDocumentPositionParams.getPosition(); TextDocumentIdentifier textDocument = textDocumentPositionParams.getTextDocument(); TextDocumentPositionParams cloned = new TextDocumentPositionParams(); cloned.setPosition(clone(position)); cloned.setTextDocument(clone(textDocument)); return cloned; }
@Override @Pure public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; if (!super.equals(obj)) return false; CompletionParams other = (CompletionParams) obj; if (this.context == null) { if (other.context != null) return false; } else if (!this.context.equals(other.context)) return false; return true; }
public Hover getHover(TextDocumentInfo document, Position cursor) throws Exception { TextDocumentPositionParams params = new TextDocumentPositionParams(); params.setPosition(cursor); params.setTextDocument(document.getId()); return getServer().getTextDocumentService().hover(params ).get(); }
public List<? extends Location> getDefinitions(final Document document, final XtextResource resource, final TextDocumentPositionParams params, final IReferenceFinder.IResourceAccess resourceAccess, final CancelIndicator cancelIndicator) { final int offset = document.getOffSet(params.getPosition()); return this.getDefinitions(resource, offset, resourceAccess, cancelIndicator); }
public synchronized TextDocument get(TextDocumentPositionParams params) { return get(params.getTextDocument().getUri()); }
public void assertLinkTargets(String hoverOver, Set<Location> expectedLocations) throws Exception { int pos = getRawText().indexOf(hoverOver); if (pos>=0) { pos += hoverOver.length() / 2; } assertTrue("Not found in editor: '"+hoverOver+"'", pos>=0); TextDocumentPositionParams params = new TextDocumentPositionParams(new TextDocumentIdentifier(getUri()), doc.toPosition(pos)); List<? extends Location> definitions = harness.getDefinitions(params); assertEquals(ImmutableSet.copyOf(expectedLocations), ImmutableSet.copyOf(definitions)); }
public TextDocumentPositionParamsDto(org.eclipse.lsp4j.TextDocumentPositionParams o) { if (o.getPosition() == null) { setPosition((org.eclipse.lsp4j.Position)null); } else { org.eclipse.lsp4j.Position positionVal = new PositionDto(o.getPosition()); setPosition((org.eclipse.lsp4j.Position)positionVal); } if (o.getUri() == null) { setUri((java.lang.String)null); } else { java.lang.String uriVal = (java.lang.String)makeDto(o.getUri());; setUri((java.lang.String)uriVal); } if (o.getTextDocument() == null) { setTextDocument((org.eclipse.lsp4j.TextDocumentIdentifier)null); } else { org.eclipse.lsp4j.TextDocumentIdentifier textDocumentVal = new TextDocumentIdentifierDto(o.getTextDocument()); setTextDocument((org.eclipse.lsp4j.TextDocumentIdentifier)textDocumentVal); } }
@Test public void testInvalidCompletion() { RequestMessage message = new RequestMessage(); message.setJsonrpc("2.0"); message.setId("1"); message.setMethod(MessageMethods.DOC_COMPLETION); TextDocumentPositionParams params = new TextDocumentPositionParams(); params.setTextDocument(new TextDocumentIdentifier("file:///tmp/foo")); message.setParams(params); assertIssues(message, "The accessor 'TextDocumentPositionParams.getPosition()' must return a non-null value."); }
@Override @Pure public int hashCode() { return 31 * super.hashCode() + ((this.context== null) ? 0 : this.context.hashCode()); } }
@Override public List<? extends DocumentHighlight> getDocumentHighlights(Document document, XtextResource resource, TextDocumentPositionParams params, CancelIndicator cancelIndicator) { int offset = document.getOffSet(params.getPosition()); return getDocumentHighlights(resource, offset); }
@Override public CompletableFuture<List<? extends Location>> start(ExtendedLanguageServer element) { TextDocumentPositionParams clonedTextDocumentPositionParams = lsParamsCloner.clone(textDocumentPositionParams); if (wsPath.startsWith(ROOT)) { URI uri = languageServerPathTransformer.toFsURI(element.getId(), wsPath); clonedTextDocumentPositionParams.getTextDocument().setUri(uri.toString()); } else { clonedTextDocumentPositionParams.getTextDocument().setUri(wsPath); } return element.getTextDocumentService().definition(clonedTextDocumentPositionParams); }
final Future<Void> future = launcher.startListening(); TextDocumentService _textDocumentService = launcher.getRemoteProxy().getTextDocumentService(); TextDocumentPositionParams _textDocumentPositionParams = new TextDocumentPositionParams(); final Procedure1<TextDocumentPositionParams> _function = (TextDocumentPositionParams it) -> { TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier("foo"); it.setTextDocument(_textDocumentIdentifier); Position _position = new Position(0, 0); it.setPosition(_position); }; TextDocumentPositionParams _doubleArrow = ObjectExtensions.<TextDocumentPositionParams>operator_doubleArrow(_textDocumentPositionParams, _function);
public void assertGotoDefinition(Position pos, Range expectedTarget) throws Exception { TextDocumentIdentifier textDocumentId = doc.getId(); TextDocumentPositionParams params = new TextDocumentPositionParams(textDocumentId, textDocumentId.getUri(), pos); List<? extends Location> defs = harness.getDefinitions(params); assertEquals(1, defs.size()); assertEquals(new Location(textDocumentId.getUri(), expectedTarget), defs.get(0)); }
@Override @Pure public int hashCode() { return 31 * super.hashCode() + ((this.context== null) ? 0 : this.context.hashCode()); } }
public List<? extends DocumentHighlight> documentHighlight(TextDocumentPositionParams position, IProgressMonitor monitor) { ITypeRoot type = JDTUtils.resolveTypeRoot(position.getTextDocument().getUri()); return computeOccurrences(type, position.getPosition().getLine(), position.getPosition().getCharacter(), monitor); }
private int getOffset(TextDocumentPositionParams param, ITypeRoot typeRoot) { int offset = 0; try { IDocument document = JsonRpcHelpers.toDocument(typeRoot.getBuffer()); offset = document.getLineOffset(param.getPosition().getLine()) + param.getPosition().getCharacter(); } catch (JavaModelException | BadLocationException e) { JavaLanguageServerPlugin.logException(e.getMessage(), e); } return offset; }
@ConditionalOnBean(DefinitionHandler.class) @Bean InitializingBean registerDefintionHandler(SimpleTextDocumentService documents, List<DefinitionHandler> definitionHandlers) { if (definitionHandlers.size() == 1) { return () -> documents.onDefinition(definitionHandlers.get(0)); } else { Map<LanguageId, DefinitionHandler> handlers = new HashMap<>(definitionHandlers.size()); for (DefinitionHandler h : definitionHandlers) { Assert.isInstanceOf(LanguageSpecific.class, h, "Only language specific defintion handlers supported!"); for (LanguageId l : ((LanguageSpecific)h).supportedLanguages()) { Assert.isTrue(!handlers.containsKey(l), "Multiple definition handlers for the same language not supported!"); handlers.put(l, h); } } ImmutableMap<LanguageId, DefinitionHandler> immutableMap = ImmutableMap.copyOf(handlers); return () -> documents.onDefinition((position) -> { TextDocument doc = documents.get(position.getTextDocument().getUri()); if (doc != null) { LanguageId language = doc.getLanguageId(); DefinitionHandler handler = immutableMap.get(language); if (handler != null) { return handler.handle(position); } } return ImmutableList.of(); }); } }
it.setId("1"); it.setMethod(MessageMethods.DOC_COMPLETION); TextDocumentPositionParams _textDocumentPositionParams = new TextDocumentPositionParams(); final Procedure1<TextDocumentPositionParams> _function_1 = (TextDocumentPositionParams it_1) -> { TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier("file:///tmp/foo"); it_1.setTextDocument(_textDocumentIdentifier); Position _position = new Position(4, 22); it_1.setPosition(_position); }; TextDocumentPositionParams _doubleArrow = ObjectExtensions.<TextDocumentPositionParams>operator_doubleArrow(_textDocumentPositionParams, _function_1);
@Test public void testDefinition() throws InterruptedException, ExecutionException { String uri = filePath.toAbsolutePath().toString(); TextDocumentPositionParams params = new TextDocumentPositionParams(new TextDocumentIdentifier(uri), uri, new Position(5, 5)); CompletableFuture<List<? extends Location>> response = service.definition(params); assertThat(response.get(), is(Lists.newArrayList(expectedDefinitionLocation.get()))); }