Skip to main content

Metals v1.6.8 - Osmium

· 18 min read

We're happy to announce the release of Metals v1.6.8, which includes a few long-awaited features. It's also worth mentioning that we are working on a new iteration of Metals (v2), which will change some important things about how Metals works. You can already try out the latest milestone v2.0.0-M16.

Commits since last release140
Merged PRs119
Contributors16
Closed issues21
New features3

For full details: https://github.com/scalameta/metals/milestone/87?closed=1

Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed, Helix and Sublime Text. Metals is developed at the Scala Center and VirtusLab with the help from contributors from the community.

TL;DR

Check out https://scalameta.org/metals/, and give Metals a try!

Add scalafix diagnostics

Thanks to warcholjakub it's now possible to see scalafix diagnostics in the editor from any linting rule. They are disabled by default, but you can enable them by setting metals.scalafixLintEnabled to true in your editor settings.

Use javac-based parser for Java source indexing

For a long time, Metals used the QDox project to parse Java source code and provide some of the features when dealing with Java files and dependencies. These features could include providing javadocs or finding exact definition within a Java source file.

However, QDox is no longer well maintained and thanks to rkophs we now use the default javac parser to parse Java source code. This should make sure that we always support the latest Java syntax and will avoid any issues with incompatibilities between the different Java parsers.

Support for JUnit 5 tests

JUnit 5 support has been a long-awaited feature for many users. It should finally be supported in all the build servers including Bloop using the Jupiter interface.

Also, thanks to Leon0402 it's now possible to discover individual JUnit 5 tests and run them.

Miscellaneous

  • improvement: Forward repository credentials to Bloop #8297 (tgodzik)
  • bugfix: Java toplevel indexer support for multiline text blocks #8296 (tgodzik)
  • bugfix: Include jvm properties from build server when running tests via MCP #8308 (tgodzik)
  • bugfix: Always return MCP diagnostics even if compilation was cancelled #8324 (tgodzik)
  • feature: Add support for Deder build tool #8343 (sake92)
  • refactor: Update KiloCode configuration metadata #8365 (cheleb)
  • improvement: Expose go to log to be used in command palette #8448 (tgodzik)
  • bugfix: Prefer a custom .bsp build server over a stray .bloop directory #8465 (jozanek)
  • bugfix: Expand implicit materializer macros in the presentation compiler #8464 (jozanek)
  • improvement: Send real document version in rename edits instead of null #8456 (jozanek)
  • bugfix: Don't truncate debug console output when the JVM exits #8463 (jozanek)
  • bugfix: Add into soft modifier #8506 (tgodzik)
  • bugfix: let user-provided jvmOptions take precedence over build server ones in shell command #8518 (jozanek)
  • improvement: Only run bloopInstall on import when importing via Metals #8538 (tgodzik)
  • feature: add support for Codex CLI MCP config #8540 (greshny)
  • bugfix: Resolve double-encoded jar URIs for JDK sources when debugging on Windows #8549 (jozanek)
  • bugfix: retry completions when the qualifier loses its type to error recovery #8514 (jozanek)
  • improvement: parse scaladoc wiki links with a shared backtick/nesting-aware parser #8676 (jozanek)
  • bugfix: Handle Java raw types in override completions #8489 (jozanek)
  • bugfix: pass build server jvmOptions when running or debugging within the Metals server #8556 (jozanek)

Contributors

Big thanks to everybody who contributed to this release or reported an issue!

$ git shortlog -sn --no-merges v1.6.7..v1.6.8
43 Scala Steward
23 Tomasz Godzik
16 dependabot[bot]
10 Myroslav
9 Jozef Koval
3 Sakib Hadziavdic
2 Albert Meltzer
2 Olivier NOUGUIER
2 copilot-swe-agent[bot]
1 Jakub Warchoł
1 Leon De Andrade
1 Roman Greschni
1 Ryan Kophs
1 Simon Schenk
1 damiankus-vl
1 kenji yoshida

v1.6.8 (2026-07-21)

Full Changelog

Merged pull requests: