IntelliJ IDEA 2018.3: GitHub Pull Requests, Java 12, Multiline TODO comments, Git submodule support and More

It’s here! Please give a warm welcome to IntelliJ IDEA 2018.3. This year’s third major update delivers notable features that you just can’t miss! Visit What’s new for a detailed overview, or go straight to the website and download the brand new version of IntelliJ IDEA right now. Keep reading for a brief summary.

KGBfLKOw

Java

  • IntelliJ IDEA supports the upcoming Java 12, and you can already preview the Raw String Literals (JEP 326) in the IDE. Learn more.
  • The IDE can now spot duplicates in more complicated cases, and it does this faster as well.
  • Java Stream API improvements: redundant sorted calls that are made before the subsequent min call are now detected.
  • A new data-flow-based inspection detects situations where the first condition is unnecessary because it’s already covered by a second condition.
  • The IDE now identifies situations where a suppressed inspection no longer addresses any warnings in the associated method body, class, or statement.

Find more details in the Java section of the What’s new page.

Editor

  • The IDE highlights the first and all subsequent TODO comment lines in the editor and displays them in the TODO tool window.
  • A new indentation status bar displays the size of the indent in the current file.
  • You can create a scope to disable code formatting from being done on specific files and folders. Go to the ‘Formatter Control’ tab in Preferences / Settings | Editor | Code Style.
  • Syntax highlighting and code completion are now available for EditorConfig files.

For more details, see the Editor section of the What’s new page.

Version Control

  • Thanks to initial support for GitHub Pull Requests, now you can view PRs in your IDE.
  • Support for Git submodules is here: update your project, commit changes, view diffs, and resolve conflicts.
  • The VCS Log lets you navigate to the previous/next selected commit.
  • The ‘History Up to Here’ action can now show the full history.
  • Whitespace changes can be ignored while merging.
  • The Annotations context menu now includes a new Ignore Whitespaces option (Git only).
  • A Diff Preview for annotated lines is now available via the VCS popup.
  • IntelliJ IDEA has a new option to copy a file from one Git branch to another.
  • The branch you are committing files to is now displayed in the Commit dialog.
  • The IDE updates Git multi-repository projects much faster than before.
  • By default, the IDE now uses the Native Git SSH Executable.

To learn more, visit the Version Control section of the What’s new page.

Search and Replace

  • The new Search Everywhere integrates the following navigation dialogs: Search Everywhere, Find Action, Go to class, Go to file, and Go to symbol.
  • You can now search for multiline fragments in the Find in Path dialog.
  • The new updated Structural Search & Replace dialog comes with loads of enhancements, including autocompletion in the search field, more flexible scope configuration, and more.

Find more details in the Search and Replace section of the What’s new page.

Reworked Plugin Preferences Page

  • We’ve redesigned the Plugins page in Preferences (Settings) to make it easier to manage, install, uninstall, and update plugins. Learn more.

Run Anything

  • Run configurations, terminal commands, Gradle tasks, or any other commands easily – use the new Run Anything action (double Ctrl). Learn more.

Kotlin
The bundled Kotlin plugin has been updated to v1.3.

  • The IDE can help you migrate your project to the new version of Kotlin.
  • The IDE gives you a set of project examples for multiplatform projects.
  • There are new Kotlin inspections and quick-fixes available.

For more details, see the Kotlin section of the What’s new page.

Spring & Spring Boot

  • The IDE already supports the recently released Spring Boot 2.1.
  • Upon project creation, the IDE will suggest installing or enabling the appropriate plugins to ensure that support for all the selected technologies is present.
  • Better JPA and Spring Data support for Kotlin.

For more details, see the Spring & Spring Boot section of the What’s new page.

Accessibility

  • We’ve introduced a new High-contrast theme to make IntelliJ IDEA more accessible.
  • Screen readers can now access and read: line numbers, VCS annotations, the debugger, and other gutter icons.
  • Accessibility inspections for HTML are available.

For more details, see the Accessibility section of the What’s new page.

JVM Debugger

  • It’s possible to attach to Java processes started without a debug agent using the serviceability agent.
  • The IDE can now automatically continue listening to the remote connections after the remote debug process disconnects.
  • You can assign your own custom shortcut to remove all the breakpoints from a file or from the whole project.
  • The IDE supports async stack traces in Remote JVMs.

Find more details in the JVM Debugger section of the What’s new page.

Maven

  • Delegate all your build and run actions to Maven. Learn more.

Terminal

  • Terminal tabs are saved between sessions. Learn more.

Run Configuration

  • Macros support is available in Java run configurations.
  • Use text files as input data.
  • Run configuration is run as a single instance by default.

For more details, see the Run Configuration section of the What’s new page.

