
JLS v0.4.0 is out: Java 25, faster signatures/references/hover, lower memory
Released v0.4.0 with a major focus on latency and correctness
Upgrades
- Java 25 support across the runtime/build flow
- LSP pull diagnostics support
- Inlay hints support
- Maven compiler compatibility inference (release/source/target)
- Refactored language feature pipeline (provider/index/resolve split)
Performance
- Signature help now resolves through parse + index paths for near-instant feedback
- References path redesigned for faster target resolution and matching
- Full-compilation pressure reduced for high-frequency editor actions
- Dedicated index compiler lane removes contention with interactive requests
- Compile cache behavior tightened to reduce unnecessary refresh work
- Lower memory pressure via reduced compile batch cache and updated JVM defaults
- Pull diagnostics reduces background CPU churn by shifting schedule control to the client
Improvements
- Better Maven compatibility in mixed/legacy setups through automatic compiler flag selection
- Better Lombok handling, including improved behavior when Lombok jars are absent
- More useful inlay hints at call sites with practical noise control
- Completion quality improved for chained and mid-expression typing
- Completion intentionally disabled in comments to avoid noisy suggestions
- Stronger startup/project inference behavior for Maven workspaces
The technical details are present in the release tag
Client: https://github.com/idelice/nvim-jls
Server: https://github.com/idelice/jls
Note: it is highly recommended to use the client to interact with this server.
Edit (important note)
This server is not included in mason or lspconfig for now. Until i meet the requirements, the server and client has to be "manually" configured together. The client contains the steps to do so.
Once the server meets their requirements; i will make sure to add a PR to include it.