IntelliJScala @ ScalaCon 2022
ScalaCon 2022 has come and gone. It started on Tuesday, October 4, and over the course of 4 days, the audience had the chance to enjoy 21 talks and 2 keynotes. JetBrains was a Gold Sponsor of the event, which meant that we, the Scala Plugin team, had the opportunity to participate, present a lightning talk, and answer questions from attendees who came to our virtual booth. (more…)
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 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