2013-12-13 18 views
25

Tôi hiện đang làm việc trên một mã java cũ được viết với hầu như không có quy ước mã hóa hoặc thực tiễn phổ biến. Tôi thường bắt gặp các đoạn mã hoạt động nhưng rất tệ hại (lỗi chính tả trong tên biến, dự phòng và nhiều thứ khác) mà tôi thấy mình đang cố gắng sửa chữa. Trong một trong những trường hợp đó, tôi đã tìm thấy một lớp có chứa ba phương thức với các tên khác nhau nhưng gần như giống hệt nhau.Cách nhanh chóng so sánh các phương pháp trong IntelliJ

Theo quan sát ban đầu của tôi, sự khác biệt duy nhất là tên của một trong các tham số.

Trước khi thực hiện bất kỳ bước nào và hợp nhất chúng, tôi muốn so sánh ba phương pháp để xem có bất kỳ sự khác biệt tinh tế nào mà tôi không chú ý hay không.

Tôi biết có thể so sánh hai tệp, so sánh với phiên bản từ VCS, v.v. nhưng tôi không thể tìm cách nhanh chóng so sánh các định nghĩa phương thức trong cùng một tệp.

Có cách nào thực tế hơn để so sánh các phần khác nhau của cùng một tệp trong IntelliJ thay vì sao chép chúng thành các tệp khác nhau và chạy so sánh tệp không?

Cảm ơn,

+0

Bất kỳ công cụ tìm kiếm nào khác sẽ giúp bạn thực hiện việc đó, công cụ nào để chọn chủ yếu là chủ đề chủ quan và có thể có rất nhiều câu hỏi đã được hỏi về chủ đề này trên StackOverflow. –

+0

xem http://stackoverflow.com/questions/434766/how-can-i-diff-two-sections-of-the-same-file –

Trả lời

8

IntelliJ có Xác định vị trí Bản sao trong phân tích. Đó là cấu hình cao và nhận thức ngôn ngữ đến mức nó không chỉ tìm kiếm các khối văn bản giống nhau. Nó sẽ có thể phát hiện nếu hai khối mã giống nhau, nhưng với các tên biến khác nhau chẳng hạn.

Bạn thậm chí có thể mở rộng phạm vi để phát hiện các mã trùng lặp trong các tệp khác nhau.

Xem trang help này để biết thêm thông tin.

+4

Cần lưu ý rằng điều này chỉ có sẵn trong "phiên bản cuối cùng" có trả tiền chứ không phải "phiên bản cộng đồng" nguồn mở. (Không phải là nó quá đắt tiền - đó là một công cụ tuyệt vời - Tôi chỉ mất một lúc để giải thích tại sao tôi lại thiếu nó ....) –

56

Một cách nhanh chóng để so sánh các phương pháp (hoặc bất kỳ khối mã) trong IntelliJ:

  1. Sao chép một phiên bản vào clipboard.
  2. Làm nổi bật phiên bản khác.
  3. Sử dụng tính năng "So sánh với Clipboard" từ trình đơn ngữ cảnh trong trình chỉnh sửa hoặc từ Xem> So sánh với Clipboard.
+1

Hoàn hảo ... rất hữu ích! cảm ơn! – Daren

+3

Điều này phải được chấp nhận câu trả lời. – InamTaj

Các vấn đề liên quan