We're happy to announce the release of Metals v0.9.3, which adds a couple of useful new features as well as support for Scala 0.25.0 and 0.26.0-RC1.
|Commits since last release||123|
For full details: https://github.com/scalameta/metals/milestone/26?closed=1
Metals is a language server for Scala that works with VS Code, Vim, Emacs, Sublime Text, Atom and Eclipse. Metals is developed at the Scala Center and VirtusLab with the help from Lunatech along with contributors from the community.
Check out https://scalameta.org/metals/, and give Metals a try!
- sbt script support with hover, completions and go to definition.
- Scala 3 worksheet support
- Scala 0.25.0 and 0.26.0-RC1 support.
- Main classes from dependencies can now be run
sbt script support
sbt support is is achieved by generating additional
metals.sbt file for each
level of sbt's project. For
build.sbt we now generate
project/project/project/metals.sbt etc. This is needed for the Bloop plugin to
properly generate information in the
.bloop configuration files. It's
recommended to gitignore
.bloop anywhere in the file tree.
Scala 3 worksheet support
Finally, it is now possible to run worksheets for Scala 3 starting with version 0.26.0-RC1. To try it out users need to create the worksheet inside of a Scala 3 source directory and then they can be used the same way as with previously supported worksheets.
This is a great place for anyone to experiment with Scala 3 and see what is coming around the corner!
Running main classes from dependencies
Previously, users could only run main classes that are defined in the sourcecode, which made it impossible to run and debug in certain frameworks such as the Play Framework. Metals now searches the classpath additionally to find any classes that are defined by the user and not available in the main sources.
To run any such class a full name needs to be provided via the configuration.
For example in Visual Studio Code this would look like this:
"name": "Play main",
In other editors users need to provide the same parameters for the run configuration.
- Removed breakpoints are no longer hit.
- Compilation is invoked only once for any change.
- Worksheets now display types next to the code.
- Fixed wrong completions in string interpolation.
- Bloop now copies old artifacts by default even if the workspace does not compile.
- Fixed duplicate code actions in case of range selection.
metals.enableStripMarginoption to work without restarting the workspace.
- Signature help now also triggers when typing
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.9.2..v0.9.3
Olafur Pall Geirsson
Merged pull requests:
- Document how to run or debug applications #2005 (tgodzik)
- Properly detect semanticdb target for Scala 3 #2004 (adpi2)
- Add try/catch around unsafe code block. #2002 (olafurpg)
- Allow to remove all breakpoints when debugging #1992 (tgodzik)
- Update information about Sbt, Ammonite and worksheet support #1994 (tgodzik)
- Update munit, sbt-munit to 0.7.11 #2000 (scala-steward)
- Make sure we don't compile twice for open files #1993 (tgodzik)
- Update sbt-mdoc to 2.2.5 #2001 (scala-steward)
- Update jol-core to 0.12 #1999 (scala-steward)
- Update flyway-core to 6.5.4 #1998 (scala-steward)
- Update ammonite-util to 2.2.0 #1997 (scala-steward)
- Update jackson-databind to 2.11.2 #1996 (scala-steward)
- Update sbt-buildinfo to 0.10.0 #1995 (scala-steward)
- Add types to worksheet values #1990 (tgodzik)
- Allow running main classes from dependencies #1989 (tgodzik)
- Add support for Sbt's Scala files #1988 (tgodzik)
- Don't run worksheets on Scala 0.25.0 or lower #1986 (tgodzik)
- Fix go to defintion for Sbt's Scala sources #1984 (tgodzik)
- Add in a few missing docs on the extensions and commands. #1980 (ckipp01)
- Change hardcoded \$(info) icon to read from ClientConfig instead. #1982 (ckipp01)
- Add support for worksheets in Scala 3 #1979 (tgodzik)
- Simplify logic to add metals.sbt files and make sure it's tested #1978 (tgodzik)
- Add checking exact name to all references() invocations #1976 (tgodzik)
- Adjust locations returned from the presentation compiler #1972 (tgodzik)
- Sbt support - multiply bsp connections #1865 (dos65)
filterTextvalue for completion item in string interpolation #1949 (dos65)
- Add CleanCompile to server commands documentation #1970 (kpbochenek)
- Change implicits to Dotty syntax. #1967 (ckipp01)
- Bump recommended scalafmt version and local scalafmt version to 2.6.4 #1968 (ckipp01)
- Update ammonite-util to 2.1.4-13-fb16e4e #1955 (scala-steward)
- Update directory-watcher to 0.10.0 #1961 (scala-steward)
- Update flyway-core to 6.5.3 #1962 (scala-steward)
- Bump default mill version and also add it to BuildInfo #1954 (ckipp01)
- Update sbt-munit to 0.7.10 #1964 (scala-steward)
- Update jol-core to 0.11 #1963 (scala-steward)
- Update ammonite-runner to 0.3.0 #1960 (scala-steward)
- Update coursier to 2.0.0-RC6-24 #1959 (scala-steward)
- Update ujson to 1.2.0 #1958 (scala-steward)
- Update requests to 0.6.5 #1957 (scala-steward)
- Update pprint to 0.6.0 #1956 (scala-steward)
- Update Bloop version to support broken workspaces #1953 (tgodzik)
- Update Scala 3 version to 0.26.0-RC1 #1951 (tgodzik)
- Enable BuildInfo for mtags3 #1950 (ckipp01)
- Fix duplicated code actions #1947 (tgodzik)
- Fix enableStripMargin setting #1946 (tgodzik)
- Mark BillLspSuite.automatic-reconnect as flaky #1942 (tgodzik)
- Add more documentation about worksheets. #1945 (ckipp01)
- Add in blog post about configuring Metals. #1940 (ckipp01)
- Add in , as a trigger for SignatureHelp. #1944 (ckipp01)
- Update to Scala 3 to 0.25.0 version #1939 (tgodzik)
- Add -Ximport-suggestion-timeout 0 to the presentation compiler options #1938 (tgodzik)
- Add missing docs and move versions to a more prominent location. #1934 (tgodzik)
- Take into account server property in statusBarState #1937 (ayoub-benali)
- Update organize-imports to 0.4.0 #1933 (liancheng)
- Add Bloop jvmopts in tests to limit memory used by it #1930 (tgodzik)
- Make sure a file exists when searching for definition #1929 (tgodzik)
- Reverting "Update interface to 0.0.24 (#1918)" #1928 (tgodzik)
- Add additional warn-unused flags #1911 (tgodzik)
- Add release notes for Metals 0.9.2 #1915 (tgodzik)