Metals v0.10.5 - Tungsten
We're happy to announce the release of Metals v0.10.5, which contains a lot of fixes, adds Scala 3.0.1 support, and brings another nice feature!
Commits since last release | 155 |
Merged PRs | 73 |
Contributors | 9 |
Closed issues | 18 |
New features | 1 |
For full details: https://github.com/scalameta/metals/milestone/40?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!
- Add support for
textDocument/selectionRange
- [Scala 3]
Inferred Type
code action and other improvements - Better support of scalafmt for Scala 3 projects
- Search symbol references from dependency source in the workspace
Add support for textDocument/selectionRange
Due to the great work by @ckipp01 Metals now implements the textDocument/selectionRange
LSP-method.
It allows you to easily select an expression and expand/shrink it using shortcut combinations:
Default keybindings in VSCode:
Win/Linux | macOS | |
Expand | Shift+Alt+Right | ⌃⇧⌘→ |
Shrink | Shift+Alt+Left | ⌃⇧⌘← |
[Scala3] Inferred Type
code action and other improvements
We're hard at work ensuring that the same feature-set for Scala 2 is available for Scala 3.
This release adds support for the Insert Inferred Type
code action.
In addition to other small fixes, it's worth mentioning that the Go to Definition
functionality was improved so that in situations where there are compilation issues, you're now able to better navigate to the definition site.
Better support of scalafmt for Scala 3 projects
In order to support different Scala dialects scalafmt added a runner.dialect
setting to support Scala 3.
Metals will now correctly generate and even automatically upgrade your .scalafmt.conf
.
Moreover, in projects that contain different Scala major versions Metals will set a separate dialect for each separate source directory.
Search symbol references from dependency source in the workspace
Thanks to @Z1kkurat "Find References" now also works from within your dependency sources to include references from all workspace sources. Previously, it included only local occurrences in the dependency source file.
Miscellaneous
- Fixed issues with Metals client still running after closing window
- Fixed indexing of Scala 3 libraries that include macros
- Fixed issues with breakpoints not stopped when using optional braces
- Print type decorations for synthetic apply
- Wrap autofilled arguments with backticks
- Don't offer to organize imports when there is an error in the file
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.10.4..v0.10.5
22 Chris Kipp
18 Vadim Chelyshov
17 Tomasz Godzik
2 Adrien Piquerez
2 Luigi Frunzio
2 Kamil Podsiadło
1 Z1kkurat
Merged PRs
v0.10.5 (2021-07-12)
Merged pull requests:
- Add support for Scala 3.0.2-RC1 and drop references to 3.0.0-RC #2955 (tgodzik)
- Add Scala 3.0.1 support #2947 (dos65)
- Update vim docs now that Neovim 0.5.0 is out. #2951 (ckipp01)
- Don't set detail in completion if it's empty. #2950 (ckipp01)
- Organize imports quickfix action #2935 (kpodsiad)
- [Scala3] Fix completion pos inference for Select with nme.ERROR #2940 (dos65)
- [Scala 3] Properly show enum on hover #2938 (tgodzik)
- Correct footer label #2939 (ckipp01)
- [Scala2] PcDefinition fix #2917 (dos65)
- Fix dead links and add in serve command #2937 (ckipp01)
- [Scala3] Fix completions after newline + dot #2930 (dos65)
- Update deploy command for docusaurus. #2936 (ckipp01)
- Update to Docusaurus 2.0 #2927 (ckipp01)
- Revert "Merge pull request #2908 from tgodzik/reset-object" #2931 (tgodzik)
- Don't offer to organize imports when there is an error in the file #2921 (ckipp01)
- Do not use $TMPDIR to store sbt-launcher.jar #2924 (kpodsiad)
- Wrap autofilled arguments with backticks #2929 (tgodzik)
- Print type decorations for synthetic apply #2906 (tgodzik)
- [Scala3] Use symbol search for PC
definitions
. #2900 (dos65) - Wrap worksheets in object instead of a class #2908 (tgodzik)
- Search for symbol references in workspace #2920 (Z1kkurat)
- Update scalameta, semanticdb-scalac, ... to 4.4.23 #2915 (scala-steward)
- Fix unclear heading in sbt docs. #2916 (ckipp01)
- Update ipcsocket to 1.4.0 #2913 (scala-steward)
- Update lz4-java to 1.8.0 #2912 (scala-steward)
- Update flyway-core to 7.10.0 #2911 (scala-steward)
- [Scala3] Rework
NamesInScope
#2867 (dos65) - Add support for Scala 3.0.1-RC2 #2898 (tgodzik)
- Fix off by one error while setting DAP breakpoints #2894 (tgodzik)
- Exclude Jmh and Scalafix from the list of build targets in sbt #2895 (adpi2)
- [Scala3] Provide correct dialect to
Mtags.allToplevels
calls. #2892 (dos65) - Fix CompilerJobQueue concurrent access/shutdown #2890 (dos65)
- Get rid of warning about setting -Xsemanticdb twice. #2889 (ckipp01)
- [Scalafmt] Rewrite
.scalafmt.conf
if sources require non-default dialect #2814 (dos65) - Add support for
textDocument/selectionRange
. #2862 (ckipp01) - Ensure a valid URI is returned for non-html analyze stacktrace. #2876 (ckipp01)
- Update scalameta, semanticdb-scalac, ... to 4.4.21 #2886 (scala-steward)
- Update ipcsocket to 1.3.1 #2884 (scala-steward)
- Update scalafmt-core to 3.0.0-RC5 #2885 (scala-steward)
- Update sbt, scripted-plugin to 1.5.4 #2883 (scala-steward)
- Update flyway-core to 7.9.2 #2882 (scala-steward)
- Update sbt-jmh to 0.4.3 #2887 (scala-steward)
- Update ujson to 1.4.0 #2881 (scala-steward)
- Bump sbt-debug-adapter to 1.1.2 #2872 (adpi2)
- Lazily get explicit choice. #2868 (ckipp01)
- [Scala 3] Enable inferred type code action #2825 (tgodzik)
- Don't offer completions inside scaladoc and comments #2822 (Giggiux)
- WorkspaceSearchVisitior - make search more predictable. #2863 (dos65)
- Enable organize-imports for mtags3 #2860 (dos65)
- Run organize imports on Scala 3 sources #2858 (tgodzik)
- Enable organize imports for Scala 3 #2857 (tgodzik)
- [Scala3] Add test that checks that diagnostic for inline def usage works correctly #2854 (dos65)
- Add support for Scala 3.0.1-RC1 #2852 (tgodzik)
- Bump olafurpg/setup-scala from 10 to 12 #2848 (dependabot[bot])
- ScalaVersions: fix scala3 version extraction from jar name. #2833 (dos65)
- Update amonite to 2.3.8-124-2da846d2 and add support for 2.13.6 #2851 (tgodzik)
- Revert Bloop version upgrade #2850 (tgodzik)
- Fix scalafmt config #2849 (tgodzik)
- Update scalafmt-core to 3.0.0-RC4 #2845 (scala-steward)
- Update jol-core to 0.16 #2844 (scala-steward)
- Update flyway-core to 7.9.1 #2843 (scala-steward)
- Update undertow-core to 2.2.8.Final #2842 (scala-steward)
- Update nuprocess to 2.0.2 #2841 (scala-steward)
- Update scribe, scribe-file, scribe-slf4j to 3.5.5 #2840 (scala-steward)
- Update ujson to 1.3.15 #2839 (scala-steward)
- Update mill-contrib-testng to 0.9.8 #2838 (scala-steward)
- Bump coursier/cache-action from 5 to 6.1 #2846 (dependabot[bot])
- Update metaconfig-core to 0.9.14 #2836 (scala-steward)
- Update scalafix-interfaces to 0.9.29 #2835 (scala-steward)
- Update bloop-config, bloop-launcher to 1.4.8-43-c2d941d9 #2834 (scala-steward)
- Add FAQ entry about sbt Apple M1 issue #2832 (tgodzik)
- Minor fix in last release notes #2831 (dos65)
- Add release notes - 0.10.4 release #2830 (dos65)