Code editors for Scala3 this weekend?

What are my options for code editors for writing some Scala3 code this weekend? The big feature I miss in a straight-up text editor is code completion. I’m not terribly conscious of other features - at least not for this project.

I’ve liked Intellij IDEA for big projects with Scala2, but they haven’t caught up with the new (no-curly-brace) syntax.

How’s Jupyter Notebooks w/Almond for Scala3?

(I’m sure Intellij IDEA will catch up in short order - just not by Sunday night. I’d like to do the project with my spare morning, not explore tools to do the project. I’m happy to do the exploring later in June or July.)



What feature are you looking for exactly? I’m getting reasonable code completion in Scala 3 with IntelliJ 2021.1.1.

1 Like

Are you able to use the brace-free syntax? I’m getting all-red-marks with that.

Yes, I’m writing everything indentation based, no braces, using sbt for my setup and scalafmt for formatting.

1 Like

I wonder if that’s the difference. I’m not forcing format, but I don’t think that’s it. (Could it be??) I am using mill for the build - and to make the intellij project. That seems more likely. (My long-term hope is that mill is easier to teach than sbt.)

I’ll get some time-on-task later tonight. Those are at least quick experiments to try. Thanks!

Seems likely. We did one project in Mill (weePickle is a fork of uPickle, so it was initially easier to just stay with Mill). My observation was that Mill was rather easier to understand, but the boilerplate added up fast with all the subprojects and the compile matrix we needed. Ultimately, we wound up switching it to sbt mostly because of ecosystem: we have a deep stack of sbt plugins (many of them home-grown) that we’re used to using, and having this one Mill project as its own special snowflake wasn’t looking like a good investment for us.

Does lead me to wonder if it would be interesting for someone to teach the two side-by-side. Not for beginners, but for programmers who are trying to grok both. I have a suspicion that even a pattern sheet that shows both of them next to each other might make it easier for people to understand both.


What about the more standard tools, like gradle? Are they usable for Scala projects? I’m relying on sbt right now, but I’m not a huge fan. I have a need to set up a project that mixes Java, Scala and Kotlin, and sbt’s support for Kotlin seems to be reduced to an outdated plugin.

FWIW we’re using Maven, and we rely on lots of maven-plugins, works well.

I can’t speak to gradle specifically.

We use maven at work, which is mostly OK. We’re currently pinned to an older version of the maven scala plugin for performance reasons. It’s also got the usual maven problem: a huge amount of maven xml boilerplate to do not much. Anything custom is even more boilerplate. It works, but is not to my taste.

I’ve had early success calling ant tasks from mill. I like writing scala code for my build. I think that’ll be easier to teach, although mill scala is not beginner scala.

On gitter the mill devs pointed me to millw (another install tool?? !!). That’s my next stop - to upgrade to mill 0.9.8.

I think it’s been said already - the scala build story here hasn’t got to a happy ending yet.