【问题标题】:How to show Javadoc of a imported library when hovering on its methods and classes?将鼠标悬停在其方法和类上时如何显示导入库的 Javadoc?
【发布时间】:2021-03-26 05:16:09
【问题描述】:

如标题中所述。我们目前正在使用JSFML和Swing开发一个项目,我想在VSCode中查看JSFML的Javadoc。但是,当我尝试将鼠标悬停以显示 Javadoc 时,它并没有,而是只向我抛出了一条简单的线。

例如:我使用 JSFML 的包之一,图形(类RenderWindow)构建了一个renderWindow,并尝试悬停。它向我展示了这一点:

org.jsfml.graphics.RenderWindow.RenderWindow(VideoMode arg0, String arg1)

而不是它的Javadoc。当我进入定义时,我在其类文件的开头看到了这样的注释,而不是 Javadoc:

 // Failed to get sources. Instead, stub sources have been generated by the disassembler.
 // Implementation of methods is unavailable.

如何在 VSCode 中查看它的 Javadoc?或者我实际上是不允许的,因为它受到限制(?)

Link for JSFML here if it helps:

【问题讨论】:

    标签: java visual-studio-code javadoc


    【解决方案1】:

    Molly 的回答解释了为什么 javadoc 不适用于您的 JAR。

    如果您使用的 JSFML 或任何其他 Java 依赖项具有源 jar,VS Code 可以使用它,因此您可以像查看 JDK 一样查看源代码及其 Javadoc。使其在 VS Code 中可见的步骤是:

    在带有附加源的 VS Code 中查看 Javadoc 的步骤

    1. 获取依赖项的源 JAR(例如手动下载、使用 Maven、...)
    2. 在 VS Code 中,点击进入要查看 Javadoc 的类(例如 org.jsfml.graphics.RenderWindow.RenderWindow
    3. 在带有消息Failed to get sources. Instead, stub sources have been generated by the disassembler... 打开的文件中,右键/alt 单击以打开上下文菜单并选择附加源
    4. 选择您之前获得的源 JAR。
    5. Javadoc 和依赖源现在将在 VS Code 中可见,并且 Javadoc 将在悬停时显示。

    步骤截图

    Attach Source in context menu

    Select source jar

    致谢

    这个解决方案最初是在https://github.com/redhat-developer/vscode-java/issues/1855#issuecomment-823142835 中针对类似问题提出的。

    【讨论】:

      【解决方案2】:

      那是因为从官网下载的jar包没有说明。

      如您所见,当我们将鼠标悬停在函数println 上并ctrl+click 以查看其类时,文档字符串和参数信息来自类中的cmets:

      但是,RenderWindow.class 没有这种 cmets,所以 java 扩展只会显示它的包结构:

      它与 VS Code 或 Java 扩展无关,而是 jsfml.jar 本身,您可以查看 JSFML javadoc 以获取更多详细信息。

      【讨论】:

      • 对于 Java 来说,源/文档 JAR 与分发 JAR 分开处理是很常见的。 JSFML确实有 javadoc,它只是不包含在可分发库中,但你可以从 GitHub 下载它并将其与 VS Code 中的 SFML 库关联(虽然我不确定如何)。跨度>
      • 我想告诉你的是,Javadoc 悬停是由 Red Hat 对 Java(TM) 的语言支持提供的,这个扩展将捕获 jar 中的 cmets,然后在你悬停功能,关于你说:“从 GitHub 下载它并与 VS Code 中的 SFML 库关联”,现在无法实现,您可以在vscode-java-pack-issue 中提出功能请求。
      • 也许,但您展示的示例 — PrintStream javadoc — 实际上是 JDK 的一部分,并且 for JDK JARs VS Code does support specifying source JARs。实际上,您的屏幕截图中的示例很可能使用了该功能,因为运行时库没有源代码或 Javadoc。
      • 不管怎样,你链接错了插件,相关的 RedHat 插件在redhat-developer/vscode-java。从我在问题跟踪器中看到的内容来看,此功能 已被支持,例如在 Maven 项目中,您可以添加 javadoc-classified 依赖项。这个答案描述了如何:stackoverflow.com/q/56487969/1968
      • 谢谢大家,我想我会在在线 javadoc 中查看它们...
      猜你喜欢
      • 2022-10-18
      • 1970-01-01
      • 2015-03-06
      • 2017-03-06
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2015-06-06
      • 2022-01-21
      相关资源
      最近更新 更多