IntelliJ IDEA

What's New in IntelliJ IDEA 13?

Every new release of IntelliJ IDEA brings changes to every part of the IDE, including the UI, the editor, tools and frameworks integration, and more. Here are some of the most important items added or improved in IntelliJ IDEA 13.

IDE General

User Interface

The new interface is even more straightforward and functional, with the toolbar and tool window buttons hidden by default.

User Interface
New Look and Feel

IntelliJ IDEA 13 introduces the new light look and feel for Windows and Linux available in both editions.

New Light Look and Feel for Windows and Linux
Navigate to Folder

Now you can navigate to a folder just as quickly as to a file, by using Navigate to File.

Navigate to Folder
Resources Roots

All files in resources roots will be copied to the out directory automatically, without compilation and regardless of the configured compiler resource patterns.

Resources Roots
Presentation Mode

The new Presentation mode lets you use the IDE for effective public talks and presentations.

Presentation Mode
Search everywhere

With the new powerful search you can find a class, file, action or even an IDE setting always using the same action.

Search Everywhere
Lens Mode

Now when you hover the mouse over a warning or error strip on the scroll bar, the IDE shows you the source code fragment annotated with the message.

Lens Mode
Find in Strings and Comments

Now you can search over the project using specific scopes such as string literals or comments.

Find in Strings and Comments
Speed Search

The new Speed Search highlights matches to help you navigate over the items quicker.

Speed Search
Java 8

Support for Java 8 has been improved according to the latest updates.

Generated Roots

The IDE protects code in these roots from refactorings and other external changes.

Fullscreen in Linux

Fullscreen is available for all platforms: Windows, Mac OS X and now in Linux.

Performance

The editor now is more responsive for typing while project indexing is in progress.

Navigate To Class & File

Suggestions in Navigate to Class and Navigate to File actions appear much faster now, with no delay as you type your query.

Debugger

With the new debugger feature you can see local variables when debugging third-party libraries or JDK sources compiled without debug information. More details…

Show Local Variables Without Debug Info

Now the Smart Step Into also supports anonymous classes and lambdas. More details…

Smart Step Into for Anonymous Classes and Lambdas
Contract Annotation

The new annotation lets you define dependencies between method arguments and return values.

Contract Annotations

Using contract annotations in the project enables smarter control flow analysis for your code. More details…

Find Usages

Frequently used symbols (e.g. getInstance(), getName(), etc.) now appear in the results of Find Usages faster than before.

Terminal

The new built-in command-line interface lets you run commands locally for any platform or remotely via the SSH protocol.

Terminal


Java EE 7Ultimate

JSF 2.2

The editor comes with support for the latest version of JavaServer Faces, including a rich set of code assistance features for flows, actions, contracts, pass-through attributes and more.

Java EE 7 and JSF 2.2

In addition, the IDE automatically detects JSF libraries so you don't need to configure the facet anymore.

Enterprise View

The new dedicated tool window lets you navigate through your project files and its relationships from the Java EE perspective.

Java Enterprise Tool Window
WebSockets

Support for the WebSockets annotations, including smart code assistance for defining parameters.

CDI 1.1

Improved navigation, code analysis and diagrams for injected dependencies, now with support for the new annotations and beans.xml configuration.

Java EE 7 and CDI 1.1
JAX-RS 2.0

Support for the new JAX-RS annotations, including smart code assistance for defining parameters. More details…

Java EE 7. RESTful Web Services
Application Servers

Out-of-the-box support for the latest versions of top open-source and commercial application servers, including: Glassfish 4.0, WildFly 8, Tomcat 8, Weblogic 12.1.2, WebSphere 8.5.5, TomEE 1.5.3, Virgo 3.6.2, tcServer 2.9.3 and others.

Batch Processing

Advanced code assistance for batch jobs definition, including specific code completion, navigation, code analysis and many more.

Java EE 7 and Batch Processing in IntelliJ IDEA 13
REST Client

Improved tools for testing RESTful web services, now with authorization capabilities and requests history.

REST Client Tool Window
Libraries

