Zmień kolejność parametrów metody w IntelliJ za pomocą skrótu klawiaturowego

92

W IntelliJ mogę łatwo zmienić kolejność instrukcji (lub całych metod dla tej części), naciskając + Shift+ (lub + Shift+ ).

Zastanawiałem się, czy istnieje skrót do równie łatwej zmiany kolejności parametrów metody

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

stanie się

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

pociągnięciem skrótu klawiaturowego (zakładając, że mój kursor znajduje się na jednym z parametrów).

Dla mnie wystarczyłoby, gdyby IntelliJ po prostu zmienił kolejność parametrów. Oznacza to, że nie musi to wywoływać całej sygnatury metody Refactor> Change .

Stefan Haberl
źródło
1
Jak powinno się to zachowywać, gdy mamy trzy lub więcej parametrów? :)
Konstantin Yovkov
2
Powiedzmy, że mój kursor znajduje się na drugim parametrze: przesuń go w górę, powinien stać się pierwszym. Przesuwając go w dół, powinien stać się ostatnim.
Stefan Haberl
2
Jeden parametr przesuwany w górę lub w dół na raz! Bardzo chciałbym móc to zrobić!
Per Eriksson,
1
Ctrl+F6a następnie Alt+Upczy Alt+Downprzenieść parametr?
Lyubomyr Shaydariv,
1
Tak, częściej niż myślisz. Kiedy zaczynam opracowywać metodę, zwykle Alt-Enter w razie potrzeby dodaję dodatkowe parametry. Kiedy skończę, przestawiam parametry, aby były w bardziej logicznej kolejności. Poza tym myślę, że fajnie byłoby mieć również ten skrót do wywołań metod. (Człowieku, jak często otrzymywałem błędną kolejność podczas pracy ze starszymi interfejsami API z więcej niż 4 lub 5 parametrami tego samego typu! Uhg!)
Stefan Haberl

Odpowiedzi:

155

Od IDEA 16 EAP jest na to działanie. Jest w menu:

Kod | Przesuń element w lewo / w prawo

Skróty klawiaturowe to Alt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/Rightdla OSX).

Więcej informacji można znaleźć pod adresem http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ .

Peter Gromov
źródło
Myślę, że będę musiał trochę poczekać, aż IDEA 16 zostanie wypuszczona na wolność, ale to świetna wiadomość!
Stefan Haberl,
EAP jest już na wolności, możesz go wypróbować :) Nie sądzę, że wydanie zajmie więcej niż 2 miesiące.
Peter Gromov,
4
Dobrze, ale odpowiedź Lyubomyr Shaydariv: stackoverflow.com/a/35359882/4024146 jest znacznie lepsza, ponieważ dokonuje refaktoryzacji i zmienia zależności od zmian parametrów. To tylko zmienia parametry dla tej metody, ale nie wywołuje metod z innych metod. Nie musisz robić do tego makra, po prostu CTRL + F6 i użyj ALT + ↓
mtrakal
1
@mtrakal to dwie różne rzeczy. Kiedy tworzę metodę, nie potrzebuję ciężkiej (powolnej) refaktoryzacji - chcę po prostu łatwo przenosić parametry. Prawdziwym problemem z tym jest to, że często mam parametry w oddzielnych wierszach, więc to nie działa. (Naprawdę chcę ruch-poprzedni i następny-ruch, a nie lewy i prawy.)
James Moore,
Jeśli masz wiele kursorów na kilku parametrach różnych metod, można je przesuwać razem.
WesternGun
16

Nie jestem pewien, czy jest to możliwe w IDEA, ale możesz spróbować użyć makr edytora dla metod dwuparametrowych:

  • Edytor -> Makra -> Rozpocznij nagrywanie makr
  • Nagraj swoje makro:
    • Ctrl+, F6aby otworzyć okno dialogowe Zmień podpis
    • Alt+, aby zamienić pierwszy i drugi parametr
    • Tababy dezaktywować kartę Parametry i pozwolić przyciskowi Refaktoryzacji uzyskać fokus
    • Enter aby zamknąć okno dialogowe podczas refaktoryzacji
  • Editor -> Macros -> Stop Macro Recording i nadaj nazwę swojemu makro, powiedzmy "Zamień parametry metody 1 i 2".

Następnie uzyskaj dostęp do makra za pomocą Edytora -> Menu Makra lub przypisz do niego niestandardowy skrót w Ustawienia -> Mapa klawiszy -> Menu główne / Edycja / Makra / Zamień parametry metody 1 i 2 . Dla mnie wygląda to na bardzo brudny i bezkontekstowy sposób, ale może może ci trochę pomóc.

Lyubomyr Shaydariv
źródło
11

W systemie Ubuntu 18.04 domyślnym skrótem jest Ctrl + Alt + Shift + Super + Lewo / Prawo, aby przenieść argument w lewo lub w prawo na miejscu.

Dzieje się tak, ponieważ jest skonfigurowany tak, aby nie kolidował z niektórymi nowymi skrótami na poziomie systemu operacyjnego

Timmeh
źródło
1
dzięki, mimo że wymaga gimnastyki palców, jest to o wiele lepsze niż konieczność wiązania oddzielnego klucza.
gMale