2011-10-14 21 views
11

Tôi tin rằng các tệp mã nguồn của tôi có nhiều mục nhập không được sử dụng trong mã (vì tôi có thói quen xấu sao chép chúng từ tệp hiện có sang tệp mới). Khi mã hóa C# trong Visual Studio (hoặc, có thể, nó là một tính năng của một add-on của nó) người ta có thể quét sạch tất cả các nhập khẩu không sử dụng chỉ trong một cú nhấp chuột. Có một công cụ tương tự cho Scala? Sẽ được mát mẻ nếu tôi chỉ có thể trỏ nó vào thư mục nguồn của tôi và nó sẽ làm sạch tất cả các tập tin bên trong nó và tất cả các subdirs và subdirs của họ (vv).Có công cụ nào cho Scala để xóa tất cả các mục nhập chưa sử dụng từ tất cả các tệp mã không?

Trả lời

4

Tôi nghĩ Intellij đánh dấu các hàng nhập khẩu không sử dụng màu xám. Tôi không nghĩ rằng có một công cụ tự động được nêu ra. Việc tái cấu trúc "tổ chức nhập khẩu" của Eclipse và của bộ nhớ không loại bỏ được việc nhập khẩu. Tất nhiên, bạn có thể bình luận về việc nhập khẩu cá nhân và biên dịch lại.

+4

Eclipse "tổ chức nhập khẩu" loại bỏ nhập khẩu chưa sử dụng cho tôi. – Mike

+0

Tổ chức nhập khẩu là một tính năng của ScalaIDE kể từ 2.0.0-beta6. http://scala-ide-portfolio.assembla.com/spaces/scala-ide/wiki/Changelog –

4

IntelliJ có thể tự động xóa hàng nhập, không chỉ làm nổi bật chúng và cho toàn bộ thư mục. Lối tắt là Ctrl + Alt + O.

enter image description here

+1

Tôi chưa bao giờ đủ dũng cảm để cho phép tối ưu hóa nhập khẩu cho dự án hoàn chỉnh của tôi. Tất nhiên điều này là không hợp lý vì bạn luôn có thể quay trở lại. Nhưng nó có hoạt động không? Bởi vì nhập khẩu tự động thường không thành công. – ziggystar

+0

@ziggystar Tôi chưa bao giờ thử toàn bộ tùy chọn thư mục kể từ khi tôi dọn dẹp các tệp khi tôi đi. Đôi khi nhập tự động không thành công vì vậy bạn phải chọn thủ công cái nào (thường là khi có sự mơ hồ) nhưng tôi chưa bao giờ thấy nó xóa một lần nhập mà tôi đang sử dụng. –

+1

Trong thực tế, đối với Scala, nó sẽ loại bỏ nhập khẩu được yêu cầu. Đây là trường hợp đối với implicits, ví dụ: Plugin IntelliJ Scala muốn xóa com.bla.common.MonadInstances._ của tôi ngay cả khi lớp của tôi sẽ không biên dịch mà không có nó. Vì vậy, không sử dụng nó trừ khi các plugin trở nên trưởng thành hơn. – Tvaroh

0

Scalafix có viết lại để loại bỏ nhập khẩu không sử dụng: https://scalacenter.github.io/scalafix/#RemoveUnusedImports

thêm addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.5.0-M1") để dự án của bạn/plugins.sbt

sau đó chạy sbt "scalafix RemoveUnusedImports"

+0

Nếu bạn gặp phải một câu hỏi ngoài chủ đề, bạn nên bỏ phiếu để đóng câu hỏi thay vì đăng câu trả lời chỉ có liên kết. –

+0

@BaummitAugen đã sửa bài đăng của tôi. Tôi nghĩ câu hỏi đó không phải là chủ đề. –

+0

Làm thế nào? Các câu hỏi yêu cầu tài nguyên ngoài trang web rõ ràng là không có chủ đề. –

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