6 min read

(For more resources related to this topic, see here.)

What all developers want is to do their job as fast as they can without sacrificing the quality of their work. IntelliJ has a large range of features that will reduce the time spent in development. But, to achieve the best performance that IntelliJ can offer, it is important that you understand the IDE and adapt some of your habits.

In this article, we will navigate through the features that can help you do your job even faster. You will understand IntelliJ’s main elements and how they work, and beyond this, learn how IntelliJ can help you organize your activities and the files you are working on. To further harness IntelliJ’s abilities, you will also learn how to manage plugins and see a short list of plugins that can help you.

Identifying and understanding window elements

Before we start showing you techniques you can use to improve your performance using IntelliJ, you need to identify and understand the visual elements present in the main window of the IDE. Knowing these elements will help you find what you want faster. The following screenshot shows the IntelliJ main window:

The main window can be divided into seven parts as shown in the previous screenshot:

  1. The main menu contains options that you can use to do tasks such as creating projects, refactoring, managing files in version control, and more.
  2. The main toolbar element contains some essential options. Some buttons are shown or hidden depending on the configuration of the project; version control buttons are an example of this.
  3. The Navigation Bar is sometimes a quick and good alternative to navigate easily and fast through the project files.
  4. Tool tabs are shown on both sides of the screen and at the bottom of IntelliJ. They represent the tools that are available for the project. Some tabs are available only when facets are enabled in the project (e.g. the Persistence tab).
  5. When the developer clicks on a tool tab, a window appears. These windows will present the project in different perspectives. The options available in each tool window will provide the developer with a wide range of development tasks.
  6. The editor is where you can write your code.
  7. The Status Bar indicates the current IDE state and provides some options to manipulate the environment. For example, you can hide the tool tabs by clicking on the icon at the bottom-left of the window.

In almost all elements, there are context menus available. These menus will provide extra options that may complement and ease your work. For example, the context menu, available in the tool bar, provides an option to hide itself and another to customize the menu and toolbars.

You will notice that some tool tabs have numbers. These numbers are used in conjunction with the Alt key to access the tool window you want quickly, Alt + 1, for example, will open the Project tool window.

Each tool window will have different options; some will present search facilities, others will show specific options. They use a common structure: a title bar, a toolbar, and the content pane. Some tool windows don’t have a toolbar and, in others, the options in the title bar may vary. However, all of them will have at least two buttons in the rightmost part of the title bar: a gear and a small bar with an arrow. The first button is used to configure some properties of the tool and the second will just minimize the window. The following screenshot shows some options in the Database tool:

The options available under the gear button icon generally differ from tool to tool. However, in the drop-down list, you will find four common options: Pinned, Docked, Floating, and Split modes. As you may have already imagined, these options are used to define how the tool window will be shown. The Pinned mode is very useful when it is unmarked; using this, when you focus on code editor you don’t lose time minimizing the tool window.

Identifying and understanding code editor elements

The editor provides some elements that can facilitate navigation through the code and help identify problems in it. In the following screenshot, you can see how the editor is divided:

  1. The editor area, as you probably know, is where you edit your source code.
  2. The gutter area is where different types of information about the code is shown, simply using icons or special marks like breakpoints and ranges. The indicators used here aren’t used to just display information; you can perform some actions depending on the indicator, such as reverting changes or navigating through the code.
  3. The smart completion popup, as you’ve already seen, provides assistance to the developer in accordance with the current context.
  4. The document tabs area is where the tabs of each opened document are available. The type of document is identified by an icon and the color in the name of the file shows its status in version control: blue stands for “modified”, green for “new”, red for “not in VCS”, and black for “not changed”. This component has a context menu that provides some other facilities as well.
  5. The marker bar is positioned to the right-hand side of the IDE and its goal is to show the current status of the code. At the top, the square mark can be green for when your code is OK, yellow for warnings that are not critical, and red for compilation errors, respectively. Below the square situated on top of the IDE this element can have other colored marks used to help the developer go directly to the desired part of the code.

Sometimes, while you are coding, you may notice a small icon floating near the cursor; this icon represents that there are some intentions available that could help you:

indicates that IntelliJ proposes a code modification that isn’t totally necessary. It covers warning corrections to code improvement.

indicates an intention action that can be used but doesn’t provide any improvement or code correction.

indicates there is a quick fix available to correct an eminent code error.

indicates that the alert for the intention is disabled but the intention is still available.

The following figure shows the working intention:

Intention actions can be grouped in four categories listed as follows:

  1. Create from usage is the kind of intention action that proposes the creation of code depending on the context. For example, if you enter a method name that doesn’t exist, this intention will recognize it and propose the creation of the method.
  2. Quick fixes is the type of intention that responds to code mistakes, such as wrong type usage or missing resources.
  3. Micro refactoring is the kind of intention that is shown when the code is syntactically correct; however, it could be improved (for readability for example).
  4. Fragment action is the type of intention used when there are string literals of an injected language; this type of injection can be used to permit you to edit the corresponding sentence in another editor.

Intention actions can be enabled or disabled on-the-fly or in the Intention section in the configuration dialog; by default, all intentions come activated. Adding intentions is possible only after installing plugins for them or creating your own plugin. If you prefer, you can use the Alt + Enter shortcut to invoke the intentions popup.


As you have seen in this article, IntelliJ provides a wide range of functionalities that will improve your development speed. More important than knowing all the shortcuts IntelliJ offers, is to understand what is possible do with them and when to use a feature.

Resources for Article:

Further resources on this subject:

Subscribe to the weekly Packt Hub newsletter

* indicates required


Please enter your comment!
Please enter your name here