Metals v1.5.0 - Strontium
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 release | 85 |
Merged PRs | 61 |
Contributors | 11 |
Closed issues | 18 |
New features | 2 |
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
- Fix for Metals stopped compiling bug
- Error reports improvements
- Inlay hints for worksheets
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)
Merged pull requests:
- chore: Update Bloop to 2.0.8 #7144 (tgodzik)
- typo in vscode.md #7146 (combinatorist)
- update scala-debug-adapter and sbt-jdi-tools #7143 (adpi2)
- improvement: suggest bsp switch if bloopInstall fails + clean up sbt bloop plugins #7125 (kasiaMarek)
- build(deps): Update scalafmt-core from 3.8.3 to 3.8.5 #7139 (scalameta-bot)
- build(deps): Update bloop-config from 2.2.0 to 2.3.1 #7128 (scalameta-bot)
- Infer base package in
PackageProvider
#7107 (harpocrates) - improvement: Add switch command to metals tab #7126 (tgodzik)
- build(deps): Update scalafix-interfaces from 0.13.0 to 0.14.0 #7131 (scalameta-bot)
- build(deps): Update flyway-core from 11.1.1 to 11.2.0 #7132 (scalameta-bot)
- build(deps): Update sbt-scalafix from 0.12.1 to 0.14.0 #7130 (scalameta-bot)
- bugfix: Fix release workflow to use sbt action #7134 (tgodzik)
- bugfix: Fix release and sbt dependency graph workflows #7121 (tgodzik)
- chore: Update Bloop to 2.0.7 #7127 (tgodzik)
- improvement: use pc for go to def when stale semanticdb #7028 (kasiaMarek)
- fix: skip using directives for auto import position when missing newline #7094 (kasiaMarek)
- bugfix: fix incorrect
excludedPackages
on startup #7120 (harpocrates) - fix: don't show incorrect docs for inner methods #7096 (kasiaMarek)
- Add
$
as a trigger character #7118 (harpocrates) - build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.3 to 3.16.0 #7110 (scalameta-bot)
- docs: fix syntax for worksheet imports #7113 (btrachey)
- chore: Add support for Scala 2.13.16 #7106 (tgodzik)
- Support
-native
suffix in.mill-version
#7109 (lolgab) - build(deps): Update munit from 1.0.3 to 1.0.4 #7111 (scalameta-bot)
- build(deps): Update interface from 1.0.26 to 1.0.27 #7101 (scalameta-bot)
- build(deps): Update coursier, ... from 2.1.23 to 2.1.24 #7100 (scalameta-bot)
- build(deps): Update ujson from 4.0.2 to 4.1.0 #7099 (scalameta-bot)
- build(deps): Update protobuf-java from 4.29.2 to 4.29.3 #7098 (scalameta-bot)
- build(deps): Update flyway-core from 11.1.0 to 11.1.1 #7102 (scalameta-bot)
- bugfix: Remove pausing and window state monitoring #7097 (tgodzik)
- bugfix: completion of args in method w/ default args #7089 (harpocrates)
- improvement: Don't sent text on didSave #7015 (tgodzik)
- improvement: deduplicate reports #7048 (kasiaMarek)
- build(deps): Update sbt-welcome from 0.4.0 to 0.5.0 #7087 (scalameta-bot)
- improvement: report QDox errors #7051 (kasiaMarek)
- improvement: Change the warning to be less worrying to users #7085 (tgodzik)
- Refactor
validateWorkspace
to handle missing customscalafmtConfigPath
gracefully and log warning #7080 (Austinito) - build(deps-dev): bump @types/node from 22.8.6 to 22.10.3 in /website #7081 (dependabot[bot])
- build(deps): Update coursier, ... from 2.1.22 to 2.1.23 #7076 (scalameta-bot)
- improvement: Allow sbt BSP to run on earlier JDK #7058 (tgodzik)
- build(deps): Update sbt, scripted-plugin from 1.10.6 to 1.10.7 #7068 (scalameta-bot)
- build(deps): Update scalameta, semanticdb-metap, ... from 4.12.2 to 4.12.3 #7069 (scalameta-bot)
- build(deps): Update scalameta, semanticdb-metap, ... from 4.12.1 to 4.12.2 #7061 (scalameta-bot)
- chore: Remove parallel collection since they are unused #7062 (tgodzik)
- build(deps): Update bloop-config from 2.1.0 to 2.2.0 #7059 (scalameta-bot)
- build(deps): Update protobuf-java from 4.29.1 to 4.29.2 #7055 (scalameta-bot)
- build(deps): Update sbt-ci-release from 1.9.0 to 1.9.2 #7053 (scalameta-bot)
- build(deps): Update guava from 33.3.1-jre to 33.4.0-jre #7054 (scalameta-bot)
- bugfix: Log message by default #7052 (tgodzik)
- build(deps): Update coursier, ... from 2.1.21 to 2.1.22 #7057 (scalameta-bot)
- fix: scala 2 additional checks #7039 (kasiaMarek)
- Cross-build sbt-metals for sbt2 #7045 (keynmol)
- fix: workaround for hover for multi declaraction (Scala 3) #7037 (kasiaMarek)
- bugfix: Fix Metals for 2.13.16 #7047 (tgodzik)
- improvement: Use inlay hints for worksheets #6827 (tgodzik)
- chore: Fix author link after recent changes #7043 (tgodzik)
- docs: Add release notes for Metals 1.4.2 #7030 (tgodzik)
- build(deps): Update giter8 from 0.16.2 to 0.17.0 #7033 (scalameta-bot)
- build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.15.2 to 3.15.3 #7032 (scalameta-bot)
- improvement: thresholds for folding regions #7013 (kasiaMarek)
- improvement: make
inlayHints/resolve
not depend on focused document #7016 (kasiaMarek)