Atur ulang parameter metode di IntelliJ dengan pintasan keyboard


92

Di IntelliJ saya dapat dengan mudah mengatur ulang urutan pernyataan (atau seluruh metode untuk bagian itu) dengan menekan + Shift+ (atau + Shift+ ).

Saya bertanya-tanya apakah ada jalan pintas untuk mengubah urutan parameter metode dengan mudah, sehingga

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

akan menjadi

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

dengan goresan pintasan keyboard (dengan asumsi kursor saya diposisikan di salah satu parameter).

Itu sudah cukup bagi saya, jika IntelliJ akan mengatur ulang parameternya. Artinya, ini tidak perlu memicu keseluruhan Refactor> Ubah hal tanda tangan metode .


1
Bagaimana seharusnya ini berperilaku ketika memiliki tiga atau lebih parameter? :)
Konstantin Yovkov

2
Katakanlah kursor saya ada di parameter kedua: Menggesernya, itu harus menjadi yang pertama. Menggesernya ke bawah, seharusnya menjadi yang terakhir.
Stefan Haberl

2
Satu parameter naik atau turun pada satu waktu! Saya ingin sekali bisa melakukan fitur ini!
Per Eriksson

1
Ctrl+F6dan kemudian Alt+Upatau Alt+Downuntuk memindahkan parameter?
Lyubomyr Shaydariv

1
Ya, lebih sering dari yang Anda pikirkan. Ketika saya mulai menyempurnakan metode, saya biasanya Alt-Enter menambahkan parameter tambahan saat diperlukan. Setelah selesai, saya kemudian mengatur ulang parameter menjadi dalam urutan yang lebih logis. Plus, saya pikir akan sangat menyenangkan memiliki pintasan ini untuk panggilan metode juga. (Sobat, seberapa sering saya mendapatkan pesanan yang salah saat bekerja dengan API lama dengan lebih dari 4 atau 5 parameter dari jenis yang sama! Uhg!)
Stefan Haberl

Jawaban:


155

Sejak IDEA 16 EAP, ada tindakan untuk itu. Ada di menu:

Kode | Pindahkan Elemen Kiri / Kanan

Pintasan keyboard adalah Alt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/Rightuntuk OSX).

Lihat http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ untuk detail lebih lanjut.


Saya kira saya harus menunggu sedikit lebih lama sampai IDEA 16 dilepaskan ke alam liar, tapi itu berita bagus!
Stefan Haberl

EAP sudah ada di alam liar, Anda dapat mencobanya :) Saya rasa tidak perlu lebih dari 2 bulan untuk rilis.
Peter Gromov

4
Bagus, tapi Lyubomyr Shaydariv menjawab: stackoverflow.com/a/35359882/4024146 jauh lebih baik, karena ia melakukan refactor dan mengubah dependensi pada perubahan parameter. Ini hanya mengganti parameter untuk metode ini, tetapi bukan panggilan metode dari metode lain. Anda tidak perlu membuat makro untuk itu, cukup CTRL + F6 dan gunakan ALT + ↓
mtrakal

1
@mtrak mereka adalah dua hal yang berbeda. Saat saya membuat metode, saya tidak memerlukan refactoring kelas berat (lambat) - saya hanya ingin memindahkan parameter dengan mudah. Masalah sebenarnya dengan yang satu ini adalah saya sering memiliki parameter pada baris terpisah, jadi ini tidak berfungsi. (Saya benar-benar ingin pindah-sebelumnya dan pindah-berikutnya, bukan kiri dan kanan.)
James Moore

Jika Anda memiliki beberapa kursor pada beberapa parameter dengan metode berbeda, mereka dapat dipindahkan bersama.
WesternGun

16

Saya tidak yakin apakah itu mungkin di IDEA, tetapi Anda dapat mencoba menggunakan makro editor untuk metode dua parameter:

  • Editor -> Makro -> Mulai Perekaman Makro
  • Rekam makro Anda:
    • Ctrl+ F6untuk membuka dialog Ubah Tanda Tangan
    • Alt+ untuk menukar parameter pertama dan kedua
    • Tabuntuk menonaktifkan tab Parameter dan biarkan tombol Refactor mendapatkan fokus
    • Enter untuk menutup dialog saat melakukan refactoring
  • Editor -> Makro -> Hentikan Perekaman Makro dan beri nama pada makro Anda, katakanlah "Tukar parameter metode 1 dan 2".

Dan kemudian akses makro Anda melalui Editor -> menu Makro atau tetapkan pintasan khusus di Pengaturan -> Peta Kunci -> Menu utama / Edit / Makro / Tukar parameter metode 1 dan 2 . Bagi saya ini terlihat sangat kotor dan tanpa konteks, tetapi mungkin itu bisa sedikit membantu Anda.


11

Di Ubuntu 18.04, pintasan defaultnya adalah Ctrl + Alt + Shift + Super + Kiri / Kanan untuk memindahkan argumen ke kiri atau kanan pada posisinya.

Ini karena sudah diatur agar tidak bentrok dengan beberapa pintasan level OS baru


1
terima kasih, meskipun itu membutuhkan senam jari, ini jauh lebih baik daripada perlu mengikat kunci terpisah.
gMale
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.