IntelliJ'de yöntem parametrelerini klavye kısayoluyla yeniden düzenleyin


92

IntelliJ'de + Shift+ (veya + Shift+ ) tuşlarına basarak ifadelerin sırasını (veya bu bölüm için tüm yöntemleri) kolayca yeniden düzenleyebilirim .

Metot parametrelerinin sırasını kolayca değiştirmek için bir kısayol olup olmadığını merak ediyordum.

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

Olacak

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

bir klavye kısayolunun vuruşuyla (imlecimin parametrelerden birinde konumlandırıldığı varsayılarak).

IntelliJ sadece parametreleri yeniden sıralarsa, bu benim için yeterli olacaktır. Yani, bunun bütün bir Refactor> Change method imzası olayını tetiklemesi gerekmez .


1
Üç veya daha fazla parametre varken bu nasıl davranmalıdır? :)
Konstantin Yovkov

2
İmlecimin ikinci parametrede olduğunu varsayalım: Yukarı kaydırmak, birinci olmalı. Aşağı kaydırıldığında, sonuncu olmalı.
Stefan Haberl

2
Bir seferde bir parametre yukarı veya aşağı hareket etti! Bu başarıyı yapabilmeyi çok isterim!
Eriksson'a göre

1
Ctrl+F6ve sonra Alt+Upveya Alt+Downbir parametreyi taşımak için?
Lyubomyr Shaydariv

1
Evet, sandığınızdan daha sık. Bir yöntem geliştirmeye başladığımda, genellikle Alt-Enter ihtiyaç duyulduğunda ek parametreler eklerim. Bitirdiğimde, parametreleri daha mantıklı bir sırada olacak şekilde yeniden düzenlerim. Artı, yöntem çağrıları için de bu kısayola sahip olmanın gerçekten güzel olacağını düşünüyorum. (Aynı tipte fazla 4 veya 5 parametreleri ile eski API'leri ile çalışırken Adam, ne sıklıkta sipariş yanlış aldın uhg!)
Stefan Haberl

Yanıtlar:


155

IDEA 16 EAP'den beri bunun için bir eylem var. Menüde:

Kod | Öğeyi Sola / Sağa Taşı

Klavye kısayolları Alt+ Ctrl+ Shift+ Left/Right( OSX için Alt+ Cmd+ Shift+ Left/Right) şeklindedir.

Daha fazla ayrıntı için http://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/ adresine bakın.


Sanırım IDEA 16'nın doğaya salınması için biraz daha beklemem gerekecek, ama bu harika bir haber!
Stefan Haberl

EAP zaten vahşi, deneyebilirsiniz :) Piyasaya sürülmesinin 2 aydan fazla süreceğini sanmıyorum.
Peter Gromov

4
Güzel, ancak Lyubomyr Shaydariv yanıtı: stackoverflow.com/a/35359882/4024146 çok daha iyi, çünkü yeniden düzenleme yapıyor ve parametrelerin değişikliklerine bağlılığı değiştiriyor. Bu sadece bu yöntem için parametreleri değiştirir, ancak başka yöntemlerden yöntem çağrıları yapmaz. Bunun için ihtiyaç yapmak makro dont, sadece CTRL + F6 ve kullanım ALT + ↓
mtrakal

1
@mtrakal iki farklı şey. Bir yöntem oluştururken, ağır (yavaş) yeniden düzenlemeye ihtiyacım yok - sadece parametreleri kolayca taşımak istiyorum. Bununla ilgili asıl sorun, parametrelerimin genellikle ayrı satırlarda olması, bu yüzden bu işe yaramıyor. (Ben gerçekten bir önceki ve bir sonraki-hareketi istiyorum, bir sola ve sağa değil.)
James Moore

Farklı yöntemlerin birkaç parametresinde birden fazla imleciniz varsa, bunlar birlikte hareket ettirilebilir.
WesternGun

16

IDEA'da mümkün olup olmadığından emin değilim, ancak iki parametreli yöntemler için düzenleyici makroları kullanmayı deneyebilirsiniz:

  • Düzenleyici -> Makrolar -> Makro Kaydı Başlat
  • Makronuzu kaydedin:
    • Ctrl+ İmzayı Değiştir iletişim kutusunu F6açmak için
    • Alt+ birinci ve ikinci parametreyi değiştirmek için
    • TabParametreler sekmesini devre dışı bırakmak ve Refactor düğmesinin odağı almasına izin vermek için
    • Enter yeniden düzenleme gerçekleştirirken iletişim kutusunu kapatmak için
  • Düzenleyici -> Makrolar -> Makro Kaydını Durdurun ve makronuza bir ad verin, "Yöntem parametreleri 1 ve 2'yi değiştir" diyelim.

Ardından, Makronuza Düzenleyici -> Makrolar menüsünden erişin veya ona Ayarlar -> Tuş Eşleme -> Ana menü / Düzenle / Makrolar / Takas yöntemi parametreleri 1 ve 2'de özel bir kısayol atayın . Bana çok kirli ve içerikten bağımsız bir yol gibi görünüyor, ama belki size biraz yardımcı olabilir.


11

Ubuntu 18.04'te, bir bağımsız değişkeni sola veya sağa hareket ettirmek için varsayılan kısayol Ctrl + Alt + Shift + Süper + Sol / Sağ'dır.

Bu, yeni işletim sistemi seviyesindeki bazı kısayollarla çakışmayacak şekilde kurulduğu için


1
teşekkürler, parmak jimnastiği gerektirmesine rağmen, bu, ayrı bir anahtar bağlamaktan çok daha iyi.
gMale
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.