JavaScript & TypeScript

  • Autoimports in JavaScript now also work for symbols from the project’s dependencies that are written as ES modules or have type definition files.
  • Improved Angular support: much more accurate code completion and Go to definition for variables, pipes and async pipes, and template reference variables.
  • You can now debug Node.js worker threads.
  • More flexibility with ESLint and TSLint.

For more details, visit the WebStorm What’s new page.

Kubernetes plugin

  • The Kubernetes plugin gets rich Helm support which includes coding assistance, a preview of Helm template results, a new ‘Helm Update Dependencies’ action, and more.

Find more details in the Kubernetes section of the What’s new page.

Database Tools

  • Cassandra databases are now supported.
  • Improved code completion for SQL code.
  • Improved the Introduce table alias action.
  • Auto-reconnect after time-outs.

For more details, visit the Database Tools section of the What’s new page.

Servers/Clouds

  • Support for WebLogic deployment plans and installing artifacts as a library.
  • Support for Jetty 9.4.x.
  • Support for OpenShift Origin (V3) and token authentication.

Docker

  • The Docker plugin is now bundled with the IDE.

Experimental features

  • JVM Profiler (macOS and Linux). Learn more.
  • Global menu bar on Linux.
  • Activity Monitor.

Miscellaneous improvements

  • The GTK (on Linux) and Windows native themes have been removed.
  • Drag-and-drop files and projects on the Welcome screen.

Check out the release notes for the full list of improvements, and share your feedback with us in the discussion forum, issue tracker, Twitter, or here in the comments!

Download IntelliJ IDEA 2018.3 and enjoy all the new features!

Happy Developing!

About Zlata Kalyuzhnaya

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