Now you don't need to download and configure Java Enterprise libraries manually. You can use the libraries provided by the application server.



Spring Ultimate

Contexts Configuration

The IDE automatically detects unmapped contexts defined with @Configuration and suggests adding them to the project settings.

Spring Context Detection

When the project is imported, the IDE also scans for XML configuration files and suggests adding them to the project settings.

Spring MVC View

The new dedicated tool window helps you easily navigate through the controller methods defined in the project, displaying the corresponding HTTP information such as mapped URL, method and path variables.

Spring MVC Tool Window
Bean Documentation

The Quick documentation popup displays bean-specific information additionally to JavaDoc, including XML file location, profile, stereotype, etc.

Beans View

The new dedicated tool window helps you easily navigate through the beans configured in the project, showing information such as dependencies, quick documentation, diagram, etc.

Spring Beans Tool Window
Performance

The IDE performance has been improved for projects with many beans.



Android

Android Studio

Google's new official IDE for Android developers is now based on IntelliJ Platform and provides the same feature set as IntelliJ IDEA Community Edition. More details…

Gradle Build System

The IDE provides now seamless integration with the new Gradle-based Android build system, including code assistance for editing Gradle DSL.

Android: Gradle Build System
Nine-patch Editor

Now you can edit your 9-patch graphics files without leaving the IDE, using the built-in 9-patch editor.

Android: Nine-patch Editor
Navigate to Declaration

Navigation to the declaration in the manifest for Activity, Service and other Android classes.

Lint Inspection

Better Android-specific code analysis with new Lint inspection.

RenderScript

Syntax highlighting for RenderScript files.

Navigate to Related Files

Navigate between the layout file and related Activity or Fragment classes via the Go to Related File action.

Android: Navigate to Related Files
XML Editor

Code completion for required attributes and rearranging of attributes based on code styles for XML files. More details…

Android: XML Editor
Logcat

The user interface for the Logcat tool window has been enhanced and now lets you filter by package name.

Android: Logcat User Interface
Database Access Ultimate

The IDE provides database tools for accessing device-embedded SQLite database. More details…

Android: SQLite Database Access

The built-in tools lets you browse tables, edit its data and run queries.

Multiple Devices Preview

The layout preview has been improved with more options and capabilities to display more than one device simultaneously.

Android: Multiple Devices Layout Preview
Color picker

Now you can select colors in XML drawables and layout files via the new Color Picker.

Android: Color Picker


Gradle

Code Completion

The IDE now provides code completion for dependencies and plugins.

Getting Started with Gradle
Code Generation

With the new code generation actions you can add dependencies and plugins even easier.

Code Generation
Dependencies Import

The dependencies import has been significantly improved. Now the IDE correctly recognizes dependency scope and replace library on it's version change.

Dependencies Import
Quick Documentation

Now you can use the Quick Documentation popup for Gradle DSL.

Quick Documentation
WAR Artifacts Import

The IDE now is able to configure Web facet and WAR artifacts automatically, based on the Gradle build files.

Artifacts Synchronization
Debugger

Now the IDE supports debugging for the corresponding Gradle tasks (e.g. test, exec, etc).

Performance

Project import features improved performance, made possible by changes in Gradle 1.8.



Groovy

In-place Refactorings

Now it's possible to introduce a variable, field, constant and parameter using in-place refactorings, without any dialogs.

Groovy In-place Introduce Refactorings
Label Formatting

Code style settings now let you specify custom indentation for the label blocks.

Spock Tests

The IDE now suggests using the Spock library when creating a test and the corresponding code generation actions.

Generate Spock Tests
Inspections and Intentions

The IDE is aware of final symbols and @Immutable classes and warns you if you try to change them.

Many other useful intentions and inspections are also available.

Pull Members Up

Use this new refactoring to move class members to a superclass or an interface.

Pull Members Up Refactoring in Groovy
Language Injection

Now you can inject other languages into GString literals and String concatenations.



Scala

Built-in SBT Support

The new version of Scala plugin comes with built-in support for SBT, with code completion and dependencies import.

Built-in SBT Support for Scala
Generate equals and hashCode

