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!

About Zlata Kalyuzhnaya

IntelliJ IDEA Marketing Manager at JetBrains. twitter: @ZlataKalyuzhnay ‏
This entry was posted in EAP Releases and tagged . Bookmark the permalink.

33 Responses to IntelliJ IDEA Starts the 2019.2 Early Access Program

  1. Hugues says:

    So many nice changes! Really like the improved gradle support.

    > REST Client supports cURL requests

    That’s so great, I don’t need to use postman for this anymore!

  2. Edoardo Luppi says:

    Awesome release. I was eagerly waiting for it and got it as fast as I could. I’ve been using the new tooltip via Registry key for quite some time now and I really like it. Still needs some refinements but it’s a step ahead!
    I’ve seen the “new” (well not anymore now hahaha) find in path dialog is available for non-JBRE user too, finally, thank you.
    For the Scope improvements, an idea is having the ability to persist the choosen scope between sessions/restarts.
    Hope the “Find cause” quick action lands in the web part too sooner or later.
    And lastly, for the plugins interface, I find it a bit annoying to have to open the dropdown to remove a plugin. It’s a small thing though.

    • Zlata Kalyuzhnaya says:

      Edoardo, thanks for the feedback! During this Early Access Program, we plan to introduce even more improvements and highly anticipated features. So please stay tuned.

      • Edoardo Luppi says:

        Awesome! It’s a “pity” I’m now more on the web stuff, and so I’m not going to enjoy much of those new features, if not the platform ones. But I’ve seen the web part is going strong too with this 2019.2

  3. Mladen says:

    These upcoming VCS changes are the most welcome. I hope you’ll also consider working on https://youtrack.jetbrains.com/issue/IDEA-62426 soon enough. Thanks

  4. Ren Ota says:

    About “New look for the inspection tooltip” feature,

    I tried it and found some problems.
    When I just moved caret onto some problematic symbol, the inspection tooltip didn’t appear and Alt-Shift-Enter never worked.
    Then I removed all import statement from a Java class file and tried if I could import classes quickly by using this feature, but in this case, another dedicated tooltip appeared and IntelliJ didn’t accept Alt-Shift-Enter.

    I think “you can use Alt-Shift-Enter wherever you can use Quick Fix(or Show Context Actions more simply?)” rule will be far more useful, even though without the tooltip I cannot confirm what command will be executed in advance.

  5. Sim1 says:

    I have an issue with all the releases of IntelliJ.
    I used once GitHub to upload a project into the repo.
    After that, all my projects open, request to be on GitHub (the code appears red). I set VCS as for all of them. But if I relaunch the application, them restart to ask again to be uploaded.

  6. Sim1 says:

    I set VCS as for all of them…

  7. rkl says:

    Hmm, it seems I relied on the IntelliJ’s local ignore functionality for a P4 project I have.
    Reading the blog, it seems that the ignore support is not geared for git. What about Perforce users?

  8. red says:

    “Surround a selection with a quote or brace with Tab is on by default”

    I’m not sure I see the necessity for this feature, is that to make text and parentheses more visible in the code, by inserting Tab characters before and after? The text below seems to suggest another, more useful functionality, could you please clarify?

    • Zlata Kalyuzhnaya says:

      Thank you for bringing this up. There is a misprint in the paragraph title, there’s no need to use the Tab key. I’ve updated the blog.

      I’ve also added gif to show how this feature works.

  9. Jens Koblitz says:

    Hopefully, this version will no longer take 50-70% of my CPU (i9-9900K) while building a small Angular Application.

  10. Artur says:

    Is there somewhere some guide how to adapt to new keymap for MacOS? How do I search history in terminal (ctrl+r), or send EOF character (ctrl+d)?

    • Alexey Zhebel says:

      Hi Artur!

      Ctrl + R is a bash shortcut, so if you didn’t change your shell used in the Terminal, it should work the same on any keymap.

      The shortcut for Send EOF is Cmd + D and it doesn’t look like it changed, it’s the same in the classic keymap and the new default for macOS.

      We don’t have a guide that describes ALL the shortcuts that changed. Please refer to this help article, which describes ways to learn shortcuts as you work (not just the ones you are used to, but also some you might not have been aware of): https://www.jetbrains.com/help/idea/mastering-keyboard-shortcuts.html#learn-shortcuts

      Finally, here is a hint, how you can find the action that corresponds to a shortcut in the old keymap and see what shortcut is mapped to it in the new keymap:

      1. Go to Preferences (Cmd + ,) and open Keymap.
      2. Select the old keymap (it is now named IntelliJ IDEA Classic)
      3. Click the Find Actions by Shortcut icon next to the search field above the list of actions and press the shortcut that you are used to (like Cmd + D for Send EOF).
      4. Select the action that corresponds to this shortcut in the list and change to the new default keymap (it is named Default) to see what the new shortcut for this action is (you should see it is still Cmd + D).

      Hope this helps!

  11. Rafal says:

    Any idea when this EAP will be available in Toolbox. I am running 2019.1.3 JBR11 and Toolbox is not showin a new version to install

    • Nigel Jones says:

      Same here – in fact for the EAP+JRE 11 install I have at 2019.1.3 (I was on EAP) it now only shows ‘release’ as a valid channel

      • Nigel Jones says:

        Ah! Having now read the article properly I get it… JRE 11 is now the standard version, so I needed to go into toolbox and install ultimate edition

    • Alexander Münch says:

      It’s interesting since I already use the new EAP since last Tuesday.
      However only on one computer. With two other computers the toolbox reports “No updates available”.

  12. tyler says:

    There is still a border on windos7. Will the windos7 top border be removed?

    • Zlata Kalyuzhnaya says:

      The borderless UI will be available on Windows 10, only. I’ve updated the blog. Thank you for your question.

      • Edoardo Luppi says:

        I think the borderless UI is available only using the JBR11. I’ve been trying for days to get it to work with JBR8, with no luck. Just now I tried booting with 11 and it works. Maybe worth mentioning, as even the source code of intellij-community shows this in a understandable way (https://stackoverflow.com/questions/56317647/intellij-idea-borderless-ui).

        After writing the above, I’ve discovered JBR8-b1491 *dosn’t* work, while downgrading to b1483 *does*. I’ve picked b1491 from the Bintray plugin days ago (and it is not available via https://bintray.com/jetbrains/intellij-jbr/jbrsdk8-windows-x64, strange).

        Well, now I solved it, but I want to post it in case someone has the same probem.

        • Zlata Kalyuzhnaya says:

          The borderless UI is available with JBR8. It seems that you use the incorrect version of JBR8.
          Please note, IntelliJ IDEA 2019.2 EAP1 uses v1.8.0_202-release-1566-b8.

  13. Elior Boukhobza says:

    Where the heck is offline mode for Gradle????????????????

    I don’t want to download new versions of the EAP everytime!!!! What the hell???

    • Anton Makeev says:

      Offline mode setting is available on the Gradle tool window (on the right side of the editor).

      What do you mean by downloading new version of the EAP? How is it related to the Gradle offline mode?

  14. Alan says:

    Pasting in curl doesn’t seem to work; I use ideaVIM and don’t usually paste with Ctrl+V, so is there a more direct way/an inspection to convert a curl command line to a request?

  15. Ivan says:

    On vanilla WIndows 10 1903 and Latest EAP
    There are criticical bugs appeared with this EAP (I love new features but IDE is useless with theese bugs)
    When I press sync senttings
    If I choose “using Jbr account” then “error unable to save settings Android plugin” and other errors
    If I choose “localSync” (the old sync method) “unable to save IDE settings error”
    and no stacktrace/error is shown in both cases
    —-
    https://www.cuba-platform.com/discuss/t/idea-192-4787-16-plugin-11-0-nightly97-183-critical-bug/9312
    https://www.cuba-platform.com/discuss/t/idea-192-4787-16-plugin-10-1-183-and-11-0-nightly97-183-critical-bug/9311
    And https://plugins.jetbrains.com/plugin/7315-git-flow-integration is not supported anymore (not listed in Plugins)
    Do I have to copy-paste this text to future eaps? (they all have these problems)

    • Ivan says:

      Also “project structure” can’t be opened if once wrong JDK was selected JDK can be changed only after reimporting project DURING importing it (once import done – impossible to open)

  16. Ivan says:

    Forgot to attach this log to my previous comment here
    https://youtrack.jetbrains.com/issue/IDEA-215849

Leave a Reply

Your email address will not be published. Required fields are marked *