2019.3 Nov 28
IntelliJ IDEA 2019.3 delivers major performance and usability
improvements, including faster startup, easier installation of theme and keymap plugins, enhanced VCS
workflows, and adds support for microservices frameworks, MongoDB and more.
Better Performance
Faster startup
One of the major performance improvements in this release is that startup times are shorter than ever. We
have introduced substantial architectural changes to parallelize some of the tasks the IDE performs at
startup so that they are not performed sequentially.
Reduced memory consumption
In IntelliJ IDEA 2019.3, we have optimized performance to reduce peak memory consumption when importing
large Gradle projects.
Responsive UI
We have managed to fix over 1600 UI freeze reports you’ve submitted to us. Apart from these, we’ve fixed
issues with editing POM.xml files in Maven projects, where completion suggestions are now displayed
without any delays. Other fixes have resulted in faster processing of VCS status updates in large
projects, better handling of ignored files, faster rendering of the project tree, better performance
when working with a large number of editor or debugger tabs, and more speedups.
Better Java performance
This release brings lots of improvements for Java type inference, which not only fix various editor
freezes but also speed up Java type inference for long method call chains. The ‘Join Lines’ action works
faster when applied to multiple lines. You’ll also experience accelerated highlighting for Java code,
especially when it comes to methods with generic var-args into which dozens of arguments are placed.
Better Kotlin performance
IntelliJ IDEA 2019.3 bundles Kotlin 1.3.60, which provides some impressive speedups such as faster
highlighting in the editor.
Improved Usability
Installing theme and keymap plugins without restarting the IDE
In IntelliJ IDEA 2019.3, we have implemented support for dynamic plugin installation, which means that
now you can load and unload theme and keymap plugins without restarting the IDE. We plan to extend
this approach to most plugins in future releases, to make plugin management as easy as possible.
More noticeable scrollbar
If you have had difficulty seeing the scrollbar, you now have the possibility to make it stand out. Just
enable the ‘Use contrast scrollbars’ setting under Settings/Preferences | Appearance & Behavior |
Appearance.
Smooth scrolling
A small but very valuable improvement we’ve made is to scrolling, which is now much smoother when done
using the mouse wheel.
Automatic configuration of imported Maven or sbt projects
Now when you import, create, or open an sbt or Maven project, IntelliJ IDEA will automatically set it up for
you, so you no longer need to configure the settings manually.
Reworked behavior of context actions
In the intention actions dialog, the IDE now shows all available intention actions by default, even after
you’ve chosen an action and closed the dialog.
Feature Polish
Extended support for Java 13 features
We’ve extended support for Java 13 text blocks: they are formatted automatically when inserting a third
quote.
More template languages can be injected
With IntelliJ IDEA 2019.3, you can inject more template languages into your code, specifically Pug
(ex-Jade), Handlebars, EJS, and Slim.
New ‘Field Call Hierarchy’ action
There’s now a simple way to view the hierarchy of a selected field by calling the new ‘Field Call
Hierarchy’ action with Ctrl+Alt+H.
Unified popup for errors and documentation
When you hover the mouse over a symbol highlighted by an inspection, now you can have the popup also
display the error, in addition to showing code reference information. To enable this, select ‘Show quick
documentation on mouse move’ in Settings/Preferences | Editor | General.
Improved Git checkout workflow
To eliminate confusion, the newly renamed ‘Checkout’ action called on a remote branch now creates a new
local branch, checks it out, and sets tracking to the upstream. We’ve also added a ‘New Branch from
Selected’ action for local and remote branches, which creates a new local branch and checks it out, but
doesn’t set tracking to any remote branch.
A simpler way to push branches
Another time-saver you’ll be glad to discover is that you no longer need to check out a branch to push it
– you can simply select a branch in the Git branches popup and push it from there.
Unified ‘clone’ experience
We’ve reworked the ‘Clone’ dialog to unify the UI for getting projects from different VCS hosting
services. If you’re already logged in to your VCS, the IDE displays a list of available repositories
that you can choose from, so you no longer need to enter a repository URL.
More insight into merge conflicts
Now when a conflict occurs during a merge, rebase, or cherry-pick operation, you can get more information
about the source of the changes displayed in the Merge dialog. Simply click the ‘Show Details’ link to
get the list of commits that led to the resulting code state.
New Frameworks and Technologies
Microservices frameworks support Ultimate
To help keep your IntelliJ IDEA projects technologically relevant, version 2019.3 adds initial support
for Micronaut, Quarkus, and Helidon. You can enjoy full coding assistance, navigation, inspections, find
usages, and other goodies if you employ a microservice-based architecture for your Java projects.
OpenAPI and Swagger supportUltimate
We’ve introduced support for Swagger v2 and OpenAPI v2, which provides validation by schema, as well as
code completion, navigation, find usages, and the Rename refactoring in YAML/JSON files containing API
descriptions.
New Endpoints viewUltimate
The brand-new ‘Endpoints’ tool window provides an aggregated view of both client and server APIs used in
your project for HTTP and Web Socket protocols. What is more, you can extend the view to all projects
currently opened in IntelliJ IDEA.
Spring Web Flux support Ultimate
View the full list of Web Flux URL mappings in the MVC view in the Spring tool window, navigate between
them, and benefit from coding assistance, search, and the Rename refactoring for URLs and URL
segments.
Java HTTP Clients support Ultimate
IntelliJ IDEA 2019.3 brings URL support in the following Java HTTP client APIs: java.net.{URI/URL},
Retrofit v2, OkHttp v3, and Injectable URL reference. Coding assistance, navigation, find usages –
everything you’re used to in Java is now available for HTTP clients.
Project Reactor support Ultimate
Take advantage of inspections for Java and Kotlin Reactor projects, which report thread-blocking method
calls detected in code fragments where a thread should not be blocked. The IDE will also warn you about
the potential return of null from lambda operators of Flux and Mono methods. On top of that, there’s a
dedicated Reactor debug mode that provides a helpful view of the reactive stack frames and intermediate
variable values.
MongoDB support Ultimate
IntelliJ IDEA 2019.3 comes with long-awaited MongoDB support. After you’ve added a MongoDB data source,
view collections and fields in the database explorer, run queries, and review query results. We’re going
to extend MongoDB support in future releases.
What’s Fixed
- The IDE can now detect the directory to which Gradle was installed through Homebrew.
- The UI has been improved so it’s now easier to manually set the Gradle home directory.
- IntelliJ IDEA now supports password storing via KWallet on Linux.
- For JavaFX projects, the IDE can display an FXML file with the embedded Scene Builder in the Scene Builder
tab.
- The ‘Authentication Required’ dialog for SVN doesn’t keep popping up anymore when the SVN server is not
reachable.
- We’ve fixed issues related to performing the ‘git update’ operation with rebase.
- The IDE now displays a progress bar when indexing the Git log.
- You can now choose whether you want to see when a change was authored or the commit timestamp in the file
history view and in VCS annotations.
Plus fixes for 1679 issues affecting a total of 3904 votes!