Improving Your Development Speed

Exclusive offer: get 50% off this eBook here
Getting started with IntelliJ IDEA

Getting started with IntelliJ IDEA — Save 50%

Exploit IntelliJ IDEA’s unique features to rapidly develop web and Java Enterprise applications with this book and ebook

$20.99    $10.50
by Hudson Orsine Assumpção | October 2013 | Enterprise Articles

This article written by Hudson Orsine Assumpção, the author of Getting Started with IntelliJ IDEA, provides a wide range of functionalities that will improve your development speed. It presents to you the main visual interface of the IDE and shows you how to improve your productivity using the features of IntelliJ IDEA such as the productivity guide, live templates, and navigation usabilities.

(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.

Summary

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:


Getting started with IntelliJ IDEA Exploit IntelliJ IDEA’s unique features to rapidly develop web and Java Enterprise applications with this book and ebook
Published: October 2013
eBook Price: $20.99
Book Price: $34.99
See more
Select your format and quantity:

About the Author :


Hudson Orsine Assumpção

Hudson Orsine Assumpção is a Brazilian software engineer with a bachelor’s degree in Information Systems from Universidade Estadual de Montes Claros (Unimontes). He has experience in developing applications in Java EE and ActionScript 3. He also has practical knowledge in Data Warehouse, OLAP tools, and BPMN. He is a certified ITIL V3 foundation professional. Currently, he is developing, with a friend, a web-based ERP system using the Java EE platform.

Books From Packt


 Instant Geany IDE [Instant]
Instant Geany IDE [Instant]

 Instant NetBeans IDE How-to [Instant]
Instant NetBeans IDE How-to [Instant]

 Building SOA-Based Composite Applications Using NetBeans IDE 6
Building SOA-Based Composite Applications Using NetBeans IDE 6

 Getting Started with Lazarus IDE
Getting Started with Lazarus IDE

Aptana RadRails: An IDE for Rails Development
Aptana RadRails: An IDE for Rails Development

NetBeans IDE 7 Cookbook
NetBeans IDE 7 Cookbook

Apache Maven 3 Cookbook
Apache Maven 3 Cookbook

 Instant Apache Maven Starter [Instant]
Instant Apache Maven Starter [Instant]


No votes yet

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
b
T
m
H
Q
E
Enter the code without spaces and pay attention to upper/lower case.
Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software