Java
Java 12
IntelliJ IDEA 2018.3 comes with initial support for Java 12! Preview the Raw String Literals (JEP 326 ) in the IDE now and take advantage of loads of useful inspections and quick-fixes. For example, convert multiline string literals to raw string literals and vice versa, detect redundant leading or trailing backticks (`), and more. Learn more
Please note that Java 12 is not released yet. You must accept the terms of the legal notice of the beta Java specification to enable support for Java 12. The implementation of an early-draft specification developed under the Java Community Process (JCP) is made available for testing and evaluation purposes only and is not compatible with any specification of the JCP.
Detecting more duplicates
IntelliJ IDEA can now quickly spot duplicates even in more complicated cases, such as if the variable names are different. The IDE will display duplicates in the diff viewer, so you can compare them side by side to one another.
Java Stream API improvements
The IDE detects situations where unnecessary sorted calls are made before the subsequent min call. A quick-fix to remove the redundant sorted call is provided as well.
Data flow enhancements
We’ve created a new data-flow-based inspection called Condition is covered by further condition. It detects situations where the first condition is unnecessary as it’s covered by the second one. The IDE provides a quick-fix to remove such redundant conditions.
Redundant usages of a suppressed inspection
IntelliJ IDEA now detects redundant usages of the @SuppressWarning annotation, or // noinspection line comment, or /** noinspection */ JavaDoc comment. When a suppressed inspection no longer addresses any warnings in the associated method body, class, or statement, the IDE will not only give you a warning, but it will also provide a quick-fix to remove such unnecessary annotations and comments.
Editor
Multiline TODO comments
IntelliJ IDEA 2018.3 now supports multiline TODO comments, now the first and all subsequent TODO comment lines are highlighted in the editor and listed in the TODO Tool Window. Simply add an indent starting from the second line of your multiline TODO comment, and the IDE will differentiate it from an ordinary comment.
Disabling code formatting for specific files and folders
We’ve made it possible to lock off certain files from formatting, imports optimization, and code rearrangement – actually from any operations where formatting is involved, explicitly or implicitly. Simply create a scope and add to it any files that must not be formatted!
New indentation status bar
IntelliJ IDEA displays the size of the indent in the current file in a new indentation status bar. If the file’s indentation doesn’t match the current settings of your project, an asterisk will be added to the indent view. You now have a choice of actions that control the current indentation in the status bar popup.
Improvements in EditorConfig support
The IDE now provides syntax highlighting and code completion for EditorConfig files. You can also use the new indentation status bar popup to easily navigate to the EditorConfig file being used.
Version Control
GitHub Pull Requests
IntelliJ IDEA comes with initial support for GitHub Pull Requests. Preview all the pull requests in your GitHub repository from the brand new GitHub Pull Requests tool window. Use the diff to preview the changes, or create a local branch from a Pull Request via the context menu then merge it as a regular branch.
“History up to Here” can show the full history
Previously, the History up to Here action only displayed the file's history up to the selected commit, but now it can show what happened to the file afterward, by switching to Show All Branches on the toolbar. This could be especially useful if the file was later deleted, as it is no easy task to find out about such occurrences.
Advanced navigation in VCS Log
You can now use the Forward and Back navigation actions while you are in the VCS Log after you navigate from the commit hashes to the commit in the VCS Log tab, or after you use the Go to hash/branch/tag action. Use the left and right arrow keys to navigate to the child or parent commit.
Ignore whitespaces
Now the IDE can ignore whitespace changes while merging. In the Merge Revisions for dialog, there is a new Ignore drop-down menu with options to hide or trim whitespace changes on merge.
Copy a file from one Git branch to another
IntelliJ IDEA 2018.3 allows you to easily copy a file from one Git branch to another via the handy new Get from Branch action which is available from the Files tab of the Compare branches dialog.
Branch name in commit dialog
The IDE displays the branch name you are committing the files to, right inside the Commit dialog. We have implemented this for Git, Mercurial, and SVN.
Preview differences in the File History tab
Diff Preview is now available in the File History tab of the Version Control tool window.
Git submodules support
IntelliJ IDEA 2018.3 now supports Git submodules! Clone or update your project, commit changes, view diff, and resolve conflicts.
Search and Replace
New Search Everywhere
IntelliJ IDEA 2018.3 introduces a new better way to navigate over the project and the IDE. Please give a warm welcome to reworked Search Everywhere! Actually, it’s much more than just Search Everywhere now as it incorporates all of the other navigation dialogs: Search Everywhere, Find Action, Go to class, Go to file, and Go to symbol. Note that all these navigation dialogs are still accessible through their own keyboard shortcuts, as before.
New Structural Search & Replace dialogs
IntelliJ IDEA 2018.3 delivers an updated and streamlined Structural Search & Replace dialog. Now autocompletion works in the predefined templates in the search field. You can view the search history in the drop-down menu under the search icon. Scope configuration is now easier and more flexible, too. The complicated Edit Variables form has been replaced with a filters panel, which you will find in the updated dialog.
Plugins Preferences Page
We've updated the Plugins page in Preferences (Settings) to make it easier to manage, install, uninstall, and update plugins. Now you can not only search for plugins by name but also by tags. It gets even better, as you now can also sort the results by downloads, name, rating, featured, or updates.
Run Anything
Run Anything
IntelliJ IDEA 2018.3 comes with a new centralized way to run a command in the IDE via the new Run Anything action (Double Ctrl). Use the new action to launch a run configuration, including Maven and Gradle, run a Gradle task, or run terminal commands.
Debug Anything
Simply press the Shift key to switch the Run Anything dialog to the Debug Anything mode.
Kotlin
The Kotlin plugin bundled with the IDE has been updated to v1.3
Kotlin 1.3 support
Just recently Kotlin had a major release for the language, tooling, and libraries. IntelliJ IDEA can help you migrate your Kotlin project to Kotlin 1.3 and perform all the required changes in obsolete code to make it compliant with the latest state of the libraries.
Enhancements in multiplatform project support
In Kotlin 1.3, the model of multiplatform projects has been completely reworked in order to improve expressiveness and flexibility, and to make sharing common code easier. IntelliJ IDEA provides a set of project examples that cover the most common use cases.
New Kotlin Inspections & Quick-fixes
Since the release of IntelliJ IDEA 2018.2, the Kotlin plugin has got over 30 new inspections, quick-fixes, and intentions that help you write a code much more effectively.
Spring & Spring Boot
Spring Boot 2.1 support
IntelliJ IDEA 2018.3 fully supports the recently released Spring Boot 2.1. Configuration values annotated with @DataSize
are
validated using
the default
@DataSizeUnit
, if specified.
Spring Initializr improvements
Now, when you create a project using Spring Initializr, the IDE will suggest installing or enabling appropriate plugins to ensure that support for all selected technologies is present.
Better JPA and Spring Data support for Kotlin
Now the IDE can automatically inject JPQL into query strings, providing completion for entity names and parameters. You can write Spring Data interfaces in Kotlin, and IntelliJ IDEA will understand the entities you use. The IDE provides smart completion for method names, and quick-fixes for parameters.
Accessibility
High-contrast theme
We are committed to providing a great experience for all of our users. With IntelliJ IDEA 2018.3, we’re rolling out a few important accessibility improvements, such as the brand new High-contrast theme.
Better support for screen readers
We’ve improved our support for screen readers, allowing them to read line numbers, VCS annotations, the debugger, and our gutter icons.
JVM Debugger
Attaching to java processes
Attach to Java processes that were started without a debug agent. After attaching to a process, you’ll be able to view the current thread’s state and variable values, and use the memory view.
If you want to attach the debugger to your local process, you can use the handy new Attach Debugger action, which is available in the Run Tool Window
Automatically restart listening to a remote connection
Now, while you are debugging a remote process, the IDE can restart a configuration automatically. Simply enable the new Auto restart option for remote debug configurations.
Async stack traces in remote JVMs
IntelliJ IDEA 2018.3 now supports async stack traces in remote JVMs. To start using the agent remotely:
- copy /lib/rt/debugger-agent.jar to the remote machine.
- add -javaagent:debugger-agent.jar to the remote JVM options.
Now you can define your own Async annotations in the Async Annotations Configuration dialog.
Action to remove all breakpoints
IntelliJ IDEA 2018.3 comes with handy new actions that remove all the breakpoints in a project, or all the breakpoints in the file. You can assign your own shortcuts for these in Preferences (Settings) | Keymap | Debugger Actions.
Maven
Now, it is possible to delegate all your build and run actions to Maven. Go to Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner and select the new Delegate IDE build / run actions to maven option.
Terminal
Improvements were made to the embedded terminal, so now IntelliJ IDEA 2018.3 will save the terminal tab names, current working directory, and shell history when you close the project or IntelliJ IDEA.
We’ve also redesigned the terminal tabs to look like the other tool window tabs.
Run Configuration
Run configuration is run as a single instance only, by default
By default, a run configuration is now run as a single instance only. However, there is the Allow running in parallel option in the Run/Debug Configuration dialog which you can enable if you ever want to run several instances of the same run configuration in parallel.
JavaScript & TypeScript
Autoimports in JavaScript
IntelliJ IDEA can now automatically add imports for symbols from the project’s dependencies, in JavaScript files. This works as long as there’s a TypeScript definition file inside the package, or the package contains sources written as ES module.
Improved Angular support
Code completion and Go to definition for variables, pipes, async pipes, and template reference variables in Angular templates are now more accurate.
Support for Node.js worker threads
You can now debug Node.js workers in IntelliJ IDEA – just make sure that you are using Node.js 10.12 or above and the --experimental-worker
flag. The IDE provides code completion for the worker threads’ API.
More flexibility with ESLint and TSLint
You can override severity levels from the linter’s configuration file and see all problems from the linter as errors or warnings.
For TSLint errors, press Alt-Enter and then the right arrow key. Now you have an option to add a special TSLint disable comment for this rule.
Kubernetes
Support for Helm resource files
The IDE now correctly resolves the Helm resource template files and provides you with our well-known editing support: code completion, rename refactoring, and, of course, inspections and quick-fixes.
Navigation in Helm resource files
The IDE lets you navigate from a value’s usage to its declaration in the chart’s values.yaml file. You can use the gutter icons to navigate between a label definition and its selector. Moreover, there are new gutter icons in values.yaml files that you can use to navigate to overridden / overriding values.
Helm template result preview
The IDE can now preview the result of the Helm template rendering in the diff. Simply choose the new Kubernetes | Helm Template action from the context menu.
Helm dependency update
A new Helm Dependency Update action is available to download the external tgz dependencies (or update the existing ones) and display them in the project tree.
Database Tools
Apache Cassandra database
With this release, we've added support for one more NoSQL database – Apache Cassandra.
Improvements in SQL code completion
Now code completion works for: non-aggregated fields in GROUP BY, all the columns are listed in SELECT, MERGE, and INSERT INTO table variable, named parameters of stored procedures, numeric fields in SUM() and AVG(), FILTER (WHERE) clause, and field types in SQLite.
Introduce table alias
You can now use the Introduce table alias action to create an alias directly on the table, and this alias will automatically replace usages of the table’s name.
Single connection mode
Each new console means a new connection. In IntelliJ IDEA 2018.3 though, it’s possible to use only one connection for the data source, and have all consoles then use this single connection. You can view any temporary objects in the database tree. Also, it’s possible to use the same transaction in different consoles. To turn it on, go to Data source properties | Options | Single connection mode.