

Every aspect of IntelliJ IDEA is designed with ergonomics in mind. Clicking it or pressing Alt+Enter opens a list of actions you can take to make things right. Whenever IntelliJ IDEA detects that you're about to make a mistake, a little lightbulb pops up in the editor.

Even if you're only about to extract a variable, constant, or a method, IntelliJ IDEA will let you know that there is a similar code fragment that can be replaced along with the one you're woking on. Finds duplicate code fragments on the fly. For example, when you Rename a class within a JPA statement, it will update everything, from JPA entity class, to every JPA expression where it is used. Knowing everything about usages of a symbol, IntelliJ IDEA offers extremely effective, thorough refactorings. For example, you can inject fragments of SQL, XPath, HTML, CSS, or JavaScript code into Java String literals. Brings coding assistance for a selected language to expressions and string literals in another one, complete with all advantages you would normally have. When offering completion variants, IntelliJ IDEA analyses data flow to guess the possible runtime symbol type and refines choices based on that intel, automatically adding class casts. Offers a list of symbols matching your input and automatically adds required import statements. Lets you easily use static methods or constants. Press Ctrl+Shift+Space twice to get module.getProject() without any additional effort. Say you're looking for a value of Project and only have the Module module declaration. Digs a tad deeper than Smart Completion and lists applicable symbols accessible via methods or getters 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. Ctrl+Shift+Space gives you a list of the most relevant symbols applicable in the current context. Using this information it provides indepth coding assistance, quick navigation, clever error analysis, and, of course, refactorings. IntelliJ IDEA analyzes your code, looking for connections between symbols across all project files and languages.
