Early Access Program

IntelliJ IDEA Starts the 2019.2 Early Access Program

We have just opened the Early Access Program (EAP) for IntelliJ IDEA 2019.2! Download and try all the new features and improvements that are coming your way with the next release of IntelliJ IDEA, which is planned for the end of July.

blog@2x

Java

“Find cause” action for problems detected by dataflow analysis

IntelliJ IDEA has the “Constant conditions & exceptions” inspection that performs dataflow analysis of Java methods. Sometimes the result of this inspection is a warning such as “Condition is always true”, but sometimes it’s not obvious why the condition’s result is always true, or where in the code is causing the problem.

We thought that it may be useful to introduce a new action that can navigate you to the place in the code that is to blame.

JavaDataflow1

Convert a method with multiple returns to a single exit point

The IDE is going to add a new intention action that will transform a method with multiple returns into a single exit point. The method with a single exit point may be clearer and could prepare a method for further refactoring.

JavaTransformToSingleExitPoint

Inline method refactoring improvements

IntelliJ IDEA 2019.1 significantly improved the Extract variable refactoring. With this upcoming release, we’re going to beef up the Inline method refactoring.

The IDE will provide an Inline method refactoring when the return statement interrupts the execution flow. It will automatically use the ‘transforms to single exit point’ feature (described above) during the inline refactoring.

JavaInlineMethodRefactoring1-main

Editor

New look for the inspection tooltip

IntelliJ IDEA analyzes your code to detect potential and actual problems, and then provides you with quick-fixes that can optimize your code or fix the errors. You can see a list of all the possible quick-fixes by pressing Alt-Enter or by clicking the light bulb icon when you see one.

With this upcoming release, we’re making these quick-fixes more discoverable. We’re updating the inspection tooltip so that now it not only displays the problem description, but also instantly provides you with the first available fix.

To apply the first suggested fix, use Alt-Shift-Enter… or the standard Alt-Enter to see all the available quick-fixes.

NewInspectiontooltip

Code Completion suggests fixes for a mistyped pattern

In the upcoming IntelliJ IDEA 2019.2, code completion will suggest possible fixes for mistyped patterns, for example, if by accident you type “retru” instead of “return”.

CodeCompletionMisprint

New option to control the behavior of Move Caret to Next Word

The default behavior of the Move Caret to Next Word action will be changed: the IDE will move the caret to the end of the current word.

To change the behavior of the caret movement actions, go to Preferences/Settings | Editor | General and select where the IDE should stop the caret: at the current word boundaries, at the beginning of the next word, or even at both boundaries.

EditorMoveCaretToNextPreviousWord

Jump outside the closing bracket or quote with Tab is on by default

In v2019.2, Tab will take on a more active role in helping you navigate outside the closing brackets or closing quotes as you type. This was previously turned off by default, but we’re going to enable it.

Surround a selection with a quote or brace is on by default

When a text fragment is selected, typing a quote or brace surrounds it with quotes or braces. This feature was also optional before, but will be enabled by default in 2019.2.

If this checkbox is selected, the selected text on typing a quote, double-quote, or brace will be surrounded by these characters. If this checkbox is not selected, then the typed quotes, double-quotes, or braces will replace the selection.

EditorSelectWithQuote

New default keymap on macOS

Please note, the default keymap on macOS has been changed to be the macOS 10.5+ keymap by default, instead of Mac OS X. Also, we’ve changed the naming of the macOS keymaps accordingly:
Mac OS X 10.5+ > Default
Mac OS X > IntelliJ IDEA Classic

User interface

On Windows 10, the IDE now has a new modern borderless look.

UIWindows

New Class dialog reworked

The New Class dialog gets a new look and will show a preview of the list of all possible choices straight away.

UINewClassUI

New editor and debugger tabs

The editor and debugger tabs are undergoing a bit of a makeover to look the same in the Light and Darcula themes. In the Light theme, the tab’s height is now aligned with the tool window header height. Also, the white line under the tabs is being removed so as to minimize visual clutter.

Additional information preview in Project View

We are adding a new menu item under View | In-place Descriptions. This option will provide you with the ability to toggle the display of additional details (such as file sizes and modification time) for elements in lists and trees in the Project View.

UIInPlaceDescription

Cleaner toolbar in Find Usages

With the next version of IntelliJ IDEA, toolbars will continue to become clearer and less visually loaded. We’re cleaning up the toolbar in the Find Usages tool window, and removing or grouping together all the icons that were rarely used.

And while we are on the subject of uncluttering the UI, we’re also cleaning up the context menu and we plan to keep working in this direction.

General

Scope Chooser improvements

We are adding new scopes to the Scope Chooser such as Recently Сhanged and Recently Viewed files. You will also be able to select the Data Sources scopes.

ScopeChooser

