IntelliJ IDEA 2019.1: Customizing interface themes, switch expressions from Java 12, debugging inside Docker containers
This is a review of the new in IntelliJ IDEA 2019.1. Links in the headlines lead to the appropriate sections on the site, where everything is described in detail, but in English.
Interface
Made new interface themes and the ability to create them yourself.
Refactoring Extract Variable saves semantics better than before.
In ternary expressions, the IDE only highlights the condition in which a violation of the validity of a null value is detected.
The IDE tracks the multiplication, residual, and right shift values.
Now you can customize variable names for automatically generated try / catch blocks .
The IDE now automatically deduces the purity of designers from sources.
You can go from the stack trace to the exact location of the error on the line.
The IDE has learned how to find duplicates of the switch branches, they can be combined using a quick fix.
You can move switch expressions and catch blocks up / down using the Move Statement Up / Down action.
You can now import and export Structural Search templates to and from the clipboard.
Gradle
In new Gradle projects, build and launch actions are delegated to Gradle by default.
Delegation of the assembly and run can be configured separately for each Gradle-project.
When the assembly is delegated to Gradle, the HotSwap function works.
The built-in version of Gradle has been updated to 4.10.3.
With the Gradle Test Run Tool, you can now run JUnit parameterized tests.
The IDE correctly selects which Gradle test task to run from the editor.
In the Gradle window, you can view the structure of a multi-module project without having to run the gradle projects command.
Maven
When the assembly is delegated to Maven, the HotSwap function works.
Now IntelliJ IDEA works only with Maven 3.3.9. Maven 2 is no longer supported.
All Maven build output is now displayed in one place - in the Build toolbox.
Maven diagrams show conflicting dependencies and duplicates. In addition, you can separately view the neighbors of the selected node or the paths to them, as well as turn off the frame in the diagram.
Version Control Systems
The Fixup and Squash actions are now in the context menu on the VCS Log tab, so that you can
quickly create commits with fixup messages ! and squash!
You can cheat files from the VCS log in the context menu.
In the Branches window, you can now see the presence of incoming and outgoing commits for individual branches, if the Mark Branches option is enabled for incoming / outgoing commits in the Branches popup .
The new Recently Deleted node on the Shelf tab shows all recently deleted deferred files and gives you the opportunity to restore them.
For VCS annotations, there is a mode in which only the initials of the author are displayed.
When performing a partial commit, you can select all the code fragments and deselect them with a single action: use the new Uncheck all check box in the Diff panel of the Commit Changes dialog box.
In the Project panel , files and folders ignored using Git Ignore are highlighted in olive green.
Diff viewer
To copy text to an empty Diff window, you can drag and drop a file into it.
Now in the Diff Viewer, you can view the differences not only in words but also in characters.
New option Swap Sides allows you to choose which file in the Diff Viewer will be displayed on the left and which on the right.
Recent Locations
In the new Recent Locations popup window ( Cmd-Shift-E / Ctrl-Shift-E ) you can view all the places in the code that you have recently visited or edited.
JVM debugger
The debugger expression evaluator now supports synchronized statements, assert statements, and switch statements .
While debugging a Java project, you can exit the current block using the new Step Out of the block action.
Now you can call up the transition to the cursor with the mouse - click on the desired line number in debug mode.
Editor
There is an export of code style settings to a JSON file. Exported settings can be used to integrate with external tools.
Now you can enable soft-wraps for a specific file type.
The first time you use the keyboard shortcut Ctrl + Y in Windows, you can assign it to the Delete Line or Redo action in the Keymap Configuration dialog.
Highlighting errors, implicit prompts, and GoTo / Quick Definition / Quick Documentation actions now work in for- generators.
The Find Usages action can be invoked for implicit definitions, apply / unapply methods, for- generator methods, and Single Abstract Method (SAM) types .
You can decompile compiled Scala files in Java .
Now you can choose the version of the formatter Scalafmt .
Made a plugin for the HOCON format.
Improved error highlighting: partial merging, designer lighting, a plugin for the better-monadic-for compiler ( implicit0 function), kind-projector (polymorphic lambdas at the level of values), simulacrum (constructors of types with greater arity) and more.
Groovy
Supports Java syntax lambda expressions from Groovy 3.0.
Intention actions and inspections for Groovy work inside the body of the lambda.
Debug Java lambd.
Kotlin
The integrated Kotlin-plugin has been updated to version 1.3.21.
You can create a method without parameters using live templates .
The IDE suggests adding an Async suffix to the function that returns Deferred .
Another intention will help convert SAM as a lambda into an anonymous object.
Improved string conversions.
JavaScript and Typescript
New refactorings and intention actions for restructuring JavaScript and TypeScript.
New action to replace the function that returns Promise to an asynchronous function with async / await .
Updated documentation for CSS and HTML.
Improved console debugger JavaScript and Node.js.
Docker
Now you can debug Java applications running inside the Docker container.
Kubernetes Plugin
Added the ability to download resource specifications from external sources.
Rename refactoring for charts can be used in Helm resource files.
Spring cloud stream
Supported editing projects in S pring Cloud Stream : syntax highlighting, code completion, inspections and quick fixes.
Auto-completion of binding names works for values and references in the application.properties and application.yml files.
You can switch between the message handlers for consumers and producers by clicking the icon in the editor field.
Other
In IntelliJ IDEA 2019.1 got all the innovations Android Studio 3.3. More details .
Early access to the new JetBrains Runtime 11. So far, IntelliJ IDEA is available with both the JetBrains Runtime 8 and the JetBrains Runtime 11.
Supported databases Greenplum, Vertica and Apache Hive. Snowflake will appear in the next update.
New keep-alive and auto-disconnect settings for data sources.
Supported framework Eclipse Concierge OSGi .
Now you can search for plugin settings. Even if the plugin is installed manually, the settings will be displayed in the search results.
The list of important improvements turned out to be quite large, but in working on all these cool features we did not forget about quality and stability - we continue to correct mistakes, get rid of performance problems and make the IDE even more convenient.
A complete list can be found in release notes . We thank everyone who votes for the tasks in the tracker, sends suggestions for improvement, shares thoughts on Twitter and in the comments on Habré. Your feedback helps us make IntelliJ IDEA better, keep up the good work!