IntelliJ IDEA Q&A for Eclipse Users

Q: What happened to my Workspace? Where are all my projects?

A: They're OK, but in a slightly different way.

IntelliJ IDEA creates a project for the entire code base you work with, and a module for each of its individual components. So, IntelliJ IDEA module is more like an Eclipse project, and project is roughly similar to Eclipse workspace. There's no exact equivalent to Eclipse's workspace that contains all your work, but you can open multiple projects in multiple frames at the same time.

This table can help you see how Eclipse and IntelliJ IDEA concepts map to each other:

Eclipse IDEA
Workspace Project
Project Module
Project-specific JRE Module JDK
User library Global library
Classpath variable Path variable
Project dependency Module dependency
Library Module library

Q: How do I open my Eclipse projects now?

A: Very simple. You have an option to either import, or link them.

IntelliJ IDEA supports Eclipse classpath module dependencies, so you can link your Eclipse projects to IntelliJ IDEA and work even in a mixed IDE team. Alternatively, you can import an Eclipse project to IntelliJ IDEA native format if you don't need any backward compatibility. If you're using Maven, you can directly open a pom.xml file and IntelliJ IDEA will import all dependencies, download the libraries if needed, and do all the setup completely.

Q: Facets — what they are for?

A: To streamline the project configuration.

Facets encapsulate the support for a variety of frameworks, technologies and languages. For example, to enable Spring in your project, you only have to add the corresponding facet. All libraries are downloaded and configured, you get the full range of coding assistance, refactorings, etc. Moreover, the code model is also recognized, so you are completely free from worrying about any configuration issues.

In most cases, you can add more than one facet of the same type to your project. For example, you can have multiple Web facets for deploying the application to different servers, or several EJB facets, each for its own EJB version. (See also Project Configuration.)

Q: Where do I configure project JDK?

A: In the Project Settings dialog.

To add a JDK to project, press Ctrl+Alt+Shift+S, under Platform Settings click JDKs and specify JDK path. After that, you can click Project and specify which of JDK you have configured is used in the current projects. Remember that JDKs are configured at IDE level, so when you create another project, you won't need to add the same JDK again.

Q: How do I add files to my project?

A: Just copy them to the project folder.

IntelliJ IDEA tracks all changes to project files and automatically takes an appropriate action.

Q: How do I share my preferences?

A: Via project-level settings.

In IntelliJ IDEA you have a number of options for sharing code style settings, run configurations and inspection profiles by making them project-level, so that they are stored in the project description file and so are available to all team members.

You can also use settings synchronization via IntelliJ IDEA Server and take favorite settings with you to any computer where you're running IntelliJ IDEA. (See also IDE Settings Synchronization.)

Q: How do I configure code templates?

A: By using the Settings dialog.

In IntelliJ IDEA you have Live Templates — predefined code fragments invoked by typing an associated abbreviation. They may include parameters that are used to automatically adjust them to the insertion context. Click here for more information about how to use the templates in code. To manage Live Templates, press Ctrl+Alt+S to open the Settings dialog, and then click Live Templates to add. (See also Code Generation.)

Q: How do I make sure all my files are saved?

A: Don't you worry. They are all saved automatically.

With IntelliJ IDEA you never need to worry about saving your files when you switch to another app, compile or run your code, perform a VCS operation, and so on. For extra safety you can enable auto save after specified period of time. In case you need to roll back any unwanted changes, you can use Local History — IntelliJ IDEA built-in VCS.

Q: What happened to incremental compilation? How do I compile my project?

A: It's there, but works slightly other way.

By default, IntelliJ IDEA compiles files only "when asked". That is, to compile your project, you should use the Make, Compile or Rebuild command from the Build menu. Similarly, when you run your app and the corresponding run configuration has the Make option in its Before launch task list, your project will also be compiled.

The compilation is almost always incremental. That is, when you use Build | Make or Build | Compile, or run your app, only the changes are compiled. However, in the case of Build | Rebuild Project, your entire project is totally recompiled.

Files with compilation errors are highlighted, and so are the folders containing them. So you can easily analyze them in the Project tool window.

