IntelliJ Scala Plugin 2022.2 Is Out!
This release has been again focused on improving Scala 3 support, but there are also a few other improvements. Better Scala 3 support As of v.2022.2, IntelliJ IDEA can read match types from .tasty files, properly parse them, resolve type variables, use them as type arguments, support inspections, and show types as text. On top of that, we’ve added support for Option-less extractors, type lambdas and polymorphic function types, type-level compiler intrinsics, and ? as a wildcard together with _ in Scala 2.13.9 and 2.12.16. Copy-pasted code is also now properly indented. Compiler
IntelliJ Scala Plugin 2021.3 Is Out!
This release brings more improvements to Scala 3 support. There are also several new features to help with day-to-day Scala programming. Let's take a closer look: 1. Scala 3 support improvements 2. Open cross-compiled projects as Scala 2 3. Data flow analysis for Scala 4. Autocomplete for Scala compiler options 5. Inlay hints for ranges Scala 3 support improvements Our main focus in this release has been Scala 3 support: We've added highlighting, navigation, and autocompletion for end markers. Autocompletion is now provided for the given, using, and export keywords, soft keywords, and th
Dataflow Analysis for Scala
One of the things IntelliJ IDEA is most famous for is its huge variety of helpful inspections and warnings. They make the lives of programmers significantly easier, frequently showing them errors in logic or style that they wouldn’t have noticed otherwise. Those inspections come in various shapes and sizes, ranging from simple pattern searches to highly sophisticated inspections that require tons of complex static code analysis behind the scenes. Among the most advanced examples of the latter are those offered with the help of dataflow analysis. These inspections have been available for
IntelliJ Scala Plugin 2021.2 Is Out!
This release has been focused on significantly improving our plugin’s Scala 3 support. There are also several new features, including a Package Search integration and optional compiler-based error highlighting. Better Scala 3 support Indexing of Scala 3 libraries is now fast, precise, and version-agnostic. You can now create both sbt and .idea-based Scala 3 projects, and create Scala 3 SDKs the normal way: The editor can handle significant indentation better: There are improvements in the debugger, formatter, REPL, auto-import, enums, extension methods, and many other areas: That said, p
IntelliJ Scala Plugin 2021.2 EAP: Package Search Integration
Package Search is a service developed by JetBrains that supports searching for libraries from multiple repositories such as Maven Central, Google Maven, and others. Since its introduction at the end of 2019, the Package Search plugin has made searching for and managing dependencies for Maven and Gradle projects more convenient. Starting with the Scala plugin 2021.2 release, the Package Search plugin features will also be available for sbt projects. In addition, the Package Search APIs are integrated to help users manage library dependencies directly from the IntelliJ IDEA editor. From th
IntelliJ Scala Plugin 2021.1 Is Out!
With this major version, we've focused primarily on the performance and overall quality of the plugin. We’ve still added a number of new features to help with day-to-day Scala programming. Let's take a closer look. 1. Kinds in type diffs 2. Machine learning completion 3. Phases and units in compilation charts 4. Scala 3.0.0-RC2 support 5. IntelliJ Platform plugin template 6. And more! Kinds in type diffs Scala developers don't always use higher-kinded types, but when they do, they like to do it with style. The type diff tooltip now supports kinds: Bec
IntelliJScala @ Scala Love in the City
It so happens that this year's Scala Days is Scala Love in the City. The online conference promises to be exciting. It includes some of the most well-known names in the Scala world, with Martin Odersky as a keynote speaker. And the virtual food is amazing ;) If you haven't registered yet, make sure to catch up before February 13. (Registration is virtually free!). The event is lovingly supported by JetBrains. Whereas last year the IntelliJ Scala team hosted a separate Harmony track at the Scala Love conference, this year we'll have a virtual booth. To provide an authentic experience, we'll ha
IntelliJ Scala Plugin 2020.3 Is Out!
Most releases are focused on editor features, but the stars of this show are parallel compilation and compilation charts. We also have a handful of editor goodies in store. Let's take a closer look. 1. Parallel Compilation 2. Compilation Charts 3. Enhanced Package Prefixes 4. MUnit Support 5. Scala 3 Improvements 6. And more! Parallel Compilation According to the official Scala Developer Survey, long compilation times is the main pain point in Scala programmers' daily workflows by a large margin. Although speeding up the Scala compiler is a worthy goal
Enhanced Package Prefixes
What happens when you combine one obscure IntelliJ IDEA feature with two obscure Scala features? If you choose the right ones, their obscurities just might cancel each other out, so that instead making everything far more opaque you can get an intuitive and internally consistent system. Let's see how the upcoming version of the Scala plugin combines package prefixes with chained package clauses and relative imports. The problem with packages Both Java and Scala use reverse domain name notation for packages. According to the Scala Style Guide, you should write package org.example.application ra
IntelliJ Scala Plugin 2020.2: Indentation-based Brace Handling
Because Scala is a curly-bracket language, adding and removing curly braces is an integral part of Scala programmers' everyday life. Those actions compound, so every improvement in this area matters. To understand the new advances, let us first take a take a look at it from historical perspective (or just watch this). Before At the beginning, there was no IDE assistance, so you had to tinker with curly braces manually: https://blog.jetbrains.com/wp-content/uploads/2020/07/braces-1.mp4 Not only did this require more keystrokes, but the code was not valid for long. It was not good... But now, t
Harmony @ Scala Love conference
Although we won't have Scala Days this year, the Scala Love conference is all the rage. The technology lets us transcend physical boundaries – we can unite while being far away... well, at least as long as there are tickets left ;) Owing to high demand, the IntelliJ Scala team has volunteered to extend the conference by hosting a third track called Harmony, in addition to the two existing ones, Joy and Happiness: Feel free to submit a talk in the extra Call for Papers (closed). Register to attend the Harmony track. Schedule (Google Calendar) 11:45 – 12:00 CEST / 02:45 – 03:0
Scala 3 support in IntelliJ Scala plugin
We added basic Dotty support in the IntelliJ Scala plugin a long time ago, right after the announcement of Dotty. However, for a long time Dotty has been a dark horse, and aiming at a moving target hadn't been easy. So it was reasonable to put that task on the back-burner and focus on Scala 2 for a while. Now that Dotty is finally destined to become Scala 3 and the language features are getting more stable, we have started to work on a full-fledged Scala 3 support. The 2020.1 Scala plugin nightly builds now include preliminary support for Scala 3: the new syntax (by the way, we had to adjus