Skip to main content

Metals v0.10.1 - Tungsten

· 7 min read

We're happy to announce the release of Metals v0.10.1, which mainly concentrated on bugfixes together with a couple of smaller improvements. We also added support for the almost ready Scala 3 version 3.0.0-RC2. Its final release is coming soon and Metals will try to make it an amazing experience!

Commits since last release173
Merged PRs86
Contributors9
Closed issues29
New features2

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

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

TL;DR

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

  • Support for Scala 3.0.0-RC2
  • Smoother main and test discovery

Smoother main and test discovery

Thanks to some great ideas (and obviously execution) by @ckipp01 it is now possible to specify alternative debug parameters that enable users to:

  • Run the main class in the current file, or in case that there are multiple main classes quick pick window will appear for the users to choose the exact main class to run.
  • Run all tests in the current file.
  • Run all tests in the current target.

To make that work some additional fields must be sent while starting the debug session:

  • path - uri to the file that is currently open.
  • runType - enum value that can either be run, testFile or testTarget

The "args", "jvmOptions", "env", and "envFile" are all valid keys that can be sent as well with the same format as usual.

In VS Code this is achieved via 3 new commands, that can easily bound to shortcuts:

  • metals.run-current-file - run main classes in the current file
  • metals.test-current-file - run test classes in the current file
  • metals.test-current-target - run test classes in the current target

More information can be found in the Debug Adapter Protocol section of the documentation.

Miscellaneous

  • Support for Ammonite scripts using Scala 2.12.13 and 2.13.5.
  • Fix outline for documents with Scala 3 syntax.
  • Remove println that would sometimes print files while indexing them :(
  • Show an error when user adds bad dependency into a worksheet.
  • Fix issues on Windows with renames not being applied on current file.
  • Change project directory to lower case when using New Scala Project.
  • Renaming renamed imports now works correctly within a file.
  • Fix renaming named parameters in constructors.
  • Find alternative symbol references (such as companion object for a case class) when not searching from the definition file.
  • Automatically backtick symbols when renaming.
  • Fix highlighting overloaded methods.
  • Fix classloader issues when using worksheets.
  • Fix issue where override was inserted twice for symbols that were already overriden.
  • Infer type for higher kinded functions correctly.
  • Show better type decorations for higher kinded types.
  • Improve indexing of Scala 3 sources, a lot of hard work by @dos65!

Contributors

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

$ git shortlog -sn --no-merges v0.10.0..v0.10.1
Tomasz Godzik
Chris Kipp
Vadim Chelyshov
AJ Zawawi
Alexandre Archambault
Arthur McGibbon
Eric Peters
Greg Atkinson
Michał Bednarz

Merged PRs

v0.10.1 (2021-04-06)

Full Changelog

Merged pull requests: