Réorganiser les paramètres de méthode dans IntelliJ avec un raccourci clavier

92

Dans IntelliJ, je peux facilement réorganiser l'ordre des instructions (ou des méthodes entières pour cette partie) en appuyant sur + Shift+ (ou + Shift+ ).

Je me demandais s'il existe un raccourci pour changer l'ordre des paramètres de méthode aussi facilement, de sorte que

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

va devenir

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

avec le trait d'un raccourci clavier (en supposant que mon curseur est positionné sur l'un des paramètres).

Ce serait suffisant pour moi, si IntelliJ réorganisait simplement les paramètres. Autrement dit, cela n'a pas besoin de déclencher une chose entière Refactor> Change de signature de méthode .

Stefan Haberl
la source
1
Comment cela devrait-il se comporter avec trois paramètres ou plus? :)
Konstantin Yovkov
2
Disons que mon curseur est sur le deuxième paramètre: en le déplaçant vers le haut, il devrait devenir le premier. En le déplaçant vers le bas, il devrait devenir le dernier.
Stefan Haberl
2
Un paramètre déplacé vers le haut ou vers le bas à la fois! J'adorerais pouvoir faire cette featue!
Per Eriksson
1
Ctrl+F6et puis Alt+Upou Alt+Downpour déplacer un paramètre?
Lyubomyr Shaydariv
1
Ouais, plus souvent que vous ne le pensez. Lorsque je commence à étoffer une méthode, Alt-Enter j'ajoute généralement des paramètres supplémentaires si nécessaire. Lorsque j'ai terminé, je réorganise les paramètres dans un ordre plus logique. De plus, je pense que ce serait vraiment bien d'avoir ce raccourci pour les appels de méthode. (Mec, combien de fois ai-je mal reçu l'ordre en travaillant avec des API héritées avec plus de 4 ou 5 paramètres du même type! Uhg!)
Stefan Haberl

Réponses:

155

Depuis IDEA 16 EAP, il y a une action pour cela. C'est dans le menu:

Code | Déplacer l'élément vers la gauche / droite

Les raccourcis clavier sont Alt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/Rightpour OSX).

Voir http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ pour plus de détails.

Peter Gromov
la source
Je suppose que je vais devoir attendre un peu plus longtemps jusqu'à ce que IDEA 16 soit libéré dans la nature, mais c'est une excellente nouvelle!
Stefan Haberl
L'EAP est déjà dans la nature, vous pouvez l'essayer :) Je ne pense pas qu'il faudra plus de 2 mois pour sortir.
Peter Gromov le
4
Bien, mais la réponse de Lyubomyr Shaydariv: stackoverflow.com/a/35359882/4024146 est beaucoup mieux, car il refactorise et modifie les dépendances sur les changements de paramètres. Cela change simplement les paramètres de cette méthode, mais pas les appels de méthode à partir d'une autre méthode. Vous n'avez pas besoin de faire de macro pour cela, il suffit de CTRL + F6 et d'utiliser ALT + ↓
mtrakal
1
@mtrakal, ce sont deux choses différentes. Lorsque je compose une méthode, je n'ai pas besoin de la refactorisation lourde (lente) - je veux juste déplacer facilement les paramètres. Le vrai problème avec celui-ci est que j'ai souvent des paramètres sur des lignes séparées, donc cela ne fonctionne pas. (Je veux vraiment un mouvement précédent et suivant, pas une gauche et une droite.)
James Moore
Si vous avez plusieurs curseurs sur plusieurs paramètres de différentes méthodes, ils peuvent être déplacés ensemble.
WesternGun
16

Je ne sais pas si c'est possible dans IDEA, mais vous pouvez essayer d'utiliser des macros d'éditeur pour les méthodes à deux paramètres:

  • Éditeur -> Macros -> Démarrer l'enregistrement de macro
  • Enregistrez votre macro:
    • Ctrl+ F6pour ouvrir la boîte de dialogue Modifier la signature
    • Alt+ pour permuter le premier et le deuxième paramètre
    • Tabpour désactiver l' onglet Paramètres et laisser le bouton Refactoriser obtenir le focus
    • Enter pour fermer la boîte de dialogue lors du refactoring
  • Editeur -> Macros -> Arrêtez l'enregistrement de macro et donnez un nom à votre macro, disons "Swap method parameters 1 and 2".

Et puis accédez à votre macro via le menu Editeur -> Macros ou attribuez-lui un raccourci personnalisé dans Paramètres -> Keymap -> Menu principal / Edition / Macros / Swap paramètres de méthode 1 et 2 . Cela me semble très sale et sans contexte, mais peut-être que cela pourrait vous aider un peu.

Lyubomyr Shaydariv
la source
11

Sur Ubuntu 18.04, le raccourci par défaut est Ctrl + Alt + Maj + Super + Gauche / Droite pour déplacer un argument vers la gauche ou la droite en position.

C'est comme il est configuré pour ne pas entrer en conflit avec certains des nouveaux raccourcis au niveau du système d'exploitation

Timmeh
la source
1
merci, même si cela nécessite une gymnastique des doigts, c'est tellement mieux que de devoir lier une clé séparée.
gMale