IntelliJ Scala Plugin 2022.1 Is Out!
This release has been focused on improving 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. New Scala project wizard 3. Alias exports 4. Unused declaration inspection 5. Scala debugger upgrades Scala 3 support improvements This release includes many Scala 3 support improvements: It is now possible to autocomplete extension methods (to see methods from other objects, press Ctrl+Alt+Space twice). The editor offers to import extension methods and given instances automatically. New i
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
BSP Support for Bazel
The Build Server Protocol (BSP), a protocol initially developed by the Scala Center and JetBrains, enables the easy integration of IDEs and build tools. To give users even more options in the BSP ecosystem, we decided to add support for Bazel. While there is already a Bazel plugin for IntelliJ-based IDEs, it is often not up to date with the latest releases. Bazel BSP, on the other hand, works out of the box and can be used with any version of IntelliJ IDEA that supports BSP. Currently this is implemented in the Scala plugin. The first commits for Bazel BSP date back to October 2019
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 is released!
In addition to incremental improvements, this release brings a large number of essential new features to help with day to day Scala programming: 1. Auto-import for implicits 2. Indentation-based brace handling 3. First-class companions 4. Auto-import for object members 5. In-editor Scaladoc rendering 6. Completion improvements Auto-import for implicits While you can use View | Show Implicit Hints to display implicits (even absent ones), importing an implicit was never an easy task. The new Auto-import for implicits action works exactly like Auto-import
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, th