Fading Coder

One Final Commit for the Last Sprint

Home > Tech > Content

IntelliJ IDEA Productivity Enhancements: Essential Plugins, Live Templates, and Configuration Tips

Tech May 12 3

Recommended Plugins

Plugins can be installed directly through the Settings panel by searching the marketplace, or by manually importing plugin packages downloaded from the JetBrains repository.

Chinese (Simplified) Language Pack

This plugin localizes the IntelliJ IDEA interface into simplified Chinese, making the IDE more accessible for native speakers.

CamelCase

A utility for quickly converting between naming conventions. It allows developers to toggle between styles such as snake_case (my_variable) and camelCase (myVariable) with a simple shortcut, ensuring consistent code style across projects.

Configuration Settings for Better Experience

Enable Multi-line Editor Tabs

By default, IntelliJ IDEA displays editor tabs in a single row. When working with numerous files simultaneously, tabs overflow and become difficult to navigate. Enabling multi-line tabs improves file visibility significantly.

Navigate to Settings > Editor > General > Editor Tabs and configure the tab placement to show multiple lines. This prevents the need to scroll through tabs horizontally and provides a comprehensive overview of all open files.

Visualize Whitespace Characters

Distinguishing between spaces and tab characters is difficult in the default configuration. Enable whitespace visualization by going to Settings > Editor > General > Appearance and checking the options to show whitespaces. This is particularly useful when working on projects with strict formatting requirements.

Custom TODO Highlighting

Standard TODO comments blend into code and can be easily overlooked during development. Configuring custom TODO patterns with distinctive colors makes pending tasks more visible.

// FIXME: Critical bug that needs immediate attention
// HACK: Temporary workaround requiring future refactoring

In Settings > Editor > TODO, add new patterns with unique color schemes. Assign high-contrast colors to urgent markers like FIXME or custom tags specific to your workflow. This ensures critical items stand out in the TODO tool window.

Custom Keyboard Shortcuts

Split Editor Tab Shortcut

Comparing code between files often requires splitting the editor. Instead of right-clicking tabs and selecting "Split Right," assign a direct shortcut for faster access.

Go to Settings > Keymap and search for "Split Right." Assign a convenient key combination such as Alt + R to streamline the splitting process.

Efficiency Boosters with Live Templates

Live templates reduce repetitive typing by expanding abbreviations into full code blocks. IntelliJ IDEA provides built-in template variables that enhance customization:

  • $END$: Defines cursor position after template expansion
  • $SELECTION$: Used in surround templates for wrapping selected code

MyBatis XML Code Completion

List Iteration Template:

<if test="${collectionName} != null and ${collectionName}.size() > 0">
    AND ${column} IN
    <foreach collection="${collectionName}" item="element" open="(" close=")" separator=",">
        #{element}
    </foreach>
</if>

String Parameter Validation:

<if test="${paramName} != null and ${paramName} != ''">
    AND ${column} = #{${paramName}}
</if>

Java Stream Operations

Stream operations are frequently used in modern Java development. Create templates for common stream patterns:

${sourceList}.stream().map(${className}::${getterMethod}).collect(Collectors.toList())

Configure the variables using expressions like complete() and typeParameterOf() for intelligent code completion.

Structured Logging Template

For consistent log formatting with context information:

log.info("${contextMarker}#{}#{}#{}", this.getClass().getSimpleName(), Thread.currentThread().getStackTrace()[1].getMethodName(), ${selectedVariable});

This template automatically inserts class and method names, making log searching and debugging more efficient.

Asynchronous Thread Pool Execution

Wrap code blocks for asynchronous execution:

${executorService}.execute(() -> {
    ${selectedCode}
});

Interface Method Declaration

Quickly generate interface method signatures from implementations:

${methodName}(${parameters});

Configure ${methodName} with the methodName() expression to automatically capture the method name.

Column Selection Mode

Column selection enables vertical text editing across multiple lines, essential for bulk modifications with regular patterns.

Activation methods:

  • Ctrl + Shift + Click for column selection
  • Mouse wheel button drag
  • Ctrl + Shift + Alt + J to select all occurrences

Use case: When mapping Excel columns to entity properties using annotations like @ExcelProperty, column selection allows rapid sequential numbering across multiple fields simultaneously.

Troubleshooting Common Issues

Keyboard Shortcut Conflicts

Shortcuts may stop working due to conflicts with system applications or input methods.

Common culprit: Input method editors often override shortcuts. For example, Ctrl + Shift + F (Find in Files) frequently conflicts with Chinese input method's simplified/traditional character toggle.

Solution: Navigate to the input method settings and disable or reassign the conflicting shortcut.

Related Articles

Understanding Strong and Weak References in Java

Strong References Strong reference are the most prevalent type of object referencing in Java. When an object has a strong reference pointing to it, the garbage collector will not reclaim its memory. F...

Comprehensive Guide to SSTI Explained with Payload Bypass Techniques

Introduction Server-Side Template Injection (SSTI) is a vulnerability in web applications where user input is improper handled within the template engine and executed on the server. This exploit can r...

Implement Image Upload Functionality for Django Integrated TinyMCE Editor

Django’s Admin panel is highly user-friendly, and pairing it with TinyMCE, an effective rich text editor, simplifies content management significantly. Combining the two is particular useful for bloggi...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.