IntelliJ IDEA 2016: 2016.2.1 EAP is all about Kotlin [UPDATE]
Now that IntelliJ IDEA 2016.2, JetBrains’ second update planned for this year, has been released, it’s time for IntelliJ IDEA 2016.2.1 EAP. This EAP build updates the bundled Kotlin plugin version to 1.0.3. Stay tuned for more updates!
Update July 22, 2016
The first EAP build of IntelliJ IDEA 2016.2.1 includes not only bugfixes, but also an updated Kotlin support to 1.0.3. According to the official announcement, one of the best things about the IntelliJ IDEA 2016.2.1 EAP build is that it’s now possible to automatically convert Java code to Kotlin no matter where the code comes from — it works even if the code comes from a StackOverflow page. Until now, IntelliJ IDEA offered to automatically convert it to Kotlin only if the code was copied from inside the IDE.
Another improvement is in the code completion department for Kotlin; IntelliJ IDEA proposes non-imported members and adds an import statement automatically on selection. Smart Completion is available after by and in statements.
The Move Element Left/Right actions now work for Kotlin and the Kotlin Bytecode tool window now has a Decompile button. For more information read the Kotlin 1.0.3 announcement.
Update July 13, 2016
IntelliJ IDEA 2016.2 is here! This new update brings important fixes and new features, as well as support for languages and frameworks. Let’s see what’s new.
What’s new in IntelliJ 2016.2?
According to Andrey Cheptsov, IntelliJIDEA Marketing Manager at JetBrains, JetBrains continues their battle for UX and space, which is why they merged the Watches and Variables views together. Users can now use multiline expressions where they were not previously supported, such as the Use following expression field in the Data Type Renderers settings and the Condition and Evaluate and log fields in Breakpoint settings.
The Log view for Git and Mercurial has also been boosted; it opens faster now since its data is currently loaded in the background. From now on, users will see a thin stripe under the toolbar when refreshing or initially loading —this indicates the loading progress. They may also see another progress indicator while scrolling at the bottom if they have a Filter query set. Here is the entire list of Git and Mercurial changes.
IntelliJ IDEA 2016.2 ships with support for JUnit 5.
Significant performance problems can now be avoided as the IDE warns you when you instantiate new objects inside equals, hashCode, compareTo or Comparator.compare methods.
The spotlight is still on Spring as the JetBrains team added an inspection which offers to automatically replace field injection with constructor injection. IntelliJ IDEA 2016.2 also includes advanced support for Spring Cache (navigation; inspections; syntax highlighting, code completion and navigation inside SpEl and more), while FreeMarker and Velocity templates now have code completion and navigation for variables defined in Spring MVC controllers.
The list of goodies continues; as far as React is concerned, the IDE currently understands component props defined with propTypes and offers code completion and navigation for them. For AngularJS 2 they added a number of useful live templates and there’s support for many features of TypeScript 2.0: optional class members,readonly property, never type, this function type, global module export declaration, resolve for type declarations in @types folder, path mappings based module resolution, and more.
Each npm, Gulp and Grunt can be automatically executed before a Run configuration. Users must add their script in the Before launch section of the Run configuration dialog and that’s it. Plus, this update includes the Android Studio 2.0 features such as faster Emulator, experiment GPU Debugger, faster full builds, and code generation and testing for App Indexing. However, Instant Run is not fully-merged yet.
You can download the IntelliJ IDEA 2016.2 here.
Update May 12, 2016
Security update for IntelliJ IDEA 2016.1 and older versions
Two months after JetBrains released the first set of updates to IntelliJ, the team announced the release of an important update for all IntelliJ-based IDEs. This update focuses on solving critical security vulnerabilities inside the underlying IntelliJ Platform, as well as those which exist in older versions of the IDEs. Patches for them are also available.
Although there are no reports of active attacks against the above-mentioned vulnerabilities, the team recommended for all users to install the update as soon as possible.
An attacker managed to access local file system from a malicious web page without user consent due to the cross-site request forgery (CSRF) flaw in the IDE’s built-in webserver. At the same time, over-permissive CORS settings allowed attackers to use a malicious website in order to access various internal API endpoints, gain access to data saved by the IDE, and gather various meta-information like IDE version or open a project.
How to install the update
All you have to do is select ‘Check for Updates’ from inside the IDE or visit www.jetbrains.com to download the most recent version.If you’re running on OS X and the IDE doesn’t start after installing the update, you should refer to https://intellij-support.jetbrains.com/hc/en-us/articles/208516145 for workarounds.
The 2016.1 version can be downloaded here.
Original article was published on March 18, 2016
What’s new in IntelliJ 2016.1?
Debugger is among the new features; Evaluate Expression and Watches accept Groovy expressions when debugging Java code —a beneficial aspect when considering Groovy’s compactness, especially when working with collections.
The IDE will suggest resuming the current thread if it is blocked by another suspended thread. Until now, Resume used to resume all suspended threads, but this behavior can now be changed to only resume the current thread. If the IDE sees that the source code us different from that being executed, it warns you to help prevent time waste or errors.
The IDE supports git worktrees introduced in Git 2.5 to make working with multiple revisions of a single repository more simple. The Branches menu has received two additional actions: Checkout with Rebase and Rename; the former is faster than executing the two actions separately.
The code editor has received a new action to re-order method arguments, array elements and tag attributes. It now supports right-to-left languages (Arabic, Hebrew).
Gradle, Java 8, Scala…you name it
The project model of the IDE has been synchronized with that of Gradle: every source set of a Gradle project is currently a separate module in the IDE and could have its own dependencies. As far as Java 8 is concerned, Inline Method and Change Signature transform related method references in the project to lambda expressions. New inspections have been added to make sure the code using java.util.Optional, lambda expressions and functional interfaces is safe. For those who are using Guava, the IDE will provide replacing Fluentiterable, Function, Optional and Predicate to the corresponding Java 8 APIs.
Spring Boot news
Support for Spring Boot adds coding assistance within YML and banner.txt files and @SpringApplicationConfiguration is now respected when designing run configurations for tests. Plus, ‘Find usages’ is now up and running for configuration properties defined by user.
Thymeleaf and Android have not been forgotten either: the IDE currently offers coding assistance for user-defined dialects (Thymeleaf 3.0 is supported) and profiling leaked activities, as well as using new lint checks added in Android Studio 1.5 is now possible.
In addition to changing the versioning scheme and launching several “equal” releases per year, the JetBrains team is also aligning releases and version numbers across all products under JetBrains Toolbox. Details regarding the new versioning can be found here.