Metals v1.3.1 - Thallium
We're happy to announce the release of Metals v1.3.1, which brings in a couple of useful improvements.
Commits since last release | 74 |
Merged PRs | 64 |
Contributors | 9 |
Closed issues | 27 |
New features | 3 |
For full details: https://github.com/scalameta/metals/milestone/67?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!
Resolve classpath lazily in Bazel
Metals uses Bazel BSP to interact with Bazel itself via the Build Server Protocol. Up until this release, we would eagerly resolve the classpath that is needed for some of the Metals features. However, this caused indexing times to be huge in large Bazel projects as it is expensive to calculate it. To avoid that we now only resolve classpath for targets users are currently working on.
Let us know if you notice any more bottlenecks we can fix!
Replace slowTask
with LSP progress
There are several Language Server Protocol extensions that are used in Metals to
provide features that go outside the LSP standard. This also included
Slow task
extension, but since a couple of LSP releases there has been a
proper progress endpoint available. This is now used in Metals.
This means that editors that did not implement the slow task
extension will
now properly show the progress of tasks running within Metals. For anything that
did implement it, there might be some visual changes. In Visual Studio Code the
progress will be contained at the bottom in the status bar, which can be clicked
on to see all current progress messages. Since, it will also contain all the
current compilation, we removed Ongoing compilations
section from the Metals
view. This is possible thanks to the great work done by
kasiaMarek.
No workspace support
Thanks to kasiaMarek it's now possible to start Metals for a single file without a workspace. Metals will automatically use Scala CLI for such single files to provide as much support as possible including standard LSP features, such as completions, hover and more.
Miscellaneous
- bugfix: remove stale config files before
bloopInstall
for gradle kasiaMarek - improvement: do not throw on failed java indexing kasiaMarek
- bugfix: handle
type T = Object.type
in type hierarchy indexing kasiaMarek - fix: retry calculating build tool digest kasiaMarek
- improvement: don't override bloop java home if version greater or equal kasiaMarek
- bugfix: obey hover
markup kind
capability kasiaMarek - improvement: add worksheet timeout setting kasiaMarek
- bugfix: don't show private apply as a completion kasiaMarek
- fix: try pc symbol before symbol alternatives in go to definition kasiaMarek
- fix: include
inline
when printing param names kasiaMarek - bugfix: Set Path instead of PATH on windows tgodzik
- improvement: remove unused imports on Scala 3.4+ bjaglin
- fix: show implicit param when it is an apply kasiaMarek
- fix: dealias type members in hover kasiaMarek
- improvement: don't start new metals service for project ref kasiaMarek
- fix: import from build tools, that aren't build server providers when using automatic bsp setting kasiaMarek
- fix: send
end progress
if future finished with an exception kasiaMarek
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v1.3.0..v1.3.1
25 Scalameta Bot
22 Tomasz Godzik
21 Katarzyna Marek
1 Brice Jaglin
1 Martin Mauch
1 Vadim Chelyshov
1 dependabot[bot]
1 scalameta-bot
1 tgodzik
Merged PRs
v1.3.1 (2024-05-14)
Merged pull requests:
- bugfix: Don't include target option for PC #6405 (tgodzik)
- chore: Report if target root is missing #6401 (tgodzik)
- bugfix: Don't preemptively load scalafix #6404 (tgodzik)
- improvement: Show progress when fetching classpath #6400 (tgodzik)
- build(deps): Update scala-debug-adapter from 4.0.4 to 4.1.0 #6394 (scalameta-bot)
- build(deps): Update coursier, ... from 2.1.9 to 2.1.10 #6397 (scalameta-bot)
- build(deps): Update cli_3, scala-cli-bsp from 1.3.0 to 1.3.1 #6398 (scalameta-bot)
- build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.4 to 3.13.5 #6396 (scalameta-bot)
- fix: send
end progress
if future finished with an exception #6391 (kasiaMarek) - chore: Bump latest Scala 2.13.x Ammonite version #6392 (tgodzik)
- build(deps): Update ammonite-util from 3.0.0-M1-19-a7973e17 to 3.0.0-M1-24-26133e66 #6395 (scalameta-bot)
- fix: import from build tools, that aren't build server providers when… #6384 (kasiaMarek)
- chore: Bump Bazel BSP to nightly with recent fixes #6388 (tgodzik)
- improvement: delete ongoing compilations from tree view #6385 (kasiaMarek)
- improvement: don't start new metals service for project ref #6285 (kasiaMarek)
- update version in issue template #6386 (dos65)
- fix: show implicit param when it is an apply #6380 (kasiaMarek)
- fix: delias type members in hover #6366 (kasiaMarek)
- build(deps): Update ammonite-util from 3.0.0-M1-10-105f9e32 to 3.0.0-M1-19-a7973e17 #6375 (scalameta-bot)
- build(deps): Update scalafix-interfaces from 0.12.0 to 0.12.1 #6373 (scalameta-bot)
- build(deps): Update guava from 33.1.0-jre to 33.2.0-jre #6374 (scalameta-bot)
- build(deps): Update sbt-scalafix from 0.12.0+5-aba10632-SNAPSHOT to 0.12.1 #6372 (scalameta-bot)
- build(deps): bump @docusaurus/core from 3.2.0 to 3.2.1 in /website #6368 (dependabot[bot])
- improvement: remove unused imports on Scala 3.4+ #6371 (bjaglin)
- chore: Add support for Scala 2.13.14 #6364 (tgodzik)
- bugfix: Set Path instead of PATH on windows #6363 (tgodzik)
- docs: fix information on project's JDK resolution [skip ci] #6343 (kasiaMarek)
- build(deps): Update cli_3, scala-cli-bsp from 1.2.2 to 1.3.0 #6360 (scalameta-bot)
- build(deps): Update munit from 1.0.0-M11 to 1.0.0-RC1 #6354 (scalameta-bot)
- chore: Change mac os to 12, which has sbt enabled #6355 (tgodzik)
- build(deps): Update xnio-nio from 3.8.13.Final to 3.8.14.Final #6353 (scalameta-bot)
- build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.3 to 3.13.4 #6352 (scalameta-bot)
- build(deps): Update munit from 1.0.0-M11 to 1.0.0-M12 #6335 (scalameta-bot)
- fix: try pc symbol before symbol alternatives in go to definition #6344 (kasiaMarek)
- fix: include
inline
when printing param names #6342 (kasiaMarek) - bugfix: don't show private apply as a completion #6341 (kasiaMarek)
- no workspace support #6289 (kasiaMarek)
- improvement: add worksheet timeout setting #6338 (kasiaMarek)
- fix: obey hover
markup kind
capability #6303 (kasiaMarek) - build(deps): Update cli_3, scala-cli-bsp from 1.2.0 to 1.2.2 #6337 (scalameta-bot)
- improvement: don't override bloop java home if version greater or equ… #6339 (kasiaMarek)
- build(deps): Update scalafmt-core from 3.8.0 to 3.8.1 #6336 (scalameta-bot)
- improvement: Remove nightly tests #6330 (tgodzik)
- build(deps): Update scala-xml from 2.2.0 to 2.3.0 #6334 (scalameta-bot)
- fix: retry calculating build tool digest #6329 (kasiaMarek)
- Replace
slowTask
with LSP progress #6144 (kasiaMarek) - build(deps): Update semanticdb-java from 0.9.9 to 0.9.10 #6327 (scalameta-bot)
- docs: Fix links to Typescript code #6323 (nightscape)
- build(deps): Update scribe, scribe-file, scribe-slf4j2 from 3.13.0 to 3.13.3 #6326 (scalameta-bot)
- build(deps): Update requests from 0.8.0 to 0.8.2 #6324 (scalameta-bot)
- build(deps): Update ujson from 3.1.5 to 3.3.0 #6325 (scalameta-bot)
- fix: handle
type T = Object.type
in type hierarchy indexing #6322 (kasiaMarek) - improvement: do not throw on failed java indexing #6321 (kasiaMarek)
- build(deps): Update ammonite-util from 3.0.0-M1-8-35694880 to 3.0.0-M1-10-105f9e32 #6320 (scalameta-bot)
- build(deps): Update protobuf-java from 3.25.3 to 4.26.1 #6319 (scalameta-bot)
- build(deps): Update guava from 33.0.0-jre to 33.1.0-jre #6318 (scalameta-bot)
- build(deps): Update sbt-buildinfo from 0.11.0 to 0.12.0 #6317 (scalameta-bot)
- build(deps): Update scala-debug-adapter from 4.0.2 to 4.0.4 #6316 (scalameta-bot)
- improvement: Lazily resolve classpath #6167 (tgodzik)
- chore: update scala cli tests #6312 (kasiaMarek)
- fix: remove stale config files before
bloopInstall
for gradle #6305 (kasiaMarek) - chore: Update release notes dates #6309 (tgodzik)
- chore: Add release notes for Metals 1.3.0 #6301 (tgodzik)
- docs: update java version documentation [skip ci] #6290 (kasiaMarek)