2015-01-19 11 views
5

Ich bin nach dem akka-in-Action-Tutorial und in Kapitel 2, gibt es eine Klasse (https://github.com/RayRoestenburg/akka-in-action/blob/master/chapter2/src/main/scala/com/goticks/RestInterface.scala):IntelliJ hält den Import von context.dispatcher von Akka Tutorial Entfernen

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

Die import context.dispatcher wird nie benutzt , aber es ist mit einem Kommentar definiert:

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

jedoch hält IntelliJ den Import als „ungenutzt“ und Entfernen sie auf „optimieren Importe“ verursacht einen Fehler value pipeTo is not a member of scala.concurrent.Future[Any] Markierung.

Gibt es eine Möglichkeit, IntelliJ mitzuteilen, dass dieser Import nicht "verwendet" werden soll, sondern lediglich einen Kontext bereitstellt?

Oder sollte das Tutorial aktualisiert werden, um solche "unbenutzten Import" nicht zu verwenden?

+0

Intellijs "Optimize Imports" -Funktionalität ist fehlerhaft. Ich deaktiviere in den Einstellungen die Entfernung nicht verwendeter Importe und verwende sie nur, um neue Importe hinzuzufügen. – lmm

+0

Mögliches Duplikat von [Wie verhindert man, dass IntelliJ IDEA unbenutzte Pakete löscht?] (Http://stackoverflow.com/questions/11154912/how-to-prevent-intellij-idea-from-deleting-unused-packages) – jopasserat

+1

Nein. Es geht nicht darum, alle Importe von unbenutzten Paketen zu löschen, sondern um das Löschen von Importen zu deaktivieren, die "gebraucht" sind, aber IDEA denkt, dass sie "nicht verwendet" werden. – mirelon

Antwort

10

Das sieht aus wie Ausgabe SCL-9326 für mich. IntelliJ 15 hat eine schöne Lösung dafür: Drücken Sie Alt-Enter (auf einem Mac) und wählen Sie "Diesen Import markieren wie immer in diesem Projekt verwendet".

1

Zum Einstellungen - Editor - allgemein - Auto-Import und fügen Sie das Paket an die "Ausschließen von Import und Fertigstellung" -Liste enter image description here

Sie können auch deaktivieren Sie die "on the fly Import optimieren", so dass es wird Ihre Importe nicht ohne Ihre ausdrückliche Anfrage entfernen

+1

Hmm, nette Lösung, aber es gibt separate "Java" und "Scala" Abschnitte. Im Abschnitt "Scala" sind die Optionen identisch mit Ausnahme von "Von Import und Fertigstellung ausschließen" – mirelon

+0

Ich dachte, etwas von https://confluence.jetbrains.com/display/IntelliJIDEA/Managing+Imports+in+Scala könnte helfen, aber es tut nicht Mir scheint es so. – mirelon