To see a list of all files with compilation errors, click Project on the title bar of the Project tool window and, under Scopes, select Problems. The other alternative is to use the Problems tool window (View | Tool Windows | Problems).

IntelliJ IDEA constantly performs background code analysis on files with errors, and removes the red highlighting automatically when you've fixed them.

You can enable automatic compilation on every save (or autosave). To do that, turn on the Make project automatically option on the Compiler page in the Settings / Preferences dialog (File | Settings | Compiler on Windows or Linux, or IntelliJ IDEA | Preferences | Compiler on Mac OS X).

To be able to run code with errors, you should select the Eclipse compiler and turn on the Proceed on errors option on the Compiler | Java Compiler page in the Settings / Preferences dialog. You should also make sure that the Make, no error check option (rather than the Make option) is included in the Before launch task list for the corresponding run configuration.

Q: What options are available for configuring code inspections?

A: IDE and project-level profiles, plus per-file inspection settings.

With IntelliJ IDEA you can define a set of active code inspections — a profile. IDE level profiles are available in all projects on current machine, project level profiles can be used by all team members. Here you can find some more information about inspecting the source code.

To configure inspection profiles either open the Settings dialog, or click the Hector icon in the toolbar.

You can also configure inspections individually — every time a bulb pops up, telling you about a problem, press Alt+Enter, Right Arrow to open menu where you can configure or suppress this inspection for the current file or even entire project.

Q: Where are my old favorite keyboard shortcuts?

A: Right here with you.

IntelliJ IDEA includes a bundled Eclipse keymap, so you can select it in Settings dialog, Keymap if you prefer using shortcuts you're accustomed to.

If you want to learn the IntelliJ IDEA keyboard shortcuts, you can read or print out the Default Keymap Reference from Help menu.

Q: I feel that the editor behaves differently. Am I right?

A: Yes, you are.

In Eclipse, virtual space (the possibility to place the caret after the end of a line) is disabled by default, which is contrary to IntelliJ IDEA default setting. To alter it, go to Settings dialog, Editor and clear the Allow placement of caret after end of line option.

By default Eclipse highlights the usages of the identifier at caret. To enable this behavior in IntelliJ IDEA, select Highlight usages of element at caret on in the same place as above.

Also note that there's a maximum number of editor tabs (adjustable via Settings dialog), so if you are opening a new file when a maximum number of editors is already reached, the oldest one will be automatically closed.

Q: Why there are three ways to invoke Code Completion?

A: Because there are different things to complete.

In IntelliJ IDEA you have three types of completion, that work differently so that you can always pick what's best for the code you're working with.

For example, when you just need to quickly complete an obvious statement, you can press Ctrl+Space and it's done. It's called Basic Completion. It also comes in handy when you want to look at the complete list of available choices in the current context, or need to complete a keyword.

If you need more precision and don't want to scroll through an endless list of selections, use Ctrl+Shift+Space to narrow the selection down by the expression type. Smart Completion that is invoked this way will filter the list for you, letting you get what you need quicker. Moreover, if you press it once again it will even show you the symbols that can be reached through a chained method call.

Finally, the Class Names Completion (Ctrl+Alt+Space) lets you quickly complete a class name, and insert an import statement if it's not referenced yet. (See also Intelligent Coding Assistance.)

Q: How do I configure VCS integrations? How do I add my project to VCS?

A: Via Settings dialog, Version Control.

In IntelliJ IDEA you first configure a VCS by selecting its type and specifying the connection settings like server name and access credentials, and then map project folders to VCS you have configured.

To add an project to a VCS, simply map its root folder to that VCS.

Q: How do I work with VCS? Where to inspect the diffs?

A: In a dedicated Changes view.

In Eclipse you have Sync perspective that shows the difference between your local version of the code and that of VCS server. In IntelliJ IDEA this functionality is a small part of Changes view, where you have the Local tab shows the changes you've done locally, the Incoming tab shows the changes that were checked in to the VCS server by other team members and not yet synced, and so on.

To enable incoming changes tracking, you need to go to Changes, open Incoming tab, click Refresh button and specify the cache settings.

Q: How do I check out a project from VCS?

A: From the Welcome screen.

It's the easiest way of creating a project from sources that you're checking out from VCS. Just click Check out from Version Control.