Scope Setting for Rename Refactoring

In 2019.2, you will be able to select a scope for the rename refactoring just by double-pressing Shift-F6. This feature may be useful if you need to perform the Rename refactoring in dynamic languages. Please note that if you perform the Rename refactoring only in the specified scope, the IDE may not be able to preserve the semantic – it will only transform your code.

Version Control Systems

Forgotten files prediction

The upcoming IntelliJ IDEA 2019.2 will come with a cool new feature: the IDE will remind you to include into a commit the files you commonly modify, together with the files you’re currently committing.

VCSFilesPrediction

Prompt to add files to the version control that were copied into a project externally

IntelliJ IDEA will prompt you to automatically add to the version control any files that have been copied into the project from outside the IDE, or files that were created in the console or during code execution.

Previously, IntelliJ IDEA properly detected such new files and displayed them in the project view, and marked them red to indicate that they were not under version control.

VCSExternal

Ability to customize VCS Log columns

You will be able to choose the columns that will be displayed in the VCS Log tab. Simply click on the eye icon, select the ‘Show Columns’ item from the context menu, and then select the columns you want to see: Author, Date, or commit hash.

VCSLogColumn

Ability to abort Git merge and cherry-pick processes

We’re adding the option to abort a Git merge, so you won’t need to switch to the terminal anymore to do this. The Abort Merge option will be available in the Branches popup when there is an ongoing merge process.

VCSAbortMerge

The IDE will provide you with the option to abort the cherry-pick process as well.

Improvements in ignore files handling

With the upcoming IntelliJ IDEA 2019.2, we’re switching to native ignore files handling. Not only will the IDE correctly highlight all the ignored files, but you will also be able to add a file to .gitignore using the context menu from the Local Changes tab of the VCS tool window.

You will no longer need to manually add the ignored files in Preferences/Settings | Appearance & Behavior | Version Control | Ignored Files as we’re switching to native ignore. IntelliJ IDEA’s built-in mechanism for tracking ignored files is also being removed. Please note that if you have some ignored file via the obsolete mechanism, you’ll need to add them to the ignored files using the native ignores.

VCSIgnore

Another improvement in this area is that code completion will work in .gitignore files.

VCSCompletionGitIgnore

Show history for directory works through Git log

Now when you use the Git | Show History action on a selected directory in the Project View the IDE will display the Log tab filtered by a respective path.

VCSDirectory

Maven

Output of Maven sync is now displayed in the Build tool window

Right now (starting with IntelliJ IDEA 2019.1), the Maven build output is shown in the Build tool window.

To make the progress and error reporting more visible, to improve navigation, and to make the Gradle/Maven experience more consistent, v2019.2 will report the Maven import process in the Build tool window as well.

MavenBuildToolWindow

Also, the Maven and Ant tool windows will be shown only if Maven or Ant projects exist.

To top it all off, we’re bundling Maven 3.6.0 with IntelliJ IDEA.

Gradle

Improved display of the output of Gradle operations

We’re improving the way Sync and Build output errors are displayed in the Build tool window, as well as the navigation between errors shown in the Build tool window and the editor. The status tree and output console will be shown together side by side, to provide you with the information about the current status of the sync/build process. At the same time this will provide you with more detailed and familiar Gradle output information.

Please note that this is currently a work in progress, so we would highly appreciate it if you could share your own use cases with us in our issue tracker, or let us know if the errors in the output are incorrectly or even uncomfortably shown in the tree view.

In the Run tool window, the IDE now display the output of the Gradle tasks execution and execution of the Build / Run actions that have been delegated to Gradle the same way as in the Build tool window.

GradleBuildToolWindow

Сode insight improvements in build.gradle files

With this upcoming release, we’re making editing support in build.gradle files a lot better.

For a start, IntelliJ IDEA will support the task declaration syntax and will provide you with code completion.

GradleTaskDeclarationSyntax

The IDE will also be aware of Gradle tasks’ notations and provide you with relevant suggestions as you type. For example, when you have a task with the type `Copy`, the methods from the `Copy` class will be available inside a configuration closure, and the IDE will provide only those suggestions to you.

GradleTasksCreate

IntelliJ IDEA will provide completion inside a dependencies block.

GradleDependenciesCompletion

What is more, the IDE will now support various dependency notations and provide completion inside a dependency configuration closure.

GradleExclude

After the import of a Gradle project, the IDE will be able to resolve the plugin conventions’ members.

GradleJavaCompatibility

While working on these improvements, we’ve also managed to fix a number of bugs. For instance, the IDE should now correctly resolve the ambiguous method call between two methods accepting Closure and Action.

Reworked Gradle settings dialog

The Gradle settings dialog is being redesigned and cleaned up.

We’re removing the separate Runner settings, to make it clearer how to configure an individual linked project.

