IntelliJ IDEA 2018 progress report: Bugfixes and more in 2018.1.1
© Shutterstock /Vector Goddess
IntelliJ IDEA 2018.1 arrived last month but now we have some important bugfixes! We go over all the important changes in IntelliJ IDEA 2018.1.1, including a fix for the automatic update issue and other issues.
Update April 13, 2018
IntelliJ IDEA 2018.1.1 is herere! This is the first bug-fix update for the recently released IntelliJ IDEA 2018.1. We’re fixing a lot of bugs in this release, from automatic updates to saving keystrokes.
The biggest problem on the docket: automatic updates. Initially, “automatically check for updates” was set to disabled by default (IDEA-189445). Now, you can make sure your version is up to date without needing to go to the settings.
IntelliJ IDEA 2018.1.1 now comes with support for annotationProcessorPaths option in the maven-compiler-plugin 3.5 for external dependencies. It also updated the bundled Kotlin plugin to v1.2.31
- Keystrokes are not lost during freezing (IDEA-186636)
- Clicking the Replace all option from the Replace in path dialog doesn’t cause the IDE to freeze (IDEA-188229)
- We’ve fixed the issue with broken JPS that inhibits all non-gradle Android builds (IDEA-189170)
- Facet settings stored externally are now loaded by the build process (IDEA-189112)
- Performance for scrolling huge text file on 4K monitors was improved (JRE-584)
- The issue with AWT popups, which were above other process windows after alt-tab, was fixed (JRE-695)
Update March 28, 2018
IntelliJ IDEA 2018.1 is JetBrains’ first major update of 2018. It brings a lot of improvements to supported languages, frameworks, version control tools, debugger, compiler, and editor.
We’re going to focus on some of the most important highlights presented in this blog post but if you want to see the full list of fixes, check out the release notes. Don’t forget to download IntelliJ IDEA 2018.1 from the JetBrains website or get the update from the Toolbox App.
What’s new in IntelliJ IDEA 2018.1
- Completion in the Stream API chains is now aware of type casting, which means it can suggest a completion item according to the existing call filter (String.class::isInstance), and also for an automatically typecast completion item.
- The data flow analysis can now track the relationships between variables like “greater than” and “less than.” Furthermore, the IDE also detects when a condition is always true (or false) in all the possible code paths when the variables are compared.
- The new Java 9 inspections and quick-fixes will come in handy because the IDE checks that a service loaded by ServiceLoader is declared in the module-info.java file, and offers a quick-fix to add a missing statement to the module-info.javafile.
- If there’s an unresolved class mentioned in module-info.java, the IDE will suggest creating the missing class, as well as missing exported packages.
- There’s a new Fix partially button which appears when you have several options for fixing possible problems in the chosen scope. You’ll find all the suggested quick-fixes grouped under the Fix partially button.
- Support for the JUnit5 @Tag annotation has been added, which means you can include tagged classes and tagged methods, in the testing scope. All you have to do is select the Tags (JUnit 5) option in the test kind field in the Run/Debug Configuration dialog. Make sure to use the Uniqueld field to filter tests according to their id.
- There’s a new Throw Exception action. This means you can throw an exception from a certain location in your program without changing the code. You’ll find it in the Run | Throw Exception menu, or in the frame context menu during a debugging session.
- You can now print breakpoints stack traces to the console — this option can be enabled in the Breakpoints dialog box.
- Furthermore, you can now copy the current thread stack trace via a new Copy Stack action.
- JetBrains has extended the Async stack traces feature, which means you can now use the @Async.Schedule and @Async.Execute annotations to set up capture points that are not included in the default configuration. All you have to do is add Maven artifact as a dependency.
- The new Use –release option for cross-compilation (Java 9 and later) checkbox on the Java Compiler page [you can find it here: Preferences | Build, Execution, Deployment | Compiler | Java Compiler] is enabled by default. You can, of course, disable it whenever you need to use the –source and –target options with Java 9 and link against Java 9 classes at the same time.
- You can use a specific version of the ECJ compiler. You’ll have to select Eclipse from the Use Compiler drop-down menu and specify the path to jar with the chosen compiler.
- Good news! If there are any issues that have been detected in your code, the IDE now highlights the folded code regions that contain errors or warnings, and colors such blocks according to their validation status.
- Speaking of folded code, the IDE also highlights folded code regions if they contain any matches when you search through the current file.
- You can now see the automatic inferences of @NotNull or @Nullable annotations right in your source code. You’ll have to enable the Show inferred annotations inline checkbox here: Preferences | Editor | General | Appearance.
- You’ll notice that, in the Project Tool Window, you can paste a code fragment directly into a package, and a new Kotlin file with the pasted code will be created.
- The Kotlin Plugin offers new intentions which convert the scoping function calls let and run into each other, as well as also into apply and vice versa.
- You can now annotate every groovy class in the scope with the @CompileStatic annotation [available in the context menu Refactor | Convert to @CompileStatic].
- IntelliJ IDEA 2018.1 also reports unnecessary import alias for Groovy files.
The changes from Android Studio 3.0 have been merged, which means there are a lot of new features, including:
- Android Profiler, a new suite of profiling tools that provide real-time data for your app’s CPU, memory, and network activity.
- Device File Explorer Tool Window shows the file and directory structure of your Android device or emulator. If you want to view, copy, and delete files on an Android device, this tool window will come in handy. You’ll find it in View | Tool Windows | Device File Explorer.
- The Layout Editor has been improved.
- You can now build Instant Apps – lightweight Android apps that can be run without installation. However, you’ll have to make sure the Instant Apps Development SDK is installed.
- After you run a Spring Boot web application, a new icon is shown in the gutter for methods with @RequestMapping annotations that handle incoming HTTP requests. If you want to open all the mappings in a scratch file with an .http extension and perform an HTTP request in the editor via the new REST client, go ahead and click the icon.
- All the beans that are registered in the application context can be seen in the Beans tab in the Run Dashboard (or in the Run Tool Window). In IntelliJ 2018.1, this information is also available in the editor.
- The latest TypeScript 2.7 features are now supported.
- The Implement Members action has been improved.
- You can create a new Vue project with the Vue.js plugin. To install Vue CLI, run npm install –g vue-cli in the terminal.
- The Docker plugin now supports Multiple Docker Compose files and respects not only a docker-compose.yml but also an optional docker-compose.override.yml file.
- The plugin shows all the existing Compose projects.
- The new Kubernetes plugin supports the Kubernetes resource files from v1.5 up to v1.9 [latest release]. It looks for the presence of apiVersion and other fields of this kind in the files, and if these are present, it will consider such files as Kubernetes resource files.
- Rich support for the YAML Kubernetes resource files: If you type the required key and invoke Smart Completion, the new plugin will auto-complete all the required keys from all the levels below.
- There’s a built-in Live Template that allows you to quickly create the type of YAML Kubernetes resource file that you need. There are a few predefined Kubernetes templates, and you can invoke the necessary Live Template by typing its abbreviation.
- Furthermore, the Kubernetes plugin will alert you whenever you select deprecated Kubernetes properties.
- There’s also some support for JSON Kubernetes resource files based on the JSON schema functionality