Skip to content

Releases: polyvariant/better-tostring

v0.3.5

12 Jul 14:29
d3eecc7
Compare
Choose a tag to compare

Identical to 0.3.4, but adds Scala 3.0.1 support.

v0.3.4

12 Jul 14:20
f80f946
Compare
Choose a tag to compare

Fixes several issues related to case objects in Scala 3.

v0.3.3

30 May 15:41
36213d4
Compare
Choose a tag to compare

Support for Scala 2.12.14

v0.3.2

18 May 13:50
Compare
Choose a tag to compare

Cross-build for 2.13.6.

Note that this is the last release for Scala 2.12.10, 2.13.1-3, 3.0.0-M3 and 3.0.0-RC{1,2,3}. From now on, we'll be publishing releases for the latest 3 versions of each series (2.12, 2.13, 3).

v0.3.1

13 May 15:52
Compare
Choose a tag to compare

Adds Scala 3 (3.0.0) support.

v0.3.0

11 May 09:02
25a7182
Compare
Choose a tag to compare

Includes a new feature, prefixing a class with the name of the enclosing object - contributed by @mrobakowski in #27 🎉

Given this code:

object A {
  case class B(s: String)
}

A.B("ss")

before the change we would be seeing B(s = ss), now it will be A.B(s = ss). Note that the name of the object is not prefixed if it's a package object, and classes nested in other classes are still not influenced by the plugin.

This works for Scala 3 enums as well:

enum Foo:
  case Bar
  case Baz(s: String)

// outputs Foo.Baz(s = hello)
@main def demo = println(Foo.Baz("hello"))

This behavior is not up to configuration, and will likely increase verbosity of your toString calls - if you don't want that to be the case, it is suggested to implement toString on your own.

v0.2.10

21 Apr 12:04
Compare
Choose a tag to compare

Scala 3 RC3 support.

v0.2.9

07 Apr 15:00
8bd2092
Compare
Choose a tag to compare

Includes Scala 3.0.0-RC2 support.

v0.2.8

07 Mar 00:43
431e8df
Compare
Choose a tag to compare

Notable changes:

  • Scala 3 support
  • test suite

This release features initial Scala 3 support (3.0.0-M3, 3.0.0-RC1)! Many thanks to @mrobakowski for implementing the first version, which let me save a lot of effort figuring out what's changed.

The core logic of the plugin is ~95% the same code cross-compiled between the two major versions of the compiler, using a common API for some simple operations provided by the raw compiler plugin API - this should allow us to keep all versions with the same behavior and no unexpected changes between versions.

We also got a test suite to ensure the plugin works as designed.