32 Responses to IntelliJ IDEA 2018.3: GitHub Pull Requests, Java 12, Multiline TODO comments, Git submodule support and More

  1. Paul Dingemans says:

    Multi line TODO’s do not work in Kotlin. For Java they work.

  2. Chris says:

    Hi,

    I’m using the following IBM JDK (the JDK that is distributed with WebSphere 9) as my project JDK:
    —-
    java version “1.8.0_171”
    Java(TM) SE Runtime Environment (build 8.0.5.16 – pwa6480sr5fp16-20180524_01(SR5 FP16))
    IBM J9 VM (build 2.9, JRE 1.8.0 Windows 10 amd64-64-Bit Compressed References 20180523_387150 (JIT enabled, AOT enabled)
    OpenJ9 – c81abfb
    OMR – f3f8112
    IBM – 4f87eeb)
    JCL – 20180515_01 based on Oracle jdk8u171-b11
    —-

    After upgrading to 2018.3, I am receiving the following error when trying to compile (Ctrl-F9) my project within IDEA. Any advice would be greatly appreciated.

    Error:Internal error: (java.lang.IllegalArgumentException) The XMLInputFactory does not recognize the property “http://java.sun.com/xml/stream/properties/report-cdata-event”.
    java.lang.IllegalArgumentException: The XMLInputFactory does not recognize the property “http://java.sun.com/xml/stream/properties/report-cdata-event”.
    at com.ibm.xml.xlxp.api.stax.msg.StAXMessageProvider.throwIllegalArgumentException(StAXMessageProvider.java:42)
    at com.ibm.xml.xlxp.api.stax.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:1906)
    at com.intellij.openapi.util.JDOMUtil$2.compute(JDOMUtil.java:58)
    at com.intellij.openapi.util.JDOMUtil$2.compute(JDOMUtil.java:43)
    at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:39)
    at com.intellij.openapi.util.JDOMUtil.loadUsingStaX(JDOMUtil.java:213)
    at com.intellij.openapi.util.JDOMUtil.load(JDOMUtil.java:280)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.tryLoadRootElement(JpsLoaderBase.java:78)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:66)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:36)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponentData(JpsLoaderBase.java:58)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponents(JpsLoaderBase.java:46)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalComponents(JpsGlobalLoader.java:83)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadPathVariables(JpsGlobalLoader.java:50)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalSettings(JpsGlobalLoader.java:45)
    at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:39)
    at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:50)
    at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:79)
    at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:279)
    at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:135)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:229)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$$Lambda$11.0000000010B9CA30.run(Unknown Source)
    at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
    at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$$Lambda$10.00000000101412A0.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:277)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:811)

  3. Pingback: IntelliJ IDEA 2018.3 正式版发布! – ITmax-

  4. Antonio Petricca says:

    Hi, IntelliJ still loses sources folder settings when reimport changed poms. Has been fixed that issue with this release?

    Thank you so much!

  5. Anton says:

    Congratulations!

  6. Ruslan says:

    What issue I can follow in youtrack for “Global menu bar on Linux”?
    It’s doesn’t work for me on Ubuntu 18.04

  7. Konstantin says:

    I have the same issue as Chris with IBM JDK

  8. Diana says:

    I cannot update from IDE. It takes me to download page. Does anyone else have this problem?

    • Zlata Kalyuzhnaya says:

      Hi Diana, IntelliJ IDEA 2018.3 is a major update. Unfortunately, we don’t provide patches for such “big” updates. (.2 -> .3)
      There is a useful tool that allows you to manage product updates – ToolBox App.
      With ToolBox App you can: download and install a new product, update an installed product to a newer version, rollback to a previous product version or uninstall a product. Give it a try https://www.jetbrains.com/toolbox/app/

  9. Independent Developer! says:

    Your price is too expensive!!! $600 a year is complete BS!!! What happened to the $15.00 a moth option??? It’s now ~50?? WTH!!! I like your product but at that price Eclipse/Netbeans are just as good and cost nothing.

  10. gshegosh says:

    Look and feel is completely broken on Linux due to lost support for GTK.

    Is there going to be an option to at least change “IntelliJ” theme colors to match the rest of my system?

    Please do not suggest Material UI plugin, it looks awful.

    • gshegosh says:

      Bumping in hope to have an official reply from JetBrains team.

      • Zlata Kalyuzhnaya says:

        Hi! Modern GTK theming requires gtk 3 comprehensive support on JDK side which doesn’t support latest GTK features well enough. Also, GTK theming is not comprehensive enough to be able to describe IntelliJ IDEA UI well.
        We’re working on the universal solution which may help with this issue as well. We are targeting v2019.1

        • gshegosh says:

          Which new UI doesn’t work with GTK? 2018.2 worked and looked great. It’s a great disappointment to see 2018.3 regress UI so much for no apparent reason. Linux is NOT a niche OS among software developers. Do not ignore them.

          Having said that, if GTK doesn’t work for you, perhaps ability to modify IntelliJ theme colors would be enough, best if some presets (Solarized, etc.) were available out of the box.

          Or maybe you could just use colors from GTK settings.

  11. Alon says:

    I also have the problem with IBM JDK! Any fix for that?

  12. Pingback: IntelliJ IDEA 2018.3 重大升级,哪些功能打动了你? – 技术成就梦想

  13. Stefan says:

    Hi,
    I have the following issue:
    With two remotes(“origin” and “upstream”) when I do a “fetch” from the UI, only the “origin” remote is fetched:

    git -c core.quotepath=false -c log.showSignature=false fetch origin –progress –prune

    But before the update to 2018.3 the fetch was performed for both remotes.

  14. Alexey Danilov says:

    Settings sync plugin does not seem to be functioning properly – settings pulled from the repository are not up-to-date (i.e. not the ones I used recently in 2018.2), but approx 1 months old

  15. Mustapha CHARBOUB says:

    Hello,
    i have a problem while trying to compile project , the stack trace bellow :
    Error:Internal error: (java.lang.IllegalArgumentException) XMLInputFactory ne reconnaît pas la propriété “http://java.sun.com/xml/stream/properties/report-cdata-event”.
    java.lang.IllegalArgumentException: XMLInputFactory ne reconnaît pas la propriété “http://java.sun.com/xml/stream/properties/report-cdata-event”.
    at com.ibm.xml.xlxp.api.stax.msg.StAXMessageProvider.throwIllegalArgumentException(StAXMessageProvider.java:42)
    at com.ibm.xml.xlxp.api.stax.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:1906)
    at com.intellij.openapi.util.JDOMUtil$2.compute(JDOMUtil.java:58)
    at com.intellij.openapi.util.JDOMUtil$2.compute(JDOMUtil.java:43)
    at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:39)
    at com.intellij.openapi.util.JDOMUtil.loadUsingStaX(JDOMUtil.java:213)
    at com.intellij.openapi.util.JDOMUtil.load(JDOMUtil.java:280)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.tryLoadRootElement(JpsLoaderBase.java:78)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:66)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadRootElement(JpsLoaderBase.java:36)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponentData(JpsLoaderBase.java:58)
    at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponents(JpsLoaderBase.java:46)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalComponents(JpsGlobalLoader.java:83)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadPathVariables(JpsGlobalLoader.java:50)
    at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalSettings(JpsGlobalLoader.java:45)
    at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:39)
    at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:50)
    at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:79)
    at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:279)
    at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:135)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:229)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$$Lambda$6.00000000112E6C30.run(Unknown Source)
    at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
    at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$$Lambda$5.000000001121D900.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
    at java.util.concurrent.FutureTask.run(FutureTask.java:277)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:785)

    Have you any idea ?

Leave a Reply

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