Metals v0.10.3 - Tungsten
We're happy to announce the release of Metals v0.10.3, which brings support for the long awaited Scala 3.0.0 version together with some important improvements.
Commits since last release | 104 |
Merged PRs | 49 |
Contributors | 6 |
Closed issues | 12 |
New features | 6 |
For full details: https://github.com/scalameta/metals/milestone/38?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!
- [Scala 3] Scala 3.0.0 support!
- Scala 2.13.6 along with
-Xsource:3
support. - Extract class code action.
- Rename file as class.
- [Scala 3] Auto imports in completions and code actions.
- Support same names in different build targets.
Extract class code action
Due to the great work by @Giggiux Metals now
provides a new Extract to file
code action, which is available when there are
multiple definitions in the source file. This works for classes, traits, enums,
and objects. The code action will not show if the definition we are extracting
is or extends a sealed
definition.
The extraction happens via a code action on the definition's name, it will also extract any relevant package definition, imports, and, if available, the companion.
Rename file as class
It is also now possible when there is only a single definition in a file that doesn't have the same name as the definition, to quickly rename the file according to its content.
[Scala 3] Auto imports in completions and code actions
Previously, the experience of writing Scala 3 code might be spoiled because
these usual features weren't implemented for Scala 3 in Metals. We are happy to
say that there is no more need to write imports by hand and remember the exact
path to the symbol. Now, completions in Scala 3 sources provide symbols from the
workspace and libraries and their application automatically adds the necessary
import. Code action AutoImport
also started working.
Enjoy writing Scala 3!
This required some huge amounts of effort and is working thanks to (dos65).
Support same names in different build targets
This change fixes navigation issues that previously happened in case of having
clashing names across libraries and projects. An additional thing you might
notice with this change is the presence of library names in .metals/readonly
directory. Previously, for example, if jump into String
the file was extracted
into ./metals/readonly/scala/Predef.scala
.
Now it will be
./metals/readonly/dependencies/scala-library-$scalaVersion-sources.jar/scala/Predef.scala
Miscellaneous
- Support names with dots for "Implement all members" code action.
- Fix invalid auto imports with wrong prefix.
- Fix flaky "Organize imports" behaviour.
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.10.2..v0.10.3
Tomasz Godzik
Luigi Frunzio
Vadim Chelyshov
Chris Kipp
Amaal Ali
Evgeny Kurnevsky
Merged PRs
v0.10.3 (2021-05-17)
Merged pull requests:
- Add support for Scala 2.13.6 #2805 (tgodzik)
- [Scala3] Completions - fix
Renamed
andspecifyOwner
Autoimports application #2804 (dos65) - Fix field ordering in completions #2803 (tgodzik)
- [Scala3] Completions - do not backtick NamedArg completion values #2802 (dos65)
- Forward dialect to ScalaMtags to avoid parsing fallback #2799 (tgodzik)
- Ignore NoSuchFileException since it only comes from badly configured jar #2797 (tgodzik)
- SemanticdbDefinition - use correct dialect #2780 (dos65)
- Update sbt-jmh to 0.4.2 #2794 (scala-steward)
- Remove most soft keywords from being backticked. #2796 (tgodzik)
- Update requests to 0.6.9 #2786 (scala-steward)
- Update geny to 0.6.10 #2784 (scala-steward)
- Update ujson to 1.3.13 #2787 (scala-steward)
- Update mill-contrib-testng to 0.9.7 #2785 (scala-steward)
- Update interface to 1.0.4 #2788 (scala-steward)
- Update flyway-core to 7.9.0 #2789 (scala-steward)
- Update sbt, scripted-plugin to 1.5.2 #2791 (scala-steward)
- Update scalameta, semanticdb-scalac, ... to 4.4.17 #2793 (scala-steward)
- Update scala-java8-compat to 1.0.0 #2790 (scala-steward)
- Update mdoc, sbt-mdoc to 2.2.21 #2792 (scala-steward)
- Delete unused
Scala3ToplevelMtags
#2782 (dos65) - Add support for Scala 3.0.0 #2779 (tgodzik)
- Scala3 - AutoImports and completions from workspace #2728 (dos65)
- Code action to move classes to their own files if requirements are met #2723 (Giggiux)
- Properly adjust folding range end on windows #2774 (tgodzik)
- Surface error to user when they pass in an invalid envFile. #2770 (ckipp01)
- Fix failing tests: SbtBloopSuite + FoldingRangeSuite (Windows) #2767 (dos65)
- Update link to Mill's new website #2772 (amaalali)
- Update Scalameta to 4.4.15 #2765 (tgodzik)
- Update scalafmt-dynamic to 2.7.5 #2761 (scala-steward)
- Update mdoc, sbt-mdoc to 2.2.20 #2759 (scala-steward)
- Update sbt, scripted-plugin to 1.5.1 #2758 (scala-steward)
- Update flyway-core to 7.8.2 #2757 (scala-steward)
- Update scribe, scribe-file, scribe-slf4j to 3.5.4 #2756 (scala-steward)
- Update ujson to 1.3.12 #2755 (scala-steward)
- Update requests to 0.6.8 #2754 (scala-steward)
- Update pprint to 0.6.5 #2753 (scala-steward)
- Update geny to 0.6.9 #2752 (scala-steward)
- [Scalafix] Report problems with invalid path and fix flaky behaviour #2749 (tgodzik)
- Toplevel Mtags: use single indexer implementation #2745 (dos65)
- Fix wrong import when working with akka #2739 (tgodzik)
- SymbolIndex: multiply symbol locations #2668 (dos65)
- Update emacs documentation. #2733 (kurnevsky)
- Add extra check before auto-connecting to server. #2737 (ckipp01)
- Support 3.16.0 lsp specification with compatibility for non
array
/`… #2735 (Giggiux) - Add in the parentUri when offering the newSymbol code action. #2734 (ckipp01)
ImplementAsbtractMembers
- support names with dots #2732 (dos65)- Remove munit sbt plugin to fix CI #2731 (tgodzik)
- Remove test reports #2730 (tgodzik)
- Add release notes for Metals 0.10.2 #2729 (tgodzik)