Cách đơn giản để sắp xếp lại các phương thức của một lớp Java trong IntelliJ?


82

Có cách nào đơn giản hơn để sắp xếp lại các phương thức trong tệp nguồn lớp trong IntelliJ hơn là cắt và dán mã theo cách thủ công? Ngày nay, tôi thường cần điều này trong khi cấu trúc lại mã kế thừa, ví dụ: để di chuyển các phương thức liên quan đến gần nhau trong mã nguồn.

Trong Eclipse AFAIK có một dạng xem tương tự như dạng xem Cấu trúc của IntelliJ, nơi tôi có thể kéo và thả các phương thức xung quanh. Tuy nhiên, điều này không hoạt động trong IntelliJ và tôi cũng không thể tìm thấy bất kỳ gợi ý nào từ sự trợ giúp của nó.

Tôi đang sử dụng IntelliJ 9.0.2 cụ thể.


Tôi nghĩ giải pháp tốt nhất sẽ là một công cụ định dạng tự động sắp xếp các phương pháp của bạn. Văn xuôi: Các phương thức nên được sắp xếp theo cách chúng được gọi. Giống như bạn đọc một bài báo trên một tờ báo.
Chris311,

Câu trả lời:


107

Bạn có thể chọn tên phương thức và nhấn: Ctrl+ Shift+ Uphoặc Ctrl+ Shift+ Downđể di chuyển lên và xuống.

Trên OS X: Cmd+ Shift+ Uphoặc Cmd+ Shift+Down

Ngoài ra, Plugin sắp xếp lại cho phép bạn di chuyển các phương thức một cách nhanh chóng và thậm chí xác định một thứ tự tiêu chuẩn dựa trên quy ước mã hóa của bạn.


Chẳng hạn như không có thứ gì đó để sắp xếp lại thứ tự bảng chữ cái?
Jaime Hablutzel

Liên kết đã chết, đây có vẻ là liên kết chính xác: java.net/projects/rearranger
stian

@stian - Tôi đã chỉnh sửa bài đăng để trỏ đến trang plugin trên trang web của JetBrains, vì liên kết bạn đã đăng dường như không có bất kỳ bản tải xuống nào
adrian 29/10/13

5
Đối với Mac OS X: Cmd + Shift + Lên / Cmd + Shift + Xuống
Christian García

2
Kể từ IDEA 16, nó có sẵn thông qua menu:Code > Move Statement Up/Down
Lu55 2/217

23

Không phải là một câu trả lời hoàn hảo chưa , do một lỗi trong IntelliJ.

Mặc dù IntelliJ cung cấp tính năng này một cách ngầm định, nhưng nó cần được bật cũng như sửa. Cách đề xuất của OP là sắp xếp kỹ thuật các phương pháp theo thứ tự chiều sâu. Tuy nhiên, nếu bạn sử dụng thứ tự Breadth-first (hoạt động đúng cách), nó sẽ giảm bớt nhiều công việc thủ công của các chức năng di chuyển, bằng cách sắp xếp tất cả các phương thức caller và callee cùng nhau.

Liên kết sự cố: https://youtrack.jetbrains.com/issue/IDEA-149524 . Vui lòng bỏ phiếu cho giải pháp của nó.

IntellijRearrangeMethodsInDFO

Hành động thích hợp cho việc này là Mã sắp xếp lại. Điều này không có khóa nào được gán cho nó, nhưng bạn có thể xác định khóa của riêng mình bằng cách sử dụng Preferences-> Keymap.

Sắp xếp lạiActionMenuButton

nhập mô tả hình ảnh ở đây


23

IntelliJ có một hệ thống tích hợp cho phép bạn chỉ định cách sắp xếp các phương thức của mình. Bạn cần vào Cài đặt (Ctrl + Alt + S) -> Trình chỉnh sửa -> Kiểu mã -> Java -> Sắp xếp (tab) và cuộn xuống cho đến khi bạn tìm thấy các biểu tượng có methods. Ở đó, bạn có thể thao tác với các tùy chọn để sắp xếp chúng theo mức độ hiển thị hoặc theo thứ tự bảng chữ cái, hoặc để giữ các tùy chọn liên quan được nhóm lại với nhau. Đây là ảnh chụp màn hình cài đặt của tôi sẽ tự động sắp xếp các phương pháp theo mức độ hiển thị (công khai, được bảo vệ, riêng tư) và theo thứ tự bảng chữ cái (az). Các điểm nổi bật màu xanh lam hiển thị các quy tắc hiện được chọn.

nhập mô tả hình ảnh ở đây


1
Làm cách nào để tôi có thể áp dụng lựa chọn đơn hàng cho một hoặc nhiều quy tắc cùng một lúc?
Derek Mahar

Điều này không hoạt động ở tất cả. Sử dụng cấu hình này và thực hiện Sắp xếp lại không làm được gì cả.
Mulgard

Giải pháp này hoạt động với thứ tự mặc định. Cảm ơn!
Ông Polywhirl

7

Với con trỏ của bạn trên dòng định nghĩa phương thức (bạn không cần phải nhấn ctrl+ shift+ uphoặc ctrl+ shift+ downđể di chuyển lên hoặc xuống tương ứng.

Bạn cũng có thể ctrl+ shift+ numberpad -để nhanh chóng thu gọn mọi thứ để bạn có thể tập trung vào việc di chuyển xung quanh (đơn giản cũng -hoạt động trên máy tính xách tay của tôi, không rõ tại sao) và ctrl+ shift+ numberpad +để quay lại xem mọi thứ (ctrl-shift-equals hoạt động trên máy tính xách tay của tôi như tốt).


3

Chọn một khối văn bản (nhấn Ctrl-W vài lần) rồi sử dụng Ctrl-Shift-Up và Ctrl-Shift-Down để di chuyển nó.


1

Có một cách tự động mà bạn có thể điều chỉnh sau này

Mã -> hiển thị hộp thoại định dạng lại tệp

và đánh dấu vào ô "sắp xếp lại mã"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.