Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

IntelliJ IDEA 2016.1 Is Here

DZone's Guide to

IntelliJ IDEA 2016.1 Is Here

We’re excited to introduce IntelliJ IDEA 2016.1, the first update in the series of releases planned for 2016.

· Java Zone
Free Resource

Just released, a free O’Reilly book on Reactive Microsystems: The Evolution of Microservices at Scale. Brought to you in partnership with Lightbend.

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.

New Features

Debugger

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.

idea-debugger-groovy

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.

idea-debugger-sources-mismatch

VCS

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 RenameCheckout with Rebase is faster than performing the two actions separately.

Merging and comparing revisions just got easier with the added by-word difference highlighting.

idea-vcs-merge

Editor

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.

idea-import-static-members

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).

idea-editor-rtl

Gradle

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.

Java 8

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.

idea-intention-6

If you use Guava, the IDE will offer replacing FluentIterable, Function, Optional и Predicate  to the corresponding Java 8 APIs.

idea-guava-quick-fixes

Kotlin

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.

Scala

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.

idea-scala-completion-2

Also, code completion now suggests property names for case classes within pattern matching statements.

idea-scala-completion

JavaScript

Support for ES6 and TypeScript gets better with new refactorings (Create Method, Extract MethodInline Method and Introduce Field), intention actions (Make Class AbstractMake public/private and Remove Modifier), highlighting of unused imports, and working Optimize Imports. Completion adds imports automatically.

idea-ts-inline-rename

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.

idea-angular

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.

Spring Frameworks

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.

idea-spring-boot

Working with Spring MVC is improved with added support for @EnableWebMvc.

idea-spring-mvc-controller-views

Many issues reported by our users have been fixed.

Thymeleaf

The IDE now offers coding assistance for user-defined dialects. Thymeleaf 3.0 is supported.

Android

It is now possible to profile leaked activities and use new lint checks added in Android 1.5.

Others

The Terminal tool window now offers Quick search via Ctrl+F (Cmd+F for OS X).

idea-speed-search-terminal

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.

idea-docker

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.

New versioning

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.

Strategies and techniques for building scalable and resilient microservices to refactor a monolithic application step-by-step, a free O'Reilly book. Brought to you in partnership with Lightbend.

Topics:
intellij ,jigsaw ,jdk9

Published at DZone with permission of Andrey Cheptcov, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}