Skip to content

Java Navigation v0.0.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Nov 04:56
· 3 commits to main since this release
4bc54ea

兼容性:按插件契约 v0(schemaVersion 0、pluginAPIVersion 0)编写,需要新版 Lithe 桌面端(desktop-v* 预发布)。旧版 macOS Lithe 无法安装。

0.0.1 是首个版本:不依赖 JDT LS 的轻量 Java 跳转,按插件契约 v0 编写。

功能:

  • 跳转到定义:类型、方法、构造器、字段、枚举常量、局部变量、参数、类型参数、注解及其属性;按导入、同包、通配导入、嵌套、继承链、参数个数和实参类型解析,支持调用链和 Foo.<T>bar()。
  • Lombok:访问器跳到字段,@Builder、@Slf4j 和构造器注解生成的成员跳到注解。
  • 跳进本机 JDK 的 src.zip,并能在 JDK 源码里继续跳;JDK 源码以只读副本打开,放在插件状态目录里。
  • 跳进 Maven 依赖库:从工作区的 pom.xml、父 POM、BOM 和本地仓库的 POM 按 Maven 的规则找出依赖 jar(不运行 Maven、不联网),
    有 -sources.jar 打开源码,没有就打开从 .class 生成的签名存根;每个类第一次用到时才读取,副本同样只读、放在插件状态目录里。
  • 没有 Maven 的老项目(Ant、Eclipse、MyEclipse):读 .classpath 列出的 jar 和 lib/、WEB-INF/lib 里的 jar,jar 只读、不修改。
  • 一条声明里的多个变量(int i = 0, size = s.length();)都能跳。
  • 生成代码(target/generated-sources、Gradle 的 build/generated)也进索引。
  • 字符串字面量、类字面量、Iface.super 和 Lombok log 字段后面的调用能继续跳。
  • 查找引用:只列出能跳回该声明的出现。
  • 文档结构(大纲)。
  • 在 Nacos 上和 JDT LS 对比 4500 个位置,4481 个跳到同一处,能跳转的比例 98.2%–99.3%(JDT LS 98.5%–99.5%);
    ruoyi-vue-pro 98.4%–98.5%;JFinal、Nutz、Solon、Ant、Struts 1、JForum 2 为 96.5%–99.3%,目标全部核对无误。跳转 p50 约 0.1 ms,常驻内存 60–90 MiB(JDT LS 约 3 GB)。
  • 打开的文件按编辑器里未保存的内容索引。

平台:macOS(Apple Silicon、Intel)、Windows(x64、ARM64),每个平台一个 ZIP。

权限:languageServer.launch。

限制:Gradle 项目的依赖库还读不了,本地仓库没有的 jar 跳不进去;没有 lambda 参数和泛型替换的类型推断;不要与 Java Support(JDT LS)同时启用。
--no-dependencies 关闭依赖库跳转。

兼容性:

  • 只能装进新版 Lithe 桌面端(desktop-v* 预发布),旧版 macOS Lithe 无法安装。
  • 本版本是预发布,Lithe Store 的自动追踪会跳过它。

安装:预发布版本,Lithe Store 自动追踪会跳过,暂不收录 Store。下载与你的系统和芯片对应的 ZIP,在 设置 → 插件 中点击页面标题栏右侧的 从文件安装…,选中 ZIP 后核对 SHA-256 并确认。

SHA-256:

java-navigation-0.0.1-darwin-arm64.zip 9df3eaa3d4411de57aeae80c2a3541a47325ad29bc117172915523911aaa85d9
java-navigation-0.0.1-darwin-x64.zip 55cf6c553cafc3940ebb8a90508e3faa7aaf3f86987bceea5d2e9e5181d46fa7
java-navigation-0.0.1-windows-x64.zip 3a85837618cb31891f17451e3eab25f26d92a238a4337d8a7b916bb6a84a7181
java-navigation-0.0.1-windows-arm64.zip a4e8a8abbcfcdee3f6cb3364c50b01ba93c070ecdd519a46b3ac4c98e4704a54