Java 类org.eclipse.lsp4j.Hover 实例源码

项目:camel-language-server    文件:CamelLanguageServerHoverTest.java   
@Test
public void testProvideDocumentationOnHover() throws Exception {
    CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"ahc:httpUri\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");

    TextDocumentPositionParams position = new TextDocumentPositionParams(new TextDocumentIdentifier(DUMMY_URI), new Position(0, 13));
    CompletableFuture<Hover> hover = camelLanguageServer.getTextDocumentService().hover(position);

    assertThat(hover.get().getContents().get(0).getLeft()).isEqualTo(AHC_DOCUMENTATION);
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHover() throws Exception {
    //given
    //Hovers on the System.out
    String payload = createHoverRequest("src/java/Foo.java", 5, 15);
    TextDocumentPositionParams position = getParams(payload);

    //when
    Hover hover = handler.hover(position, monitor);

    //then
    assertNotNull(hover);
    assertNotNull(hover.getContents());
    MarkedString signature = hover.getContents().get(0).getRight();
    assertEquals("Unexpected hover " + signature, "java", signature.getLanguage());
    assertEquals("Unexpected hover " + signature, "java.Foo", signature.getValue());
    String doc = hover.getContents().get(1).getLeft();
    assertEquals("Unexpected hover " + doc, "This is foo", doc);
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverStandalone() throws Exception {
    //given
    //Hovers on the System.out
    URI standalone = Paths.get("projects","maven","salut","src","main","java","java","Foo.java").toUri();
    String payload = createHoverRequest(standalone, 10, 71);
    TextDocumentPositionParams position = getParams(payload);

    //when
    Hover hover = handler.hover(position, monitor);

    //then
    assertNotNull(hover);
    assertNotNull(hover.getContents());
    MarkedString signature = hover.getContents().get(0).getRight();
    assertEquals("Unexpected hover " + signature, "java", signature.getLanguage());
    assertEquals("Unexpected hover " + signature, "java.Foo", signature.getValue());
    String doc = hover.getContents().get(1).getLeft();
    assertEquals("Unexpected hover "+doc, "This is foo", doc);
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverPackage() throws Exception {
    // given
    // Hovers on the java.internal package
    String payload = createHoverRequest("src/java/Baz.java", 2, 16);
    TextDocumentPositionParams position = getParams(payload);

    // when
    Hover hover = handler.hover(position, monitor);

    // then
    assertNotNull(hover);
    String signature = hover.getContents().get(0).getRight().getValue();//
    assertEquals("Unexpected signature ", "java.internal", signature);
    String result = hover.getContents().get(1).getLeft();//
    assertEquals("Unexpected hover ", "this is a **bold** package!", result);
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testEmptyHover() throws Exception {
    //given
    //Hovers on the System.out
    URI standalone = Paths.get("projects","maven","salut","src","main","java","java","Foo.java").toUri();
    String payload = createHoverRequest(standalone, 1, 2);
    TextDocumentPositionParams position = getParams(payload);

    //when
    Hover hover = handler.hover(position, monitor);

    //then
    assertNotNull(hover);
    assertNotNull(hover.getContents());
    assertEquals(1, hover.getContents().size());
    assertEquals("Should find empty hover for " + payload, "", hover.getContents().get(0).getLeft());
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverVariable() throws Exception {
    //given
    //Hover on args parameter
    String argParam = createHoverRequest("src/java/Foo.java", 7, 37);
    TextDocumentPositionParams position = getParams(argParam);

    //when
    Hover hover = handler.hover(position, monitor);

    //then
    assertNotNull(hover);
    assertNotNull(hover.getContents());
    MarkedString signature = hover.getContents().get(0).getRight();
    assertEquals("Unexpected hover " + signature, "java", signature.getLanguage());
    assertEquals("Unexpected hover " + signature, "String[] args - java.Foo.main(String[])", signature.getValue());
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverOnPackageWithJavadoc() throws Exception {
    importProjects("maven/salut2");
    project = WorkspaceHelper.getProject("salut2");
    handler = new HoverHandler(preferenceManager);
    //given
    //Hovers on the org.apache.commons import
    String payload = createHoverRequest("src/main/java/foo/Bar.java", 2, 22);
    TextDocumentPositionParams position = getParams(payload);

    //when
    Hover hover = handler.hover(position, monitor);
    assertNotNull(hover);
    String result = hover.getContents().get(0).getRight().getValue();//
    assertEquals("Unexpected hover ", "org.apache.commons", result);

    assertEquals(logListener.getErrors().toString(), 0, logListener.getErrors().size());
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverThrowable() throws Exception {
    String uriString = ClassFileUtil.getURI(project, "java.lang.Exception");
    IClassFile classFile = JDTUtils.resolveClassFile(uriString);
    String contents = JavaLanguageServerPlugin.getContentProviderManager().getSource(classFile, monitor);
    IDocument document = new Document(contents);
    IRegion region = new FindReplaceDocumentAdapter(document).find(0, "Throwable", true, false, false, false);
    int offset = region.getOffset();
    int line = document.getLineOfOffset(offset);
    int character = offset - document.getLineOffset(line);
    TextDocumentIdentifier textDocument = new TextDocumentIdentifier(uriString);
    Position position = new Position(line, character);
    TextDocumentPositionParams params = new TextDocumentPositionParams(textDocument, position);
    Hover hover = handler.hover(params, monitor);
    assertNotNull(hover);
    assertTrue("Unexpected hover ", !hover.getContents().isEmpty());
}
项目:xtext-core    文件:LanguageServerImpl.java   
@Override
public CompletableFuture<Hover> hover(final TextDocumentPositionParams params) {
  final Function1<CancelIndicator, Hover> _function = (CancelIndicator cancelIndicator) -> {
    final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri());
    final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri);
    IHoverService _get = null;
    if (resourceServiceProvider!=null) {
      _get=resourceServiceProvider.<IHoverService>get(IHoverService.class);
    }
    final IHoverService hoverService = _get;
    if ((hoverService == null)) {
      return IHoverService.EMPTY_HOVER;
    }
    final Function2<Document, XtextResource, Hover> _function_1 = (Document document, XtextResource resource) -> {
      return hoverService.hover(document, resource, params, cancelIndicator);
    };
    return this.workspaceManager.<Hover>doRead(uri, _function_1);
  };
  return this.requestManager.<Hover>runRead(_function);
}
项目:camel-language-server    文件:HoverProcessor.java   
public CompletableFuture<Hover> getHover(Position position) {
    try {
        ParserFileHelper parserFileHelper = new ParserFileHelper();
        if(parserFileHelper.getCorrespondingCamelNodeForCompletion(textDocumentItem, position.getLine()) != null){
            String camelComponentUri = parserFileHelper.getCamelComponentUri(textDocumentItem, position);
            String componentName = StringUtils.asComponentName(camelComponentUri);
            if (componentName != null) {
                return camelCatalog.thenApply(new HoverFuture(componentName));
            }
        }
    } catch (Exception e) {
        LOGGER.error("Error searching hover", e);
    }
    return CompletableFuture.completedFuture(null);
}
项目:camel-language-server    文件:HoverFuture.java   
@Override
public Hover apply(CamelCatalog camelCatalog) {
    Hover hover = new Hover();
    ComponentModel componentModel = ModelHelper.generateComponentModel(camelCatalog.componentJSonSchema(componentName), true);
    hover.setContents(Collections.singletonList((Either.forLeft(componentModel.getDescription()))));
    return hover;
}
项目:camel-language-server    文件:CamelLanguageServerHoverTest.java   
@Test
public void testDontProvideDocumentationOnHoverForBadPlaces() throws Exception {
    CamelLanguageServer camelLanguageServer = initializeLanguageServer("<from uri=\"ahc:httpUri\" xmlns=\"http://camel.apache.org/schema/spring\"></from>\n");

    TextDocumentPositionParams position = new TextDocumentPositionParams(new TextDocumentIdentifier(DUMMY_URI), new Position(0, 4));
    CompletableFuture<Hover> hover = camelLanguageServer.getTextDocumentService().hover(position);

    assertThat(hover.get()).isNull();
}
项目:vscode-javac    文件:Hovers.java   
public static Hover hoverText(Element el, Javadocs docs) {
    Optional<String> doc = docs.doc(el).map(Hovers::commentText).map(Javadocs::htmlToMarkdown);
    String sig = signature(el);
    String result =
            doc.map(text -> String.format("```java\n%s\n```\n%s", sig, text)).orElse(sig);

    return new Hover(Collections.singletonList(Either.forLeft(result)), null);
}
项目:eclipse.jdt.ls    文件:HoverHandler.java   
public Hover hover(TextDocumentPositionParams position, IProgressMonitor monitor) {
    ITypeRoot unit = JDTUtils.resolveTypeRoot(position.getTextDocument().getUri());

    List<Either<String, MarkedString>> content = null;
    if (unit != null && !monitor.isCanceled()) {
        content = computeHover(unit, position.getPosition().getLine(), position.getPosition().getCharacter(), monitor);
    }
    Hover $ = new Hover();
    $.setContents(content);
    return $;
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverInheritedJavadoc() throws Exception {
    // given
    // Hovers on the overriding foo()
    String payload = createHoverRequest("src/java/Bar.java", 22, 19);
    TextDocumentPositionParams position = getParams(payload);

    // when
    Hover hover = handler.hover(position, monitor);

    // then
    assertNotNull(hover);
    String result = hover.getContents().get(1).getLeft();//
    assertEquals("Unexpected hover ", "This method comes from Foo", result);
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverOverNullElement() throws Exception {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);
    StringBuilder buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("import javax.xml.bind.Binder;\n");
    buf.append("public class E {}\n");
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", buf.toString(), false, null);
    Hover hover = getHover(cu, 1, 8);
    assertNotNull(hover);
    assertEquals(1, hover.getContents().size());
    assertEquals("Unexpected hover ", "javax", hover.getContents().get(0).getRight().getValue());
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
@Test
public void testHoverUnresolvedType() throws Exception {
    importProjects("eclipse/unresolvedtype");
    project = WorkspaceHelper.getProject("unresolvedtype");
    handler = new HoverHandler(preferenceManager);
    //given
    //Hovers on the IFoo
    String payload = createHoverRequest("src/pckg/Foo.java", 2, 31);
    TextDocumentPositionParams position = getParams(payload);

    // when
    Hover hover = handler.hover(position, monitor);
    assertNotNull(hover);
    assertTrue("Unexpected hover ", hover.getContents().isEmpty());
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
/**
 * @param cu
 * @return
 */
private String getTitleHover(ICompilationUnit cu, int line, int character) {
    // when
    Hover hover = getHover(cu, line, character);

    // then
    assertNotNull(hover);
    MarkedString result = hover.getContents().get(0).getRight();
    return result.getValue();
}
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String _toExpectation(final Hover it) {
  StringConcatenation _builder = new StringConcatenation();
  String _expectation = this.toExpectation(it.getRange());
  _builder.append(_expectation);
  _builder.newLineIfNotEmpty();
  String _expectation_1 = this.toExpectation(it.getContents());
  _builder.append(_expectation_1);
  _builder.newLineIfNotEmpty();
  return _builder.toString();
}
项目:xtext-core    文件:HoverService.java   
protected Hover hover(final HoverContext context) {
  if ((context == null)) {
    return IHoverService.EMPTY_HOVER;
  }
  final List<Either<String, MarkedString>> contents = this.getContents(context);
  if ((contents == null)) {
    return IHoverService.EMPTY_HOVER;
  }
  final Range range = this.getRange(context);
  if ((range == null)) {
    return IHoverService.EMPTY_HOVER;
  }
  return new Hover(contents, range);
}
项目:che    文件:DtoConversionTest.java   
@Test
public void testEitherConversion() {
  Either<String, MarkedString> either1 = Either.forLeft("foobar");
  Either<String, MarkedString> either2 = Either.forLeft("bar");
  List<Either<String, MarkedString>> entries = Arrays.asList(either1, either2);
  Hover hover = new Hover(entries, new Range(new Position(0, 1), new Position(2, 3)));

  HoverDto originalDto = new HoverDto(hover);
  Assert.assertTrue(reflectionEquals(originalDto, hover));
  String jsonString = originalDto.toJson();
  HoverDto convertedDto = HoverDto.fromJson(jsonString);
  Assert.assertTrue(reflectionEquals(originalDto, convertedDto));
}
项目:che    文件:HoverProvider.java   
private String renderContent(Hover hover) {
  List<String> contents = new ArrayList<>();
  for (Either<String, MarkedString> dto : hover.getContents()) {
    if (dto.isLeft()) {
      // plain markdown text
      contents.add(dto.getLeft());
    } else {
      contents.add(dto.getRight().getLanguage());
      contents.add(dto.getRight().getValue());
    }
  }
  return Joiner.on("\n\n").join(contents);
}
项目:camel-language-server    文件:CamelTextDocumentService.java   
@Override
public CompletableFuture<Hover> hover(TextDocumentPositionParams position) {
    LOGGER.info("hover: " + position.getTextDocument());
    TextDocumentItem textDocumentItem = openedDocuments.get(position.getTextDocument().getUri());
    return new HoverProcessor(textDocumentItem, camelCatalog).getHover(position.getPosition());
}
项目:SOMns-vscode    文件:SomLanguageServer.java   
@Override
public CompletableFuture<Hover> hover(final TextDocumentPositionParams position) {
  // TODO Auto-generated method stub
  return null;
}
项目:eclipse.jdt.ls    文件:JDTLanguageServer.java   
@Override
public CompletableFuture<Hover> hover(TextDocumentPositionParams position) {
    logInfo(">> document/hover");
    HoverHandler handler = new HoverHandler(this.preferenceManager);
    return computeAsync((cc) -> handler.hover(position, toMonitor(cc)));
}
项目:eclipse.jdt.ls    文件:HoverHandlerTest.java   
private Hover getHover(ICompilationUnit cu, int line, int character) {
    String payload = createHoverRequest(cu, line, character);
    TextDocumentPositionParams position = getParams(payload);
    return handler.hover(position, monitor);
}
项目:xtext-core    文件:HoverTestConfiguration.java   
@Pure
public Procedure1<? super Hover> getAssertHover() {
  return this.assertHover;
}
项目:xtext-core    文件:HoverTestConfiguration.java   
public void setAssertHover(final Procedure1<? super Hover> assertHover) {
  this.assertHover = assertHover;
}
项目:xtext-core    文件:HoverService.java   
@Override
public Hover hover(final Document document, final XtextResource resource, final TextDocumentPositionParams params, final CancelIndicator cancelIndicator) {
  final int offset = document.getOffSet(params.getPosition());
  final HoverContext context = this.createContext(document, resource, offset);
  return this.hover(context);
}
项目:lsp4j    文件:MockLanguageServer.java   
@Override
public CompletableFuture<Hover> hover(TextDocumentPositionParams position) {
    throw new UnsupportedOperationException();
}
项目:che    文件:MavenTextDocumentService.java   
@Override
public CompletableFuture<Hover> hover(TextDocumentPositionParams position) {
  return null;
}
项目:SOMns-vscode    文件:TextDocumentService.java   
/**
 * The hover request is sent from the client to the server to request hover
 * information at a given text document position.
 * 
 * Registration Options: TextDocumentRegistrationOptions
 */
@JsonRequest
CompletableFuture<Hover> hover(TextDocumentPositionParams position);
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String toExpectation(final Object it) {
  if (it instanceof Integer) {
    return _toExpectation((Integer)it);
  } else if (it instanceof List) {
    return _toExpectation((List<?>)it);
  } else if (it instanceof DocumentHighlightKind) {
    return _toExpectation((DocumentHighlightKind)it);
  } else if (it instanceof String) {
    return _toExpectation((String)it);
  } else if (it == null) {
    return _toExpectation((Void)null);
  } else if (it instanceof Map) {
    return _toExpectation((Map<Object, Object>)it);
  } else if (it instanceof CodeLens) {
    return _toExpectation((CodeLens)it);
  } else if (it instanceof ColoringInformation) {
    return _toExpectation((ColoringInformation)it);
  } else if (it instanceof Command) {
    return _toExpectation((Command)it);
  } else if (it instanceof CompletionItem) {
    return _toExpectation((CompletionItem)it);
  } else if (it instanceof DocumentHighlight) {
    return _toExpectation((DocumentHighlight)it);
  } else if (it instanceof Hover) {
    return _toExpectation((Hover)it);
  } else if (it instanceof Location) {
    return _toExpectation((Location)it);
  } else if (it instanceof Position) {
    return _toExpectation((Position)it);
  } else if (it instanceof Range) {
    return _toExpectation((Range)it);
  } else if (it instanceof SignatureHelp) {
    return _toExpectation((SignatureHelp)it);
  } else if (it instanceof SymbolInformation) {
    return _toExpectation((SymbolInformation)it);
  } else if (it instanceof TextEdit) {
    return _toExpectation((TextEdit)it);
  } else if (it instanceof WorkspaceEdit) {
    return _toExpectation((WorkspaceEdit)it);
  } else if (it instanceof Either) {
    return _toExpectation((Either<?, ?>)it);
  } else {
    throw new IllegalArgumentException("Unhandled parameter types: " +
      Arrays.<Object>asList(it).toString());
  }
}
项目:xtext-core    文件:IHoverService.java   
/**
 * callback for 'textDocument/hover' requests.
 */
public abstract Hover hover(final Document document, final XtextResource resource, final TextDocumentPositionParams params, final CancelIndicator cancelIndicator);
项目:lsp4j    文件:TextDocumentService.java   
/**
 * The hover request is sent from the client to the server to request hover
 * information at a given text document position.
 * 
 * Registration Options: TextDocumentRegistrationOptions
 */
@JsonRequest
CompletableFuture<Hover> hover(TextDocumentPositionParams position);
项目:che    文件:TextDocumentServiceClient.java   
/**
 * GWT client implementation of {@link TextDocumentService#hover(TextDocumentPositionParams)}
 *
 * @param params
 * @return
 */
public Promise<Hover> hover(TextDocumentPositionParams params) {
  return transmitDtoAndReceiveDto(params, "textDocument/hover", Hover.class);
}