2015-01-19 11 views
5

śledzę samouczka Akka w działaniu oraz w rozdziale 2, istnieje klasa (https://github.com/RayRoestenburg/akka-in-action/blob/master/chapter2/src/main/scala/com/goticks/RestInterface.scala):IntelliJ utrzymuje usuwanie import context.dispatcher z Akka tutorialu

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

import context.dispatcher nigdy nie jest używany , ale jest zdefiniowany z komentarzem:

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

jednak IntelliJ utrzymuje znakowanie importu jako „nieużywane” i usunięcie go na „optymalizacji” importu powodując błąd value pipeTo is not a member of scala.concurrent.Future[Any].

Czy istnieje sposób poinformowania firmy IntelliJ, że ten import nie ma być "używany", ale po prostu podać kontekst?

Czy powinien zostać zaktualizowany samouczek, aby nie używać takiego "nieużywanego importu"?

+0

Funkcja "optymalizacji importu" firmy Intellij jest błędna. Zwykle wyłączam usuwanie niewykorzystanych importów w ustawieniach i używam go tylko do dodawania nowych importów. – lmm

+0

Możliwy duplikat [Jak uniemożliwić IntelliJ IDEA w usuwaniu nieużywanych pakietów?] (Http://stackoverflow.com/questions/11154912/how-to-prevent-intellij-idea-from-deleting-unused-packages) – jopasserat

+1

Nie. Nie chodzi o wyłączenie usuwania wszystkich importów nieużywanych pakietów, ale o wyłączenie usuwania importów, które są "używane", ale IDEA uważa, że ​​nie są "używane". – mirelon

Odpowiedz

10

To dla mnie wygląda jak numer SCL-9326. IntelliJ 15 ma na to dobrą poprawkę: naciśnij alt-enter (na Macu) i wybierz "zaznacz ten import jak zawsze używany w tym projekcie".

1

przejdź do ustawień - edytor - ogólnie - automatyczny import i dodać pakiet na „wyłączenie z importu i zakończenia” listy enter image description here

Można również wyłączyć „Optymalizacja import w locie”, tak że nie usunie Twojego importu bez Twojej wyraźnej prośby.

+1

Hmm, fajne rozwiązanie, ale istnieją osobne sekcje "Java" i "Scala". W sekcji "Scala" opcje są takie same, z wyjątkiem "Wyklucz z importu i ukończenia" – mirelon

+0

Pomyślałem, że coś z https://confluence.jetbrains.com/display/IntelliJIDEA/Managing+Imports+in+Scala mogłoby pomóc, ale to nie robi tak się wydaje. – mirelon