Please note that several options are being deprecated including ‘Group modules’, “Gradle VM”, “Create directories for empty content roots”, and “Generate separate module per Gradle source set”.

GradleSettings

To make the experience of opening IntelliJ IDEA smoother, we are making sure it no longer shows the modal dialog with Gradle settings when opening, importing, and creating Gradle projects. The IDE now tries to set what it considers as reasonable defaults.

JVM Debugger

The “Step Into” shortcut, F7, will offer you a choice of which method to step into, similar to how “Smart step into” worked previously.

REST Client supports cURL requests

You will be able to paste a cURL request into the REST client and have the IDE automatically convert it to a full request.

RESTClient

Performance improvements

This upcoming release will come with improved performance and UI responsiveness for the file system refresh. We’ve worked on startup performance optimizations and improved the editing performance for very large files too.

To make it easier for you to report UI freezes to JetBrains for a detailed investigation, we’re adding the ability to report such freezes through the same dialog as the one used for reporting exceptions.

Plugins

Improved Plugins page in Preferences/Settings

In IntelliJ IDEA 2018.3, we introduced a reworked Plugins page in Preferences (Settings), and since then we have received lots of valuable feedback on how we can improve the plugins management in the IDE even further.

Based on this feedback, we are continuing to work on this, and the upcoming release will come with a more ergonomic Plugins page. The IDE will show the plugin details right away, without any need to open the plugin’s detail pages one by one.

PluginPage

We’re adding in some options to give you the ability to disable or enable all the downloaded plugins all at once. You can find these options under the gear icon.

The “update” button will appear near the plugin name in the Installed tab. The Updates tab is being removed as well.

Speaking of plugins, we’re updating the bundled Kotlin plugin to v1.3.31. We’re also bundling the Node.JS plugin with IntelliJ IDEA Ultimate.

In other news, we are unbundling several plugins such as Struts 1, J2ME, JsTestDriver, Griffon (1.x), and CloudBees. Please note that we won’t be updating these plugins in future IDE releases, but we’ll fix critical issues if any come up. We plan to publish a blog post with more details about this, so please stay tuned.

Kubernetes plugin gets Kustomize support

The latest version of Kubernetes v1.14 has introduced support for Kustomize. The upcoming version of IntelliJ IDEA 2019.2 with the Kubernetes plugin will provide editing support for Kustomize, and you can already preview that with this EAP. The IDE offers completion for keys and paths, as well as a bunch of inspections for Kustomize resource files.

k8sCompletion

Also, the Rename refactoring now works for renaming the files and directories of the Kustomize resource files.

k8sRenameRef

Now you can navigate from a path declared in the Kustomize resource files to the associated packages or files in the project view. Use Ctrl-B / Cmd-B for this.

k8sNav

JetBrains Runtime

By default, the upcoming IntelliJ IDEA 2019.2 will run under JetBrains Runtime 11 (the uncertified fork of OpenJDK 11). However, we’ll continue publishing IntelliJ IDEA with JetBrains Runtime 8 (the uncertified fork of OpenJDK 8), as a fallback in case of regressions.

As always, the upcoming version of IntelliJ IDEA will include many bug fixes and other improvements. Take a look at the IDE release notes for all the changes.

We’ve also updated both Runtime versions to integrate lots of fixes.

JBR11 was updated to v11.0.3+12-b248.2:

  • JetBrains Runtime was rebased on top of OpenJDK 11.0.3.
  • The internal structure of the JBR tarballs was changed.
  • Fixed the crash observed on Linux/Gnome/Wayland (Fedora 29) and related to gdk_x11_display_set_window_scale.
  • Fixed the issue with radio buttons in the license agreement.
  • The output for Java version now contains all the complete information including the minor build number.

JBR8 was updated to v1.8.0_202-release-1566-b7:

  • JetBrains Runtime was rebased on top of OpenJDK 212
  • DaCapo tradebeans was repaired: java.vm.vendor was clean with the latest CPU.
  • Fixed the crash on macOS when switching between the IDE and other apps (apparently was due to Touch Bar support).
  • The fractional scale is now supported on Linux.
  • Fixed the issue with the IDE hanging after logging in on macOS.

Please note that in this build, the Cmd-Shift-A shortcut for Find Action doesn’t work on macOS because of the JBR-1135 issue. A fix for this will be delivered in the next EAP build.

Statistics Sending Change
In Early Access Program, we are enabling sending usage statistics by default. This means that we’ll be receiving anonymous data about features and plugins used, configuration, etc. This will not include personal data or any sensitive information, such as source code or file names. The data sent complies with the JetBrains Privacy Policy.

Whew, that just about covers it! Please download and try out the first EAP of IntelliJ IDEA 2019.2. We are looking forward to your feedback in our issue tracker, here in the comments, or on Twitter.

Happy developing!

image description