Skip to main content

Metals v1.5.0 - Strontium

· 7 min read

We're happy to announce the release of Metals v1.5.0, which brings an array of bugfixes and improvements as we keep working on Metals stability.

Commits since last release85
Merged PRs61
Contributors11
Closed issues18
New features2

For full details: https://github.com/scalameta/metals/milestone/75?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

Support for 2.13.16

With the new release comes support for Scala 2.13.16. You can read release highlighs in [the Scala 2.13.16 release notes] the Scala 2.13.16 release notes.

Fix for Metals stopped compiling bug

Previous versions of Metals could sometimes stop compiling the code and fail to report any new errors. This bug was related to a feature, where Metals would pause compilation when focusing out of editor Window. The feature was removed completely, since there was little benefit from it and it was tricky to make it work. If you experienced this bug or a similar one, let us know if this release fixes in for you. Thanks go to tgodzik for debugging this issue.

Error reports improvements

In one of the previous versions of Metals we added mechanisms to save error reports under .metals/.reports. In case an error was more prominent it could create a large number of duplicate reports.

Now, the reports will be deduplicated properly and the information about created ones will be logged to improve their visibility. As previously, full list of generated reports is visible in the Metals doctor and the .metals/.reports directory.

Inlay hints for worksheets

Starting from this release, worksheet decorations will be displayed using inlay hints instead of the previous custom solution. This will make worksheet support available for editors that don't implement this extension (e.g. Zed). Thanks tgodzik for implementing this transition.

Miscellaneous

  • bugfix: correctly set excludedPackages on startup harpocrates
  • bugfix: don't show incorrect docs for inner methods kasiaMarek
  • bugfix: add support for -native suffix in .mill-version lolgab
  • improvement: add $ as a trigger character for completions harpocrates
  • bugfix: completion of args in method w/ default args harpocrates
  • bugfix: syntax for worksheet imports btrachey
  • bugfix: workaround for hover for multi declaraction in Scala 3 kasiaMarek
  • bugfix: make inlay hint resolve not dependant on didFocus, which is a part of Metals custom protocol and not supported by all editors kasiaMarek
  • improvement: make folding regions more consistent and allow for custom setting of folding threshold kasiaMarek
  • improvement: handle incorrect scalafmtConfigPath gracefully Austinito
  • improvement: if no mode chosen by the client, use log for bsp status by default tgodzik
  • bugfix: skip using directives for auto import position when missing newline kasiaMarek
  • improvement: use presentation compiler as first strategy for go to definition kasiaMarek
  • feature: infer base package for package ralated functionalities harpocrates
  • feature: add switch build server button to Build Commands section tgodzik
  • improvement: suggest bsp switch if bloopInstall fails kasiaMarek

Contributors

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

$ git shortlog -sn --no-merges v1.4.2..v1.5.0
31 Tomasz Godzik
26 Scalameta Bot
16 kasiaMarek
4 Alec Theriault
2 Austinito
1 Adrien Piquerez
1 Anton Sviridov
1 Brian Tracey
1 Lorenzo Gabriele
1 Timothy John Perisho Eccleston
1 dependabot[bot]

Merged PRs

v1.5.0 (2025-01-22)

Full Changelog

Merged pull requests: