Scala Space
banner
scalaspace.bsky.social
Scala Space
@scalaspace.bsky.social
Where #Scala meets the industry

By virtuslab.com & softwaremill.com
Metals 1.6.4 has just been release and as always it brings bug fixes as well as a number of general improvements.

Take a look at the release notes for details:
scalameta.org/metals/blog...

#Scala
November 26, 2025 at 6:25 PM
Today, instead of announcing a new feature, we would like to ask you about a possible new one. 🔎

In some other languages, it's possible to evaluate inline with the `>>>` symbol in a comment. This gives you a quick ability to evaluate some code. Should we add it to Metals?
November 21, 2025 at 5:40 PM
Hey, #ScalaCLI v1.10.0 is out! 🚀
The changes include:
Scala defaults changed to 3.7.4 and 2.13.17, support for the new Scala 3.8 REPL artifacts (to try with 3.8.nightly versions), support for adding extra directories to a docker image, a number of fixes, internal changes and dependency bumps. (1/2)
November 14, 2025 at 12:50 PM
And another code action will allow you to quickly switch any map/filter chains into a collect method invocation.
October 16, 2025 at 3:01 PM
We also have two new code actions. First one will allow you to convert any infix notation to a standard one. This is not enabled for symbolic operators.
October 16, 2025 at 3:01 PM
There is more! If you are a fun of quickly checking currently worked on test case, it's now possible to run the closes test case or method to the current cursor position!
October 16, 2025 at 3:01 PM
Did you ever get annoyed that you need to reimport everything when copying between different files? Worry no more! Metals will now try it's best to take care of that for you.
October 16, 2025 at 3:01 PM
Enabling the new closing labels inlay hints will allow you to easily track where each method or class body ends.
October 16, 2025 at 3:00 PM
New 'copy FQN' command will allow you to get the fully qualified name for any class, method, object or value. This can later be used in places like scaladocs. For example when invoked on the "main" method, you will get a result in for of "com.example.Main#main"
October 16, 2025 at 3:00 PM
Ox feature tour, day 19: because it's direct style, integration with OpenTelemetry (metrics+logging+tracing) "just works"! To propagate tracing context inside concurrency scopes, you only need a single switch at your top-level `OxApp`!
October 7, 2025 at 10:00 AM
🛠️ Next Scala Tooling Spree is coming up.
🗓️ It will take place on 09.10 17:30-19:30 CET.
✍️ If you'd like to participate please register by 7th here:
forms.gle/yUurzS2KiM2...
October 6, 2025 at 9:39 PM
Ox feature tour, day 18: `.pipe` and `.tap`, even extremely simple, are suprisingly useful! And there's no overhead: these are inline methods, hence a "zero-cost abstraction". Bonus: discover the `debug`, `.discar` and `.tapException` methods!
October 2, 2025 at 10:00 AM
Ox feature tour, day 17: converting exceptions to `Either`s, and vice versa is trivial thanks to the inline `.catching[]` and `.orThrow` methods. A panic at one level, might become an expected error at another!
October 1, 2025 at 10:00 AM
Ox feature tour, day 16: we propose error handling based on "panics" (exceptions) and "expected" errors, represented as Eithers. Working with the lattter is ergonomic thanks to Scala's boundary/break, and its Ox-provided specialization to Eithers using `either: and `.ok()`
September 30, 2025 at 10:00 AM
Ox feature tour, day 15: Flows provide integration with Kafka, allowing one to implement the common publish-then-commit pattern using an elegant high-level, functional API.
September 25, 2025 at 10:00 AM
Ox feature tour, day 14: declarative concurrency in flows - virtual threads are started (and terminated on error) safely, without ever needing to touch concurrency scopes! Signalling an error is as easy as throwing an exception.
September 24, 2025 at 12:21 PM
Ox feature tour, day 13: flows provide I/O integration, declarative concurrency, and reactive streams compatibility!
September 23, 2025 at 10:00 AM
Ox feature tour, day 12: describe data streaming using operators you know and love from Akka Streams or FS2, using direct-style (no Futures or other wrappers!)
September 18, 2025 at 10:00 AM
Ox feature tour, day 11: select exactly one clause to complete from a number of channels.

This is the select you might know from Go: complementing the goroutine equivalent - forks (virtual threads) within a concurrency scope
September 17, 2025 at 10:00 AM
Ox feature tour, day 10: use high-performance, queue-like channels, which can be completed as done, or short-circuited with an error

Perfect for communicating virtual threads created within a concurrency scope!
September 16, 2025 at 10:00 AM
🛠️ Next Scala Tooling Spree is coming up.
🗓️ It will take place on 18.09 17:30-19:30 CET.
✍️ If you'd like to participate please register by 16th here:
forms.gle/yUurzS2KiM2...
September 12, 2025 at 4:00 PM
Ox feature tour, day 9: use OxApp to conveniently access a top-level concurrency scope (for running app-wide background jobs), as well as ensure proper cleanup on external interruption (SIGINT/SIGTERM)
September 11, 2025 at 10:00 AM
Ox feature tour, day 8: attach resources to concurrency scopes, so that they are guaranteed to be released, before the scope completes.
September 10, 2025 at 10:00 AM
Ox feature tour, day 7: manage resources using try-catch-finally, for convenience written inline, using an inline method (a "zero-cost abstraction").
September 9, 2025 at 10:00 AM
Ox feature tour, day 6: rate limit access to APIs or other resources using a straightforward direct-style API! Runs within a concurrency scope, ensuring proper error handling.
September 4, 2025 at 10:00 AM