2011-10-14 8 views
11

Credo che i miei file di codice sorgente contengano molte importazioni non utilizzate nel codice (poiché ho la cattiva abitudine di copiarle da esistenti a nuovi file). Quando si codifica C# in Visual Studio (o, forse, è una funzionalità di un componente aggiuntivo di esso) si può cancellare tutte le importazioni inutilizzate in un solo clic. C'è uno strumento analogo per Scala? Sarebbe bello se potessi semplicemente indicarlo alla mia directory dei sorgenti e pulire tutti i file al suo interno e tutti i suoi sottodivelli e sottodirectory (ecc.).C'è uno strumento per Scala per pulire tutte le importazioni inutilizzate da tutti i file di codice?

risposta

4

Penso che Intellij contrassegni le importazioni inutilizzate in grigio. Non penso che ci sia ancora uno strumento automatico. Il refactoring di "organizzare le importazioni" di Eclipse e di ensime non rimuove le importazioni. Naturalmente puoi sempre commentare le singole importazioni e ricompilare.

+4

Eclipse "organizzare le importazioni" rimuove le importazioni non utilizzati per me. – Mike

+0

Organizza le importazioni è una funzionalità di ScalaIDE dal 2.0.0-beta6. http://scala-ide-portfolio.assembla.com/spaces/scala-ide/wiki/Changelog –

4

IntelliJ può pulire automaticamente le importazioni, non solo per evidenziarle, e per l'intera directory. La scorciatoia è Ctrl + Alt + O.

enter image description here

+1

Non sono mai stato abbastanza coraggioso da permettergli di ottimizzare le importazioni per il mio progetto completo. Ovviamente questo non è ragionevole dal momento che puoi sempre tornare. Ma funziona? Perché le importazioni automatiche spesso falliscono. – ziggystar

+0

@ziggystar Non ho mai provato l'intera opzione di directory da quando pulisco i file mentre vado. A volte le importazioni automatiche falliscono, quindi devi scegliere manualmente quale (di solito quando c'è ambiguità) ma non l'ho mai visto rimuovere un'importazione che sto usando. –

+1

Infatti, per Scala rimuove le importazioni che sono necessarie. Questo è il caso degli impliciti, ad es. Il plugin IntelliJ Scala vorrebbe rimuovere la mia importazione com.bla.common.MonadInstances._ anche la mia classe non verrà compilata senza di essa. Quindi, non usarlo a meno che il plugin non diventi più maturo. – Tvaroh

0

Scalafix ha una riscrittura per rimuovere le importazioni inutilizzati: https://scalacenter.github.io/scalafix/#RemoveUnusedImports

aggiungere addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.5.0-M1") al vostro progetto/plugins.sbt

quindi eseguire sbt "scalafix RemoveUnusedImports"

+0

Se si incontra una domanda fuori tema, si dovrebbe votare per chiuderla invece di pubblicare una risposta di solo collegamento. –

+0

@BaummitAugen ha corretto il mio post. Penso che la domanda non sia affatto fuori tema. –

+0

Come mai? Le domande che richiedono risorse fuori sede sono esplicitamente fuori tema. –

Problemi correlati