The IntelliJ IDEA

Capable and Ergonomic IDE from JVM
Actually much more than just Java

IntelliJ IDEA features

Instant Completion

The first and probably most impressive feature we would like to highlight is instant completion. Unlike other IDEs, IntelliJ IDEA provides completion everywhere, not only when you are trying to access a member of a class. With smart completion, it filters the suggestion list and shows only classes, variables, fields, and methods of the type expected in the context. IntelliJ IDEA analyses data flow to guess the type of a variable in runtime and to provide a completion based on this type, adding class casts automatically.
Instant completion

Parameter Info

IntelliJ IDEA shows parameter info for every overloaded method or constructor, and it highlights the best match for the parameters already typed. This helps you choose between overloaded options and compare your inputs with expectation.
Parameter Info

Language Injection

Language injection is a feature of IntelliJ IDEA that brings advanced code assistance for expressions within string literals in Java code. This expression may contain SQL, JPQL, XPath expressions, HTML, CSS, JavaScript fragments, or any other language.
Language Injection

Version Control

IntelliJ IDEA provides a unified interface for major version control systems including Git, SVN, Mercurial, CVS, Perforce, and TFS. The IDE lets you browse the history of changes, manage branches, merge conflicts and much more.

Smart Completion

Ctrl+Shift+Space gives you a list of the most relevant symbols applicable in the current context. This, and other completions, are constantly learning from you, moving the members of the most frequently used classes and packages to the top of the suggestions list so you can select them faster.

Ergonomic User Interface

All lists, trees, and popups in IntelliJ IDEA provide you with a quick search that instantly takes you to a set of items that contains the text you’re typing. The first call of any IDE action is supposed to provide the most expected results. Need more results? Press the shortcut again and the IDE will go deeper to find what you need.

Inline Debugger

When you debug your code, IntelliJ IDEA shows you variable values right in the source code, next to their usages. You don’t have to hover the mouse over the variable, or switch to the Variables pane of the Debug tool window. Any time a variable changes its value, the IDE highlights it with a different color so that you can better understand how the state is changed over the code.

Keyboard Shortcuts

Action Shortcut Find action by name Ctrl+Shift+A
Show the list of available intention actions . Alt+Enter
Switch between views (Project,Structure, etc.). Alt+F1
Switch between the tool windows and files opened in the editor. Ctrl+Tab
Find/replace text string in the current file. Ctrl+F Ctrl+R
Find/replace text in the projectCtrl+Shift+F
Show the Navigation bar. Alt+Home
Insert a live template. Ctrl+J
Incremental expression selection. Ctrl+W and Ctrl+Shift+W
Surround with a live template. Ctrl+Alt+J
Find class or file by name. Ctrl+N Ctrl+Shift+N
Search everywhere. Double-press Shift
Invoke code completion. Ctrl+Space
Smart statement completion. Ctrl+Shift+Enter
Smart completion Ctrl+Shift+Space
Duplicate the current line or selection. Ctrl+D
Quick view the usages of the selected symbol. Ctrl+Shift+F7
Expand or collapse a code fragment in the editor. Ctrl+NumPad
Edit an item from the Project or another tree view. F4
Show the list of available refactorings (Refactor This). Ctrl+Shift+Alt+T

The complete keymap reference is available from the main menu

(Help | Keymap Reference).
More Shortcuts

Common Plug-Ins

JRebel for IntelliJ

JRebel is a productivity tool that allows developers to reload code changes instantly. It skips the rebuild, restart, and redeploy cycle common in Java development. JRebel enables developers to get more done in the same amount of time and stay in the flow while coding. JRebel supports a majority of real-world enterprise java stacks and is easy to install into existing development environments. The JRebel plugin for IntelliJ IDEA includes the JRebel agent and helps you to automatically generate the JRebel configuration. It enables JRebel for applications and servers with a single click and improves the debugging support in the IDE.

LiveEdit

LiveEdit allows you to view your changes in an actual browser window instantly without a page refresh, reload corresponding browser pages (related to opened file in IDE), and highlight corresponding elements. Currently only Google Chrome is supported (extensions for Firefox & Safari are still postponed). If you edit your PHP file or Smarty template, it is so boring to switch to the browser and reload the tab manually, isn’t it? Forget about it! Just View -> Reload in Browser. Want to see your change instantly? No problem. And yes, SASS/CoffeeScript are supported (external watching compiler is still needed). CSS and JavaScript (Kotlin, CoffeeScript and any other language compilable to JS) will be hot-swapped without a page refresh (of course, hot-swapped JavaScript will be effective only if it used in-cycle or event-driven).

IdeaVim

IdeaVim is a Vim emulation plug-in for IDEs based on the IntelliJ platform. Use the IDE’s plugin manager to install the latest version of the plugin. Start the IDE normally and enable the Vim emulation using “Tools | Vim Emulator” menu item. At this point you must use Vim keystrokes in all editors. If you wish to disable the plugin, select the “Tools | Vim Emulator” menu so it is unchecked. At this point IDE will work with its regular keyboard shortcuts. Keyboard shortcut conflicts between the Vim emulation and the IDE can be resolved via “File | Settings | Vim Emulation”, “File | Settings | Keymap” and key mapping commands in your ~/.ideavimrc file.

Open in Git host

Opens a local file under Git version control in its remote host using the default browser.
It can also optionally copy the URL to the clipboard.

Node.js Remote Interpreter

Allows one to configure Node.js interpreters for remote environments; also, you can run, debug, and profile Node.js applications remotely (currently working only though SSH).

LivePlugins

This is a plugin for IntelliJ IDEs to write plugins at runtime without having to restart IDE. It uses Groovy as the main scripting language and has experimental support for Scala and Clojure.

Ruby

The Ruby plug-in makes IntelliJ IDEA the smart Ruby and Ruby on Rails editor, ideal for full cycle application development.

Scala

IntelliJ IDEA is an IDE famous for the ergonomics and intelligent coding assistance it provides for developers coding in Java, JavaScript and other languages. The Scala plugin extends IntelliJ IDEA’s toolset with support for Scala, SBT, Scala.js, Hocon, and Play Framework. Support for Scala, SBT and Hocon is available for free in IntelliJ IDEA Community Edition, while support for Play Framework and Scala.js is available only in IntelliJ IDEA Ultimate.

More Plug-ins