Variable extraction to var in Intellij IDEA

Viewed 2260

When extracting a variable (ctrl+alt+v) in Intellij IDEA with Java 11, I would like for the default to be that it is extracted to a var instead of the verbose type.

var home = "127.0.0.1";

instead of

String home = "127.0.0.1";

Is there a way to configure Intellij IDEA to do this?

2 Answers

Update

Feature has been implemented and available since IntelliJ IDEA 2019.1 release

https://youtrack.jetbrains.com/issue/IDEA-179176

Fix versions 2019.1 (191.6183.87)


This feature hasn't been adopted by IntelliJ IDEA yet.

I've submitted an explicit feature request at JetBrains' bug tracking system: https://youtrack.jetbrains.com/issue/IDEA-206367

Although, other similar tickets which have been submitted before, are not yet completed:


Alternative

However, you can somewhat achieve the desired behavior by using Custom Postfix Templates plugin, which allows to define your own custom postfix completion templates.

Statement like this:

enter image description here

Will be converted to:

enter image description here

To achieve this:

  • 1) Install Custom Postfix Templates plugin via Settings → Plugins → Browse Repositories.
  • 2) Press Shift+Alt+P (or go to menu Tools → Custom Postfix Templates → Edit Templates of Current Language) to open the custom postfix templates for the programming language in your current editor.
  • 3) Add the following template:

    .var : Extracts variable as inferred 'var' type
        NON_VOID                 →  var $VAR:suggestVariableName()$ = $expr$;
    

Restart IntelliJ and you're good to go.

Note. Existing postfix completion named 'var' exists in IntelliJ by default, you might want to disable the existing one (via Settings → Editor → General → Postfix Completion) or find another name for a new one.

Jet Brains added this feature to Intellij 2019.1.1

variable extraction in Intellij 2019.1.1

Related