Metals v0.11.8 - Aluminium
We're happy to announce the release of Metals v0.11.8, bringing a number of improvements for both Scala 2 and Scala 3.
Commits since last release | 84 |
Merged PRs | 80 |
Contributors | 15 |
Closed issues | 22 |
New features | 5 |
For full details: https://github.com/scalameta/metals/milestone/52?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!
- [Scala 3] Auto import and completion for extension methods
- [Scala 3] Convert to Named Parameters code action
- [Scala 3] Scaladoc Completion for Scala3
- [Scala 3] Completions in string interpolation
- [Scala 2] Automatic import of types in string interpolations
- Code Action documentation
- Support of Scala 3.2.0-RC3, Scala 3.2.0-RC2
and a lot of bugfixes!
[Scala 3] Auto import and completion for extension methods
You might know that Scala 3 has introduced extension methods
that allow defining new methods to your existing types.
Previously, Metals couldn't auto-complete extension methods; so developers had to find an appropriate extension method from their workspace and manually import it. But, this was time-consuming and not always beginner friendly.
Now, Metals provides auto-completion for extension methods and automatically imports them!
[Scala 3] Convert to Named Parameters code action
Metals 0.11.7 added ConvertToNamedParameters
code action to Scala2.
Thanks to the contribution by @jkciesluk, this feature is now available for Scala 3!
[Scala 3] Scaladoc completion
Metals now supports offering Scaladoc completions in Scala 3. When typing /**
you get an option to auto-complete a scaladoc template for methods, classes, etc.!
[Scala 3] Completions in string interpolation
In the previous versions, whenever users wanted to include a value in a string using string interpolation, they would need to do it all manually. Now, it is possible to get an automatic conversion to string interpolation when typing $value
, as well as automatic wrapping in {}
when accessing members of such value.
[Scala 2] Automatically import types in string interpolations
Previously, the only suggestions for string interpolations were coming from the currently available symbols in scope. This meant that if you wanted to import something from another package, you would need to do it manually.
This problem is now resolved. Users can easily get such symbols automatically imported, which creates a seamless workflow.
The feature is also being worked on for Scala 3.
Code Action documentation
Have you ever wondered what kind of refactorings are available in Metals? Check out this new page in the documentation! You can see a list of all the code actions in Metals with examples. https://scalameta.org/metals/docs/codeactions/codeactions
Big thanks to zmerr for writing this documentation.
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.11.7..v0.11.8
33 Tomasz Godzik
11 Rikito Taniguchi
9 Scala Steward
6 jkciesluk
6 Kamil Podsiadło
5 vzmerr
3 Vadim Chelyshov
2 Adrien Piquerez
2 scalameta-bot
2 zmerr
1 Arthur S
1 Anton Sviridov
1 tgodzik
1 Scalameta Bot
1 Chris Kipp
Merged PRs
v0.11.8 (2022-08-10)
Merged pull requests:
- [Scala 3] Revert type completions feature #4236 (tanishiking)
- bugfix: Show package completions #4223 (tgodzik)
- chore(ci): small changes to account for migration from LSIF -> SCIP #4222 (ckipp01)
- chore: Switch to JDK 17 for most tests #4219 (tgodzik)
- bugfix: Print correct method signature for Selectable #4202 (tgodzik)
- Scala 3 type completion #4174 (vzmerr)
- bugfix: Don't use interrupt for the Scala 3 compiler #4200 (tgodzik)
- build(deps): Update scalameta, semanticdb-scalac, ... from 4.5.9 to 4.5.11 #4210 (scalameta-bot)
- feat: Auto complete (missing) extension methods #4183 (tanishiking)
- build(deps): Update mdoc, mdoc-interfaces, sbt-mdoc from 2.3.2 to 2.3.3 #4209 (scalameta-bot)
- build(deps): Update flyway-core from 9.0.1 to 9.0.4 #4208 (scalameta-bot)
- chore: Bump Bloop to latest to test out recent changes #4204 (tgodzik)
- Update debug adapter to 2.2.0 stable (dependency update) #4203 (arixmkii)
- fix: index inline extension methods in ScalaToplevelMtags #4199 (tanishiking)
- feature: Update Ammonite runner for Scala 3 and latest Scala 2 versions #4197 (tgodzik)
- chore: Support Scala 3.2.0-RC3 #4198 (tgodzik)
- fix: Fold the end line of template / block if it's braceless #4191 (tanishiking)
- bugfix: Print local type aliases properly #4188 (tgodzik)
- Add match keyword completion #4185 (jkciesluk)
- fix: request configuration before connecting to build server #4180 (dos65)
- Code Actions doc page #4157 (vzmerr)
- fix: Remember choice
Don't show this again
for sbt as build server #4175 (jkciesluk) - bugfix: [Scala 3] Show correct param names in java methods #4179 (tgodzik)
- fix: return all inversed dependencies in
inverseDependenciesAll
#4176 (kpodsiad) - refactor: Use MetalsNames in ExtractValue code action #4173 (tgodzik)
- feat: Import missing extension method #4141 (tanishiking)
- bugfix: Use the correct RC version of 3.2.0 #4171 (tgodzik)
- Multiline string enhance #4168 (vzmerr)
- refactor: Print better debug infor when InferredType command failed #4162 (tgodzik)
- chore: use sonatypeOssRepos instead of sonatypeRepo #4169 (tanishiking)
- docs: Add architecture.md #4008 (tanishiking)
- bugfix: Include method signature in the label #4161 (tgodzik)
- Add convertToNamedParameters support for Scala 3 #4131 (jkciesluk)
- bughack: Force specific Scala 3 compiler for worksheets #4153 (tgodzik)
- bugfix: Show better titles for ConvertToNamedArguments code action #4158 (tgodzik)
- fix triple quoted new line on type formatting #4151 (vzmerr)
- build(deps): Update flyway-core from 9.0.0 to 9.0.1 #4159 (scala-steward)
- bugfix: Allow completions in multiline expressions when debugging #4111 (tgodzik)
- bugfix: [Scala 2] Automatically import types in string interpolations #4140 (tgodzik)
- Extend extract value with new cases #4139 (jkciesluk)
- Bump sbt-dependency-submission #4155 (adpi2)
- feat: Adding stub implementations for abstract given instances #4055 (tanishiking)
- refactor: Show more debug messages #4150 (tgodzik)
- bugfix: Reenable RenameLspSuite #4152 (tgodzik)
- support for partial function #4125 (zmerr)
- build(deps): Update flyway-core from 8.5.13 to 9.0.0 #4147 (scala-steward)
- build(deps): Update sbt, scripted-plugin from 1.7.0 to 1.7.1 #4148 (scala-steward)
- fix: avoid duplicate migration appllication #4144 (dos65)
- removing brace of for comprehension #4137 (vzmerr)
- chore: update git-ignore-revs #4145 (kpodsiad)
- chore: change formatting of trailing commas #4050 (kpodsiad)
- build(deps): Update interface from 1.0.6 to 1.0.8 #4135 (scala-steward)
- build(deps): Update sbt from 1.6.2 to 1.7.0 #4136 (scala-steward)
- fix: Dialect should be scala21xSource3 for
-Xsource:3.x.x
#4134 (tanishiking) - chore: refactor update test cases #4129 (kpodsiad)
- bugfix: Occurence highlight did not work for local vars #4109 (jkciesluk)
- bugfix: Save fingerprints between restarts #4127 (tgodzik)
- [docs] Update Maven integration launcher to 2.13 #4130 (keynmol)
- feature: Add a way to turn on debug logging and fix scalafix warmup #4124 (tgodzik)
- build(deps): Update scribe, scribe-file, scribe-slf4j from 3.10.0 to 3.10.1 #4128 (scala-steward)
- java version through shell #4067 (zmerr)
- fix: do not start debug session for test explorer if projects contains errors #4116 (kpodsiad)
- build(deps): Update mill-contrib-testng from 0.10.4 to 0.10.5 #4119 (scala-steward)
- add scala 3.2.0-RC2 #4118 (dos65)
- build(deps): Update jsoup from 1.15.1 to 1.15.2 #4120 (scala-steward)
- build(deps): Update ipcsocket from 1.4.1 to 1.5.0 #4122 (scala-steward)
- bugfix: [Scala 3] Improve constant and refined types printing #4117 (tgodzik)
- docs: Add documentation for running scalafix in Metals #4108 (tgodzik)
- bugfix: Build.sc was seen as Ammonite script #4106 (jkciesluk)
- Update sbt-dependency-graph #4110 (adpi2)
- bugfix: Refresh decorations even if empty to clear them out #4104 (tgodzik)
- bugfix: Include entire expression in filterText for member itnerpolat… #4105 (tgodzik)
- feat: ScaladocCompletion for Scala3 #4076 (tanishiking)
- feat: update test suite location #4073 (kpodsiad)
- feature: [Scala 3] Add interpolation completions #4061 (tgodzik)
- docs: Fix wording about the expression evaluation #4101 (tgodzik)
- docs: Add missing release notes section #4097 (tgodzik)
- chore: Fix links in the new release docs #4096 (tgodzik)
- release: Add release notes for Metals 0.11.7 #4083 (tgodzik)