Riorganizza i parametri del metodo in IntelliJ con la scorciatoia da tastiera


92

In IntelliJ posso facilmente riorganizzare l'ordine delle istruzioni (o interi metodi per quella parte) premendo + Shift+ (o + Shift+ ).

Mi chiedevo se esiste una scorciatoia per modificare l'ordine dei parametri del metodo con la stessa facilità, in modo che

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

diventerà

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

con il tratto di una scorciatoia da tastiera (supponendo che il mio cursore sia posizionato su uno dei parametri).

Mi basterebbe se IntelliJ si limitasse a riordinare i parametri. Cioè, questo non deve attivare un intero Refactor> Modifica della firma del metodo .


1
Come dovrebbe comportarsi quando si hanno tre o più parametri? :)
Konstantin Yovkov

2
Supponiamo che il mio cursore si trovi sul secondo parametro: spostandolo verso l'alto, dovrebbe diventare il primo. Spostandolo verso il basso, dovrebbe diventare l'ultimo.
Stefan Haberl

2
Un parametro spostato verso l'alto o verso il basso alla volta! Mi piacerebbe poter fare questa impresa!
Per Eriksson

1
Ctrl+F6e poi Alt+Upo Alt+Downper spostare un parametro?
Lyubomyr Shaydariv

1
Sì, più spesso di quanto pensi. Quando inizio a rimpolpare un metodo, di solito Alt-Enter aggiungo parametri aggiuntivi quando necessario. Quando ho finito, riorganizzo i parametri in modo che siano in un ordine più logico. Inoltre, penso che sarebbe davvero bello avere questa scorciatoia anche per le chiamate ai metodi. (Amico, quanto spesso ho sbagliato l'ordine quando lavoravo con API legacy con più di 4 o 5 parametri dello stesso tipo! Uhg!)
Stefan Haberl

Risposte:


155

A partire da IDEA 16 EAP, c'è un'azione per questo. È nel menu:

Codice | Sposta l'elemento a sinistra / a destra

Le scorciatoie da tastiera sono Alt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/Rightper OSX).

Vedi http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ per maggiori dettagli.


Immagino che dovrò aspettare ancora un po 'prima che IDEA 16 venga rilasciato in libertà, ma questa è un'ottima notizia!
Stefan Haberl

L'EAP è già in circolazione, puoi provarlo :) Non penso che ci vorranno più di 2 mesi per il rilascio.
Peter Gromov

4
Buono, ma Lyubomyr Shaydariv risposta: stackoverflow.com/a/35359882/4024146 è molto meglio, perché fare il refactoring e di cambiare una dipendenze sulle variazioni dei parametri. Questo cambia solo i parametri per questo metodo, ma non le chiamate di metodo da altri metodi. Non è necessario creare macro per questo, basta CTRL + F6 e utilizzare ALT + ↓
mtrakal

1
@mtrakal sono due cose diverse. Quando compongo un metodo, non ho bisogno del refactoring pesante (lento): voglio solo spostare facilmente i parametri. Il vero problema con questo è che spesso ho parametri su righe separate, quindi non funziona. (Voglio davvero una mossa precedente e successiva, non sinistra e destra.)
James Moore

Se si dispone di più cursori su più parametri di metodi diversi, è possibile spostarli insieme.
WesternGun

16

Non sono sicuro che sia possibile in IDEA, ma potresti provare a utilizzare le macro dell'editor per metodi a due parametri:

  • Editor -> Macro -> Avvia registrazione macro
  • Registra la tua macro:
    • Ctrl+ F6per aprire la finestra di dialogo Modifica firma
    • Alt+ per scambiare il primo e il secondo parametro
    • Tabper disattivare la scheda Parametri e lasciare che il pulsante Refactor ottenga il focus
    • Enter per chiudere la finestra di dialogo durante l'esecuzione del refactoring
  • Editor -> Macro -> Interrompi registrazione macro e dai un nome alla tua macro, diciamo "Scambia i parametri del metodo 1 e 2".

Quindi accedi alla tua macro tramite l' Editor -> menu Macro o assegnale un collegamento personalizzato in Impostazioni -> Mappa tasti -> Menu principale / Modifica / Macro / Scambia i parametri del metodo 1 e 2 . A me sembra un modo molto sporco e privo di contesto, ma forse potrebbe aiutarti un po '.


11

Su Ubuntu 18.04 la scorciatoia predefinita è Ctrl + Alt + Maiusc + Super + Sinistra / Destra per spostare un argomento a sinistra oa destra in posizione.

Questo è configurato per non entrare in conflitto con alcune delle nuove scorciatoie a livello di sistema operativo


1
grazie, anche se richiede ginnastica con le dita, è molto meglio che dover legare una chiave separata.
gMale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.