Metals v0.11.3 - Aluminium
We're happy to announce the release of Metals v0.11.3.
Commits since last release | 231 |
Merged PRs | 110 |
Contributors | 17 |
Closed issues | 21 |
New features | 7 |
This release uses a new version of Bloop. This should fix a few bugs regarding e.g. stale diagnostics in Scala 3. Moreover, the new release brings also a few UX improvements regarding Doctor view and running/debugging your code.
For full details: https://github.com/scalameta/metals/milestone/48?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!
- Add more information to the Doctor view
- Create companion object code action
- Add status bar when starting a debug session
- Ensure the "no run or test" message is shown to user.
- Show better unnaply signatures
- Provide an easier way to configure bloop settings
- Better MUnit support in Test Explorer
- Better sbt BSP integration
- Improved Scala3 support
Add more information to the Doctor view
Thanks to the joined effort of #3772, #3763 and #3710 the Doctor view currently:
- shows the Metals server version and information about Java used to run the Metals server
- displays the compilation status of project
- allows to navigate to the build target info for each target
Create companion object code action
Thanks to the efforts of zmerr, Metals offers a new
code action - Create companion object
. As its name suggests, it can be used to
automatically create a companion object for the given class, trait or enum.
Theme: One Dark Pro
Add status bar when starting a debug session
Starting a debug session is a complex task, which requires a few steps:
- Metals has to compile your project and create a debug session
- debugger has to be initialized (configuration, breakpoints, etc.)
Very often each of these steps takes up to a few seconds in order to complete. Until now, the user had no idea what is happening because Metals didn't show any progress indicator. ckipp01 addressed this problem and added a status bar for each of the steps.
Theme: One Dark Pro
Ensure the "no run or test" message is shown to user.
There is a command Run main class or tests in current file
which is a
convenient way, as name suggests, of running main class:
Theme:
One Dark Pro
or running tests in the current file: Theme: One Dark Pro
It is also possible to just press F5
in file and Metals will execute main
class or run tests in the current file if no run configuration is defined.
However, this command was silently failing when there was no class or test to run in the file. This is no longer the case, now Metals will display proper error message in this scenario. Theme: One Dark Pro
Show better unnaply signatures
Previously, when pattern matching Metals was showing real unnaply
method
signature, which wasn't very useful. Now, Metals properly uses unapply result
type to show what types can be matched on.
Theme:
One Dark Pro
Provide an easier way to configure bloop settings
Bloop
JVM options
can be configured through a global config file. Thanks to the
zmerr, Metals is capable of changing those settings.
Each modification of Bloop Jvm Properties
settings will try to update that
global file if possible. In case of manually configured settings, Metals will
inform user about it and ask for their action.
Theme: One Dark Pro
Better MUnit support in Test Explorer
Disclaimer: this works only when Bloop is a build server
Test Explorer in Metals is now able to detect some single test cases for MUnit test framework. Theme: One Dark Pro
More information about current MUnit support status can be found at this issue.
Better sbt BSP integration
From this release Metals will no longer run the compilation when sbt generates
files under the src-managed
directory. The previous behaviour was related to
some of the source generating sbt plugins. When used with sbt BSP users would
experience continuous compilation. For more details, see
#2183.
Improved Scala3 support
Metals 0.11.3 now includes some better Scala3 supports in go-to-definition, rename symbols, and displaying hover.
For more information, check out the following pull requests:
- Don't show a tooltip on hover if cursor is not on a symbol by tanishiking · Pull Request #3792 · scalameta/metals
- fix: (Scala3) Don't navigate to enclosing symbols on go-to-definition if cursor is not on symbol by tanishiking · Pull Request #3807 · scalameta/metals
- fix: Rename extension parameter in Scala3 by tanishiking · Pull Request #3800 · scalameta/metals
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.11.2..v0.11.3
32 Rikito Taniguchi
30 Scala Steward
19 Tomasz Godzik
17 Vadim Chelyshov
15 Kamil Podsiadło
15 zmerr
12 ckipp01
11 Alexandre Archambault
5 Kamil Podsiadlo
4 Martin Duhem
3 Arthur McGibbon
3 tgodzik
2 Georg Pfuetzenreuter
1 Gabriele Petronella
1 Chris Kipp
1 dependabot[bot]
1 Jens Petersen
Merged PRs
v0.11.3 (2022-04-26)
Merged pull requests:
- fix: create comption object after end marker #3866 (dos65)
- feature: sbt-BSP - enable java-semanticdb plugin #3861 (dos65)
- Use bloop.json instead of .jvmopts for Bloop memory properties #3864 (tgodzik)
- handles the removal of jvm properties case #3863 (zmerr)
- Properly infer types for unapply signature help #3862 (tgodzik)
- Add semantic db info display on jar files #3843 (Arthurm1)
- correct handling of end marker relocation on extract member #3847 (zmerr)
- Fix breakpoints in virtual docs #3846 (kpodsiad)
- Update scalafmt-core to 3.5.2 #3858 (scala-steward)
- Mark CancelCompileLspSuite as flaky #3857 (tgodzik)
- fix: infer jdk without jdk in name #3856 (kpodsiad)
- Add classpath to CFR decompile #3844 (Arthurm1)
- fix: Make signature help work properly with a non-tuple result #3849 (tgodzik)
- bloop jvm settings #3746 (zmerr)
- Remove some redundant collection conversions #3848 (Duhemm)
- Update scala-xml to 2.1.0 #3839 (scala-steward)
- fix: show test explorer misconfigurations #3828 (kpodsiad)
- fix: Register extension parameter symbols by mtags #3814 (tanishiking)
- Update scalafix-interfaces to 0.10.0 #3842 (scala-steward)
- Update scalameta, semanticdb-scalac, ... to 4.5.3 #3841 (scala-steward)
- Update flyway-core to 8.5.8 #3838 (scala-steward)
- Update undertow-core to 2.2.17.Final #3837 (scala-steward)
- Update sbt-scalafix, scalafix-interfaces to 0.10.0 #3832 (scala-steward)
- Update bloop-config, bloop-launcher to 1.4.13-75-f9d1bef5 #3831 (scala-steward)
- fix: (Scala3) Don't navigate to enclosing symbols on go-to-definition if cursor is not on symbol #3807 (tanishiking)
- Update scalafmt-dynamic to 3.4.3 #3840 (scala-steward)
- Update ujson to 1.6.0 #3835 (scala-steward)
- test: Add test for completions of matchtype / higher-kinded type #3821 (tanishiking)
- Update mill-contrib-testng to 0.10.3 #3834 (scala-steward)
- Update h2 to 2.1.212 #3833 (scala-steward)
- Fix formatting after last merge #3827 (tgodzik)
- fix: Rename extension parameter in Scala3 #3800 (tanishiking)
- Bump Bloop with a fix for #3766 #3826 (tgodzik)
- fix: unblock release workflow #3825 (dos65)
- Add support for Scala 3.1.2 and 3.1.3-RC2 #3822 (tgodzik)
- fix release script #3823 (dos65)
- fix: handle backticked names in inffered-type #3791 (dos65)
- bloop - bump version #3818 (dos65)
- docs: add common workflow to contributing guide #3816 (kpodsiad)
- Remove -release option from the Scala 3 PC #3812 (tgodzik)
- fix: uri encoding #3795 (kpodsiad)
- docs overview: mention editor pages for installation (#3796) #3811 (juhp)
- Log BSP server stderr #3789 (alexarchambault)
- Support MatchType in SemanticdbTreePrinter #3787 (tanishiking)
- [Scala3] Fix hover on interpolator-apply #3806 (tanishiking)
- Remove broken nightly version #3805 (tgodzik)
- Update scalafmt-core to 3.4.3 #3802 (scala-steward)
- refactor: add a header object to json doctor output #3803 (ckipp01)
- docs: Neovim and Plug clarification #3799 (tacerus)
- docs: add in docs about doctorVisibilityDidChange #3798 (ckipp01)
- fix: disable not supported Wconf for scala3 #3793 (dos65)
- [Scala3] Don't show a tooltip on hover if cursor is not on a symbol #3792 (tanishiking)
- chore(deps): bump actions/checkout from 2 to 3 #3782 (dependabot[bot])
- Update mdoc-interfaces to 2.3.2 #3781 (scala-steward)
- Update scalameta, semanticdb-scalac, ... to 4.5.1 #3780 (scala-steward)
- Try to fix flaky test by adding a delay in compilation #3765 (tanishiking)
- Update mill-contrib-testng to 0.10.2 #3775 (scala-steward)
- Update mdoc, mdoc-interfaces, sbt-mdoc to 2.3.2 #3779 (scala-steward)
- Update file-tree-views to 2.1.9 #3777 (scala-steward)
- Update bloop-config, bloop-launcher to 1.4.13-55-1fc97fae #3774 (scala-steward)
- Update pprint to 0.7.3 #3776 (scala-steward)
- Update flyway-core to 8.5.5 #3778 (scala-steward)
- feat: add java version and Metals version to doctor #3772 (kpodsiad)
- fix: nightly script #3773 (dos65)
- fix: munit test discovery when there is no package #3770 (kpodsiad)
- fix: do not call
doctor.check()
on each build target compilation end #3768 (kpodsiad) - chore: reduce size of build.sbt #3759 (kpodsiad)
- scala3 - exclude 3.2.0-NIGHTLY and align tests cases #3767 (dos65)
- chore: enable
-Wunused
#3760 (kpodsiad) - Fix issues with non alpha numeric build target names #3756 (tgodzik)
- Introduce uses of buildTarget/inverseSources #3752 (Duhemm)
- add navigation from doctor to build target #3763 (Arthurm1)
- feat: add better munit support to the Test Explorer #3742 (kpodsiad)
- dep: bump release candidate version to 3.1.2-RC3 #3753 (ckipp01)
- fix: specify groups for new test suites #3749 (dos65)
- fix: create
new scala file
with a single NL #3745 (dos65) - Show better unapply signature help #3738 (tgodzik)
- support for creating companion objects #3709 (zmerr)
- fix: return an error when trying to decode tasty in Scala 2 #3739 (ckipp01)
- Refactor Ammonite support… #3550 (alexarchambault)
- fix: don't discover already discovered tests #3737 (kpodsiad)
- fix: typo in workflow script #3735 (dos65)
- fix: do not fail nightly check job if there are no new releases #3734 (dos65)
- feat: add more feedback to user when starting a debug session #3731 (ckipp01)
- Remove jackson since it's no used in the code #3733 (tgodzik)
- Prefer Scala 2.13 version over older versions #3728 (tgodzik)
- docs: small update to contributing docs #3732 (ckipp01)
- bump: bloop #3729 (kpodsiad)
- feat: implement test selection request for sbt #3678 (kpodsiad)
- Warn users properly when wrong release flag was used #3703 (tgodzik)
- fix(doctor): ensure compilationStatus is in the json payload #3725 (ckipp01)
- Add
generated
info toSource Directories
section ofDisplay build target info
#3720 (tanishiking) - fix: ensure user gets warned of workspace error when running with lens #3723 (ckipp01)
- feat: add compilation status to the doctor #3710 (kpodsiad)
- Bump Bloop to the newest version with updated Zinc #3706 (tgodzik)
- fix: Ensure the "no run or test" message is shown to user. #3721 (ckipp01)
- Update mill-contrib-testng to 0.10.1 #3714 (scala-steward)
- Update pprint to 0.7.2 #3715 (scala-steward)
- Exclude generated source items from FileWatcher (sbt BSP) #3694 (tanishiking)
- Update flyway-core to 8.5.3 #3717 (scala-steward)
- Update scribe, scribe-file, scribe-slf4j to 3.8.2 #3716 (scala-steward)
- Fallback to current file contents always #3711 (tgodzik)
- Move gabro to "past maintainers" in README #3708 (gabro)
- refactor: use "using" instead of "implicit" in Scala 3 signature help. #3707 (ckipp01)
- fix: scala3 completion - fix isses with code indented using tabs #3702 (dos65)
- fix: add test case for #3625 #3704 (tgodzik)
- Fix completions on dot in expression evaluator #3705 (tgodzik)
- Fix issues with Bloop snapshot versions #3699 (tgodzik)
- fix: do not decode every URI when invoking
toAbsolutePath
#3701 (kpodsiad) - docs: make release instruction more structured #3700 (kpodsiad)
- Fix DefinitionCrossLspSuite #3692 (tgodzik)
- chore(docs): get snapshot version for docs from 2.13 now #3693 (ckipp01)
- Bump release candidate version to 3.1.2-RC2 #3697 (tgodzik)
- ci: update Metals version in mtags release workflow #3695 (dos65)
- fix: adjust tests for 3.2.0-NIGHTLY #3687 (dos65)
- Fix named arg completion when parameter contains $ #3686 (tanishiking)
- Fix flaky WorkspaceSymbolLspSuite test #3691 (tgodzik)
- chore: migrate Metals to 2.13 #3631 (ckipp01)
- docs: add release notes #3682 (kpodsiad)