Stefan Haberl
Stefan Haberl

Reputation: 10539

Rearrange method parameters in IntelliJ with keyboard shortcut

In IntelliJ I can easily rearrange the order of statements (or whole methods for that part) by pressing + Shift + (or + Shift + ).

I was wondering whether there's a shortcut to change the order of method parameters as easily, so that

public void sth(String a, String b) {...}

will become

public void sth(String b, String a) {...}

with the stroke of a keyboard shortcut (assuming my cursor is positioned on one of the parameters).

It would be enough for me, if IntelliJ would just reorder the parameters. That is, this need not trigger a whole Refactor > Change method signature thing.

Upvotes: 129

Views: 42234

Answers (3)

Lyubomyr Shaydariv
Lyubomyr Shaydariv

Reputation: 21115

I'm not sure if it's possible in IDEA, but you might try to use editor macros for two-parameter methods:

  • Editor -> Macros -> Start Macro Recording
  • Record your macro:
  • Ctrl+F6 to open the Change Signature dialog
  • Alt+ to swap the first and the second parameter
  • Ctrl+Enter to close the dialog at perform refactoring
  • Editor -> Macros -> Stop Macro Recording and give a name to your macro, let's say "Swap method parameters 1 and 2".

And then access your macro via the Editor -> Macros menu or assign a custom shortcut to it in Settings -> Keymap -> Main menu/Edit/Macros/Swap method parameters 1 and 2. It looks a very dirty and context-free way to me, but maybe it could help you a little.

Upvotes: 29

Peter Gromov
Peter Gromov

Reputation: 18931

Since IDEA 16 EAP, there's an action for that. It's in the menu:

Code | Move Element Left/Right

Keyboard shortcuts are Alt+Ctrl+Shift+Left/Right (Opt+Cmd+Shift+Left/Right for OSX).

See http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ for more details.

Upvotes: 245

Timmeh
Timmeh

Reputation: 457

On Ubuntu 18.04 the default shortcut is Ctrl+Alt+Shift+Super+Left/Right to move an argument left or right in position.

This is as it is setup to not clash with some of the new OS level shortcuts

Upvotes: 21

Related Questions