Today, we’re excited to introduce IntelliJ IDEA 2016.1, the first update in the series of releases planned for 2016. We hope you’ll be surprised to find out how much we’ve managed to accomplish in four months. Download the new version today and try all the new features for yourself. Read this post to learn about the major improvements.
Evaluate Expression and Watches now accept Groovy expressions when debugging Java code. This may be convenient due to the compactness of Groovy, especially when working with collections.
If the current thread is blocked by another suspended thread, the IDE will suggest resuming it.
Previously Resume used to resume all suspended threads. Now you can change this behaviour to only resume the current thread.
If the IDE notices that the source code is different from that being executed, it warns you to help prevent time waste or errors.
The IDE now supports git worktrees introduced in Git 2.5 to simplify working with multiple revisions of a single repository.
The Branches menu offers two new actions: Checkout with Rebase and Rename. Checkout with Rebase is faster than performing the two actions separately.
Merging and comparing revisions just got easier with the added by-word difference highlighting.
The code editor introduces a new action to re-order method arguments, array elements and tag attributes: Move Element Right/Left (Alt+Ctrl+Shift+Arrows or Alt+Cmd+Shift+Arrows for OS X).
Static methods and constants are now auto-imported in the same way as classes – with a single press of Alt+Enter.
The Add unambiguous imports on the fly option now works for static methods and constants.
The code editor supports right-to-left languages (Arabic, Hebrew).
The project model of the IDE is now aligned with that of Gradle: each source set of a Gradle project is now a separate module in the IDE – and may have its own dependencies. This change has solved many issues reported by our users.
As with WAR artifacts, the IDE is now able to automatically configure EAR artifacts found in the build script.
Inline Method and Change Signature now transform related method references in the project to lambda expressions.
New inspections added to ensure the code using java.util.Optional, lambda expressions and functional interfaces is safe.
If you use Guava, the IDE will offer replacing FluentIterable, Function, Optional and Predicate to the corresponding Java 8 APIs.
IntelliJ IDEA 2016.1 bundles Kotlin 1.0. Kotlin is compatible with Java 6/7/8, Android and any other Java frameworks (e.g. Java EE, Spring) and build tools (e.g. Gradle, Maven). Kotlin can be used with existing Java projects. Starting with v1.0, Kotlin is backward-compatible.
To make learning Kotlin more fun, we’ve developed Kotlin Edu–a plugin that lets you take interactive Kotlin learning courses.
Code completion is more relevant now as it respects the type of symbols, their definition scope and their usage. The IDE prioritizes local variables, then parameters, then fields, then methods, etc. If the IDE expects a type, it will also take that into account.
Also, code completion now suggests property names for case classes within pattern matching statements.
Support for ES6 and TypeScript gets better with new refactorings (Create Method, Extract Method, Inline Method and Introduce Field), intention actions (Make Class Abstract, Make public/private and Remove Modifier), highlighting of unused imports, and working Optimize Imports. Completion adds imports automatically.
TypeScript 1.8 is supported.
AngularJS 2 support adds coding assistance for event and property bindings, and completion inside data bindings. Code insight and navigation are available for directives, variables defined in templates, custom event handlers, and paths in templateUrl and styleUrls fields.
The IDE now understands components defined using the new AngularJS 1.5 module.component() method helper.
The debugger for Chrome makes it easier to debug asynchronous client-side code. It allows you to stop at inline ES6 arrow functions, and to stop at the breakpoints set in web and service workers.
Support for Spring Boot adds coding assistance within YML and banner.txt files. @SpringApplicationConfiguration is respected when creating run configurations for tests. ‘Find usages’ is now working for configuration properties defined by user.
Working with Spring MVC is improved with added support for @EnableWebMvc.
Many issues reported by our users have been fixed.
The IDE now offers coding assistance for user-defined dialects. Thymeleaf 3.0 is supported.
It is now possible to profile leaked activities and use new lint checks added in Android Studio 1.5.
The Terminal tool window now offers Quick search via Ctrl+F (Cmd+F for OS X).
The Docker plugin has been improved in many ways, including Docker Machine support, a separate tool window, right-side panel to see logs and manage environment variables and port bindings, and more.
IntelliJ Platform has migrated to Java 8 which means plugin developers can now use Java 8 features in their code.
For more details on the new features and improvements, please read the What’s new page, where you can also download the edition of your choice.
As we announced earlier, with this release we’re changing the versioning scheme and moving away from one “major” release per year to several “equal” releases per year. Also, we’re aligning releases and version numbers across all products under JetBrains Toolbox. The new versioning will follow the format “YYYY.R” where yyyy represents the year, and “r” the release within that year. For more details on the new versioning, read this blog post.
UPDATE: If you’re running IntelliJ IDEA 15 Ultimate, you can sometimes see a confusing message in the Updates dialog, saying that you can evaluate the new version for 30 days, or buy a license key or upgrade online–regardless to the active state of your subscription. We apologize for this, and promise to fix it in the minor update that we’ll be releasing within several days.