如何在将鼠标悬停在其方法和 类 上时显示导入库的 Javadoc?

How to show Javadoc of a imported library when hovering on its methods and classes?

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

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

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

而不是它的 Javadoc。当我进入定义时,我在其 class 文件的开头看到了这样的注释,而不是 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:

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

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

然而,RenderWindow.class没有这种注释,所以java扩展只会显示它的包结构:

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

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

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

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

  1. 获取依赖的源 JAR(例如手动下载,使用 Maven,...)
  2. 在 VS Code 中,单击要查看 Javadoc 的 class(例如 org.jsfml.graphics.RenderWindow.RenderWindow
  3. 在打开消息 Failed to get sources. Instead, stub sources have been generated by the disassembler... 的文件中,right/alt 单击以打开上下文菜单并 select 附加源
  4. Select 您之前获得的源 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 中针对类似问题提出的。