Chris Lercher
Chris Lercher

Reputation: 37778

IDEA: "Assign statement to new local variable"?

As a long time Eclipse user, I'm playing around a little bit with IntelliJ IDEA 10. I can't seem to find out how to perform an "Assign statement to new local variable" code completion.

Feature explanation:

I type something like

new BufferedOutputStream(out)

and then hit Cmd (or Ctrl)+1 and enter, and Eclipse changes the line into:

BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(out);

At the same time, I can type over "bufferedOutputStream" immediately to rename it (or select from the options "bufferedOutputStream", "outputStream" and "stream" from a dropdown).

I use this feature for absolutely every assignment, and it's an enormous time saver - this must be available in IDEA, too - but where is it hidden?

Upvotes: 36

Views: 20924

Answers (5)

Faizan Haidar Khan
Faizan Haidar Khan

Reputation: 1215

Press Ctrl+2 at the end of the line and it will display this dialog at the bottom right of the screen

enter image description here

Select second option Assign to local variable and it will display this dialog with suggested variable names

enter image description here

Upvotes: 0

Zeljko Kozina
Zeljko Kozina

Reputation: 149

Easiest is, hit Alt+Enter, you will be offered with a list of options, and just select "Introduce local Variable".

Upvotes: 1

CrazyCoder
CrazyCoder

Reputation: 401985

Refactor | Introduce Variable (Ctrl+Alt+V on Windows). Note that you don't need to select the text if it's the only text in the current line. Then you can change the variable name in-line just like you've described and press Enter to complete editing.

Another way is to use the Postfix Completion:

Type .var (or just .v to select it from the list) and confirm it with Enter.

Upvotes: 58

As CrazyCoder mentions you can use Ctrl+Alt+V. Also instead of selecting the expression, clicking into somewhere in your expression and using Ctrl+W to expand scope is very useful while using introduce refactorings. Extract refactorings are:

  • Extract variable: Ctrl+Alt+V
  • Extract field: Ctrl+Alt+F
  • Extract method: Ctrl+Alt+M
  • Extract parameter: Ctrl+Alt+P
  • Extract constant: Ctrl+Alt+C

Also, Idea is a polygot editor so you can use these extract refactorings for other file types like js or html also (not all refactorings work in all file types but Ctrl+W works mostly).

There are more extract refactorings which do not have shortcuts which you can access from Refactor|Extract menu (both menu bar and context menu). To quick access all refactorings you can use Ctrl+Alt+Shift+T for a popup menu.

As a last word, I highly encourage you using "Tip of the Day" (Help|Tip of the Day). It is a fast way to learn many helpful features of Idea.

Upvotes: 11

dogbane
dogbane

Reputation: 274612

It's not as nice as Eclipse, but you can try the following:

new BufferedOutputStream(out)
  • Select the expression above, either with your mouse (or by using Ctrl+W).
  • Then hit Ctrl+Alt+V to Introduce a Variable or (Ctrl+Alt+F to Introduce a Field)

Upvotes: 4

Related Questions