Skip to main content

Metals v1.0.1 - Silver

· 8 min read

We're happy to announce the release of Metals v1.0.1, which comes with a couple of exciting new features and stability improvements.

Commits since last release86
Merged PRs78
Contributors13
Closed issues20
New features4

For full details: [https://github.com/scalameta/metals/milestone/59?closed=1] (https://github.com/scalameta/metals/milestone/59?closed=1)

Metals is a language server for Scala that works with VS Code, Vim, Emacs and Sublime Text. 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!

Completions in Java files

Thanks to amazing work done by VankaTaganai and further improvements by tgodzik, you will be able to get completions in Java files. It should make working with Java sources easier, though Metals will not strive to be a full Java language server.

java-completion

Liveness monitor

Up to the current release, users would not be informed if something happened and the build server stopped responding. Thanks to kasiaMarek Metals will now monitor the state of the build server and notify the user if it becomes unresponsive.

not-responsive

Dismissing the notification will dismiss it for the current connection.

Improvements for enums

This release also brings in multiple fixes connected to enums:

  • better highlighting on enum cases
  • improved navigation on enum parameters
  • multiple fixes on enum type parameters

This great work was done by kasiaMarek

enum

Semantic highlighting

Semantic highlighting enables syntax highlighting based on knowledge from the compiler. Thanks to this, users can have specific colors for parameters, methods, mutable vars, packages etc. For the last half year, semantic highlighting was hidden behind a flag, but now we think it's ready to be turned on by default. You can always change this using metals.enableSemanticHighlighting setting. Some editors also require enabling this feature in other places. In VS Code, you also need to set editor.semanticHighlighting.enabled to true.

More details can be found here.

Plugin authors

Fixing the display of encoded test names for JUnit here required changes in the extension API. This should not break anything, but you might want to adjust to display nicer test names.

Miscellaneous

  • improvement: create java semanticdb info using JDK instead of javac CLI (Arthurm1)
  • bugfix: Don't enable * kind project syntax by default (tgodzik)
  • improvement: offer amend to handle single file scala-cli config on new file (kasiaMarek)
  • bugfix: Go to definition for named constructor params (jkciesluk)
  • improvement: Add date and time to reports and backup log files (jkciesluk)
  • bugfix: Semantic tokens misaligned in triple quote s-string (jkciesluk)
  • bugfix: Completion item resolve for symbolic names (jkciesluk)
  • bugfix: suggest correct arg name completions for lambda expressions (kasiaMarek)
  • bugfix: don't decode nor encode URIs (adpi2)
  • feature: Add hover on class,object,type def in Scala 2 (jkciesluk)
  • bugfix: Don't report tokenizer errors as stale (tgodzik)
  • bugfix: Support Java when using sbt server via BSP (tgodzik)
  • improvement: Add proper Stable Presentation Compiler Support (rochala)
  • docs: Add info about the versioning strategy (tgodzik)
  • bugfix: do not emit cases in pattern match as enum cases (kasiaMarek)
  • bugfix: accommodate junit encoded test names (kasiaMarek)
  • bugfix: Don't show completions ending with CURSOR (jkciesluk)
  • improvement: better heuristic for fixing imports unpon file move (kasiaMarek)
  • improvement: show args completions for all matching overloaded methods (kasiaMarek)
  • bugfix: hover on nested selectable (kasiaMarek)
  • improvement: Docstring on apply method (jkciesluk)
  • bugfix: adjust parsing ScalafmtConfig for StandardConvention layout (kasiaMarek)
  • improvement: add minimal option for inferred type decorations (doofin)
  • bugfix: Implement all members with end marker (jkciesluk)
  • bugfix: deduplicate NamedArgParams with Def params (dos65)
  • chore: Don't show semantic tokens warning for Java files (tgodzik)
  • improvement: restart sbt after java home change (kasiaMarek)

Contributors

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

$ git shortlog -sn --no-merges v1.0.0..v1.0.1
21 Katarzyna Marek
21 Tomasz Godzik
19 Scalameta Bot
11 Jakub Ciesluk
4 scalameta-bot
3 tgodzik
1 Adrien Piquerez
1 Arthur McGibbon
1 Jędrzej Rochala
1 Panov Ivan
1 Vadim Chelyshov
1 dependabot[bot]
1 eason du

Merged PRs

v1.0.1 (2023-08-28)

Full Changelog

Merged pull requests: