Metals v1.3.3 - Thallium
We're happy to announce the release of Metals v1.3.3, which brings a number of long awaited bugfixes and some new features.
Commits since last release | 41 |
Merged PRs | 37 |
Contributors | 3 |
Closed issues | 15 |
New features | 3 |
For full details: https://github.com/scalameta/metals/milestone/69?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!
- Index implementations in JDK sources
- Value completions for union types
- Allow debugging for all build servers
Index implementations in JDK sources
Since Metals v1.3.0 it's possible to search for implementations of classes or classes' members inside the dependency sources. However, this wasn't enabled for JDK sources as it added a substantial amount of indexing time even in smaller projects.
In this version of Metals we added a central database that can be found under
the .metals
directory in user home, which contains shared indexes of JDK
sources thus avoiding a need to index them more than once on any given machine.
This great improvement was added by kasiaMarek
Value completions for union types
Union types are a new feature in Scala 3 that allows types to be combined when we need to specify that certain value can be of more than one type.
For example we can have:
val a: Int | String = "Hello!"
val b: Int | String = 123
In this version of Metals kasiaMarek added support for value completions where union types are unions of specific literal types. If used together with intersection types it will still work as expected.
The feature will work on latest LTS and Next Scala versions as it required some work upstream in the compiler itself.
Allow debugging for all build servers
For a long while it was possible to debug your code only when using Metals with Bloop or sbt server. This was caused by the fact that debugging was implemented in a separate library and would require additional data from the build tools.
In this version we were able to work around that and bring debugging capabilities to Metals in case a server doesn't provide debugging by itself. Unfortunately, in those cases hot code reload will not be available.
This should work both for main classes and tests.
Since this is quite a new feature please do let us know about any issues.
This is another great feature was brought by kasiaMarek.
Miscellaneous
- bugfix: correctly resolve project's java in doctor and problem resolver kasiaMarek
- bugfix: Don't use -X options in .jvmopts for tests tgodzik
- bugfix: auto import for really long names kasiaMarek
- bugfix: Queue references calls to prevent OOM kasiaMarek
- bugfix: MAke convert to named args for
extends
kasiaMarek - bugfix: Show errors for Scala 3 in Bazel correctly tgodzik
- bugfix: change project ref setting to support VSCode workspace folder reload kasiaMarek
- bugfix: use already imported package aliases for auto import kasiaMarek
- bugfix: clear diagnostics after close for single file kasiaMarek
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v1.3.2..v1.3.3
16 Katarzyna Marek
16 Tomasz Godzik
7 Scalameta Bot
Merged PRs
v1.3.3 (2024-07-12)
Merged pull requests:
- fix: clear diagnostics after close for single file #6576 (kasiaMarek)
- fix: correctly get build target deps for DAP #6580 (kasiaMarek)
- chore: Try to use intransitive instead #6573 (tgodzik)
- chore: Bump Bloop to 1.6.0 #6574 (tgodzik)
- fix: use already imported package aliases for auto import #6575 (kasiaMarek)
- bugfix: Bump scala debug adapter #6568 (tgodzik)
- bugfix: Don't search for stacktrace line if at word is not present #6555 (tgodzik)
- bugfix: Don't calculate digest every time build tool is used #6561 (tgodzik)
- fix: change project ref setting to support VSCode workspace folder reload #6563 (kasiaMarek)
- bugfix: Use latest stable mill version #6566 (tgodzik)
- feat: run DAP for test suites in Metals #6551 (kasiaMarek)
- chore: move mill test to newest mill version #6562 (kasiaMarek)
- bugfix: Fix tests after circe released version for 0.5 #6560 (tgodzik)
- build(deps): Update bloop-config from 1.5.5 to 2.0.2 #6534 (scalameta-bot)
- bugfix: Show errors for Scala 3 in Bazel correctly #6556 (tgodzik)
- chore: Bump local search to fix it #6554 (tgodzik)
- improvement: Don't query database on each format #6550 (tgodzik)
- add test for
@
in path for Windows #6545 (kasiaMarek) - build(deps): Update protobuf-java from 4.27.1 to 4.27.2 #6546 (scalameta-bot)
- build(deps): Update ammonite-util from 3.0.0-M2-12-951bbc1e to 3.0.0-M2-13-23a8ef64 #6547 (scalameta-bot)
- build(deps): Update cli_3, scala-cli-bsp from 1.3.2 to 1.4.0 #6548 (scalameta-bot)
- improvement: add debug adapter for running main class to metals #6383 (kasiaMarek)
- fix: convert to named args for
extends
#6537 (kasiaMarek) - Queue pc references calls to prevent OOM #6539 (kasiaMarek)
- fix: cover additional cases for singleton types #6541 (kasiaMarek)
- chore: update
MillVersionSuite
inTestGroups
#6543 (kasiaMarek) - fix: don't pass mill version as arg to command line #6542 (kasiaMarek)
- fix: auto import for really long names #6531 (kasiaMarek)
- build(deps): Update semanticdb-java from 0.9.10 to 0.10.0 #6536 (scalameta-bot)
- bugfix: Always require _ to calculate scala version from jar #6538 (tgodzik)
- bugfix: Don't use everything in .jvmopts for tests #6526 (tgodzik)
- feat: add value completions for union types #6498 (kasiaMarek)
- build(deps): Update scalameta, semanticdb-scalac, ... from 4.9.6 to 4.9.7 #6530 (scalameta-bot)
- build(deps): Update ammonite-util from 3.0.0-M2-11-713b6963 to 3.0.0-M2-12-951bbc1e #6528 (scalameta-bot)
- improvement: add jdk indexing #6481 (kasiaMarek)
- fix: correctly resolve project's java in doctor and problem resolver #6517 (kasiaMarek)
- docs: release notes v1.3.2 #6518 (kasiaMarek)