2015-01-19 13 views
5

tôi đang theo hướng dẫn AKKA-in-action và trong chương 2, có một lớp (https://github.com/RayRoestenburg/akka-in-action/blob/master/chapter2/src/main/scala/com/goticks/RestInterface.scala):IntelliJ giữ loại bỏ việc nhập khẩu context.dispatcher từ AKKA hướng dẫn

trait RestApi extends HttpService with ActorLogging { actor: Actor => 
    import context.dispatcher 
    import com.goticks.TicketProtocol._ 
    ... 

Các import context.dispatcher không bao giờ được sử dụng , nhưng nó được định nghĩa với một lời nhận xét:

/** 
    * Returns the dispatcher (MessageDispatcher) that is used for this Actor. 
    * Importing this member will place an implicit ExecutionContext in scope. 
    */ 
    implicit def dispatcher: ExecutionContextExecutor 

Tuy nhiên, IntelliJ tiếp tục đánh dấu việc nhập khẩu là "không sử dụng" và loại bỏ nó khi "tối ưu hóa nhập khẩu" gây ra một lỗi value pipeTo is not a member of scala.concurrent.Future[Any].

Có cách nào để nói với IntelliJ rằng việc nhập này không nhằm mục đích "được sử dụng", mà chỉ đơn giản là cung cấp ngữ cảnh?

Hoặc hướng dẫn nên được cập nhật để không sử dụng "nhập không sử dụng" như vậy?

+0

Chức năng "tối ưu hóa nhập" của Intellij là lỗi. Tôi có xu hướng tắt loại bỏ nhập khẩu không sử dụng trong các thiết lập và chỉ sử dụng nó để thêm nhập khẩu mới. – lmm

+0

Bản sao có thể có của [Cách ngăn IntelliJ IDEA xóa các gói không sử dụng?] (Http://stackoverflow.com/questions/11154912/how-to-prevent-intellij-idea-from-deleting-unused-packages) – jopasserat

+1

Không. Nó không phải là về việc vô hiệu hóa việc xóa tất cả các gói nhập khẩu không sử dụng, nhưng về việc vô hiệu hóa việc xóa các mục nhập được "sử dụng", nhưng IDEA cho rằng chúng là "không được sử dụng". – mirelon

Trả lời

10

Điều này có vẻ như vấn đề SCL-9326 với tôi. IntelliJ 15 có một sửa chữa tốt đẹp cho việc này: nhấn alt-enter (trên máy Mac) và chọn "đánh dấu nhập này là luôn luôn được sử dụng trong dự án này".

1

Đến cài đặt - biên tập viên - nói chung - tự động nhập khẩu và thêm gói để "Loại trừ từ nhập khẩu và hoàn thành" danh sách enter image description here

Bạn cũng có thể tắt tùy chọn "Tối ưu hóa nhập khẩu on the fly" để nó sẽ không xóa các mục nhập của bạn mà không có yêu cầu rõ ràng của bạn

+1

Hmm, giải pháp tốt, nhưng có các phần "Java" và "Scala" riêng biệt. Trong phần "Scala", các tùy chọn giống nhau ngoại trừ "Loại trừ khỏi Nhập và Hoàn thành" – mirelon

+0

Tôi đã nghĩ rằng điều gì đó từ https://confluence.jetbrains.com/display/IntelliJIDEA/Managing+Imports+in+Scala có thể hữu ích, nhưng nó không có vẻ như vậy. – mirelon

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