Methods equals() and hashCode() can be generated now automatically for any class via Generate new action.

Generate equals and hashCode for Scala
Code Rearranger

The new code style option which enables automatic Scala rearrangement, based on user rules.

Code Rearranger


Web Ultimate

JavaScript Debugger

Better JavaScript debugger for Google Chrome and Node.js: Variables tab has been reworked, and the new Elements tab helps you inspect DOM elements for the current HTML page.

CSS

The new Extract Inline CSS refactoring helps automatically extract inline styles.

The Image Preview and Extract Image refactorings are available for the data:uri attributes.

LESS, Sass & SCSS

Breadcrumbs and suppressible inspections support for LESS, Sass and SCSS languages.

TypeScript 0.9

Support for the latest version of TypeScript, including generics and enums.

Emmet Preview

The IDE now shows a preview for your Emmet abbreviation before you actually expand it.

Surround with Emmet

Now you can surround any piece of HTML code using Emmet.

Karma

Support for the Karma test runner and the Istanbul code coverage tool. Now you can view results for your JavaScript tests in a nice and visual format.

Dart 1.0

Support for the latest version of Dart, now with much faster code analysis and better Dartium browser integration.

Compass

Support for Compass CSS framework, including code completion, find usages for functions, mixins and variables.

Flash and Flex

Support for the latest Apache Flex SDK, Adobe AIR SDK. Numerous bug fixes and usability improvements.

Stylus

Basic support for Stylus stylesheet language, including code completion, formatting and CSS generation.

Web Components

Initial support for the new HTML template specification Web Components.

EJS

Support for the EJS JavaScript template library, including code completion, formatter and more.

Mustache & Handlebars

Formatting and syntax highlighting for Handlebars and Mustache templates.



Database Ultimate

Edit Data Sources

It's much easier to configure a data source with the new user interface.

Edit Data Sources

Just choose a database type and the IDE will automatically download the corresponding JDBC driver.

Find Usages by Primary Key

The new action showing referencing rows from other tables for the primary key selected in the Table editor.

Related Data in SQL
Statement Highlighting

Now the IDE highlights the statement at the caret that is to be executed.

Current Statement Highlighting in SQL
Structure View

The new Structure view is available now for SQL files, the Table editor and Results view as a tool window and a quick popup.

Structure View for SQL Files, Table Editor and Results View

With the new view you can quickly navigate between the columns and manage its visibility and ordering.

Show Data by Foreign Key

The new action showing rows from the tables referenced by the foreign key selected in the Table editor.

Quick Documentation Popup
Transposed Row View

The new action showing the transposed (record) view for the current row in the Table editor.

Quick Documentation Popup
H2, SQLite Files

Now it's possible to configure a data source by simply dragging H2 or SQLite files to the Database tool window.

Query Filter and Ordering

Improved user interface for query filters and order management in the table editor and results view.

Query Filter and Ordering

The column ordering is now server-side.

Navigate via Foreign Key

This new action navigates to the row referenced by the foreign key selected in the Table editor.

Smart Code Completion

This new smart code completion works for join conditions in SQL statements, based on the foreign keys information.

Smart Code Completion in SQL
Database Colors

Now it's possible to assign different colors to databases so it's easier to distinguish them in the Database tool window or in the Editor.

Database Colors


Version Control

Git & Mercurial Log

A blazing fast and powerful new log viewer is available for Git and Mercurial repositories, with user-friendly branches visualization, endless scrolling and other exciting features.

Git & Mercurial Log
Subversion 1.8

Support for the latest version of Subversion via the native client (no more SvnKit integration).

GitHub

The new Create Pull Request action provides an easier way to create pull requests without leaving the IDE.

Create Pull Request Action for GitHub

Many bugfixes and usability improvements for Create gist, Rebase, Share project and other actions.

Mercurial

Please welcome the new user interface for creating, updating, merging and switching branches and bookmarks.

Commit Dialog

The new commit dialog with more compact user interface.

The New Commit Dialog
Feature branches

When you switch between tasks, the IDE is able to switch between the associated feature branches. When you close a task, the branch can be merged to the master automatically.