จัดเรียงพารามิเตอร์วิธีการใหม่ใน IntelliJ ด้วยแป้นพิมพ์ลัด


92

ใน IntelliJ ฉันสามารถจัดเรียงลำดับของคำสั่ง (หรือวิธีการทั้งหมดสำหรับส่วนนั้น) ได้อย่างง่ายดายโดยการกด+ Shift+ (หรือ+ Shift+ )

ฉันสงสัยว่ามีทางลัดในการเปลี่ยนลำดับของพารามิเตอร์วิธีการอย่างง่ายดายหรือไม่

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

จะกลายเป็น

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

ด้วยจังหวะของแป้นพิมพ์ลัด (สมมติว่าเคอร์เซอร์ของฉันอยู่ในตำแหน่งหนึ่งในพารามิเตอร์)

มันจะเพียงพอสำหรับฉันถ้า IntelliJ เพียงแค่จัดลำดับพารามิเตอร์ใหม่ นั่นคือสิ่งนี้ไม่จำเป็นต้องทริกเกอร์Refactorทั้งหมด> เปลี่ยนสิ่งที่เป็นลายเซ็นของวิธีการ


1
สิ่งนี้ควรปฏิบัติอย่างไรเมื่อมีพารามิเตอร์ตั้งแต่สามตัวขึ้นไป :)
Konstantin Yovkov

2
สมมติว่าเคอร์เซอร์ของฉันอยู่บนพารามิเตอร์ที่สอง: เลื่อนขึ้นควรกลายเป็นอันดับแรก เลื่อนลงมันควรจะเป็นครั้งสุดท้าย
Stefan Haberl

2
เลื่อนขึ้นหรือลงทีละพารามิเตอร์! ฉันชอบที่จะสามารถทำสิ่งนี้ได้!
Per Eriksson

1
Ctrl+F6แล้วAlt+UpหรือAlt+Downจะย้ายพารามิเตอร์?
Lyubomyr Shaydariv

1
ใช่บ่อยกว่าที่คุณคิด เมื่อฉันเริ่มแยกแยะวิธีการฉันมักAlt-Enter จะเพิ่มพารามิเตอร์เพิ่มเติมเมื่อจำเป็น เมื่อฉันทำเสร็จแล้วฉันก็จัดเรียงพารามิเตอร์ใหม่ให้อยู่ในลำดับที่สมเหตุสมผลมากขึ้น นอกจากนี้ฉันคิดว่ามันจะดีมากที่มีทางลัดนี้สำหรับการเรียกวิธีด้วยเช่นกัน (ผู้ชายฉันผิดคำสั่งบ่อยแค่ไหนเมื่อทำงานกับ API แบบเดิมที่มีพารามิเตอร์ประเภทเดียวกันมากกว่า 4 หรือ 5 ตัว! uhg!)
Stefan Haberl

คำตอบ:


155

ตั้งแต่ IDEA 16 EAP จึงมีการดำเนินการดังกล่าว ในเมนู:

รหัส | ย้ายองค์ประกอบไปทางซ้าย / ขวา

แป้นพิมพ์ลัดคือAlt+ Ctrl+ Shift+ Left/Right( Alt+ Cmd+ Shift+ Left/Rightสำหรับ OSX)

ดูhttp://blog.jetbrains.com/idea/2016/01/intellij-idea-16-eap-improves-editor-and-vcs-integration/สำหรับรายละเอียดเพิ่มเติม


ฉันเดาว่าฉันจะต้องรออีกสักหน่อยจนกว่า IDEA 16 จะเปิดตัวในป่า แต่นั่นเป็นข่าวดี!
Stefan Haberl

EAP อยู่ในป่าแล้วคุณสามารถลองได้ :) ฉันไม่คิดว่าจะใช้เวลานานกว่า 2 เดือนในการเผยแพร่
Peter Gromov

4
ดี แต่คำตอบของ Lyubomyr Shaydariv: stackoverflow.com/a/35359882/4024146ดีกว่ามากเพราะทำ refactor และเปลี่ยนการอ้างอิงกับการเปลี่ยนแปลงของพารามิเตอร์ นี่เป็นเพียงแค่เปลี่ยนพารามิเตอร์สำหรับเมธอดนี้ แต่ไม่ใช่การเรียกเมธอดจากวิธีอื่น คุณไม่จำเป็นต้องสร้างมาโครเพียงแค่ CTRL + F6 แล้วใช้ ALT + ↓
mtrakal

1
@mtrakal เป็นสองสิ่งที่แตกต่างกัน เมื่อฉันเขียนวิธีการฉันไม่ต้องการการปรับโครงสร้างแบบเฮฟวี่เวท (ช้า) - ฉันแค่ต้องการย้ายพารามิเตอร์อย่างง่ายดาย ปัญหาที่แท้จริงของปัญหานี้คือฉันมักจะมีพารามิเตอร์ในบรรทัดแยกกันดังนั้นจึงไม่ได้ผล (ฉันต้องการย้ายก่อนหน้าและย้ายไปข้างหน้าไม่ใช่ซ้ายและขวา)
เจมส์มัวร์

หากคุณมีเคอร์เซอร์หลายตัวในหลายพารามิเตอร์ของวิธีการต่างๆก็สามารถย้ายไปพร้อมกันได้
WesternGun

16

ฉันไม่แน่ใจว่าเป็นไปได้ใน IDEA หรือไม่ แต่คุณอาจลองใช้มาโครตัวแก้ไขสำหรับวิธีการสองพารามิเตอร์:

  • ตัวแก้ไข -> มาโคร -> เริ่มการบันทึกมาโคร
  • บันทึกมาโครของคุณ:
    • Ctrl+ F6เพื่อเปิดกล่องโต้ตอบเปลี่ยนลายเซ็น
    • Alt+ เพื่อสลับพารามิเตอร์ตัวแรกและตัวที่สอง
    • Tabเพื่อปิดใช้งานแท็บพารามิเตอร์และปล่อยให้ปุ่มRefactorได้รับโฟกัส
    • Enter เพื่อปิดกล่องโต้ตอบเมื่อทำการ refactoring
  • Editor -> Macros -> หยุดการบันทึกมาโครและตั้งชื่อให้กับมาโครของคุณสมมติว่า "Swap method parameters 1 และ 2"

และจากนั้นเข้าถึงแมโครของคุณผ่านทางแก้ไข -> แมโครเมนูหรือมอบหมายให้ทางลัดที่กำหนดเองเพื่อในการตั้งค่า -> Keymap -> เมนูหลัก / แก้ไข / มาโคร / พารามิเตอร์วิธี Swap ที่ 1 และ 2 ดูเหมือนเป็นวิธีที่สกปรกและไร้บริบทสำหรับฉัน แต่อาจช่วยคุณได้เล็กน้อย


11

บน Ubuntu 18.04 ทางลัดเริ่มต้นคือ Ctrl + Alt + Shift + Super + ซ้าย / ขวาเพื่อย้ายอาร์กิวเมนต์ไปทางซ้ายหรือขวาในตำแหน่ง

นี่คือการตั้งค่าเพื่อไม่ให้ปะทะกับทางลัดระดับ OS ใหม่บางส่วน


1
ขอบคุณแม้ว่าจะต้องใช้นิ้วยิมนาสติก แต่มันก็ดีกว่าการผูกคีย์แยกต่างหาก
gMale
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.