在intellij中处理错误的未使用导入的最佳方法

时间:2017-04-03 07:16:08

标签: scala intellij-idea import scala-implicits

Intellij错误地标记了一些Scala implicits导入为不使用。 有没有办法阻止它在为特定导入明确优化它们时删除那些导入,而不是阻止整个项目的优化导入?

3 个答案:

答案 0 :(得分:7)

我担心没有,我有类似的问题,尤其是在使用akka并在某些情况下从ActorSystem导入隐式执行上下文时。我建议定义值而不是导入。一个这样的例子是:

// Avoid importing the execution context like this
class MyActor extends Actor {
  import context.system.dispatcher
}

// Define it explicitly instead
class MyActor extends Actor {
  implicit val ec = context.system.dispatcher
}

我希望这会对你有所帮助。

答案 1 :(得分:2)

不幸的是,没有修复,问题似乎源于编译器本身。

请参阅导致https://youtrack.jetbrains.com/issue/SCL-7335https://issues.scala-lang.org/browse/SI-8773(2014年报告但尚未修复)。

答案 2 :(得分:2)

IntelliJ的Scala插件现在允许您在项目范围内抑制此错误警告。这可能并不适合所有情况,但可以有所帮助。点击灯泡,然后选择“将导入标记为在此项目中始终使用”

enter image description here

或者,您可以将其直接添加到您的代码样式xml中:

ViewBag.ReturnCount = await Count.CountAsync(); 

IntelliJ通常将该文件存储在<component name="ProjectCodeStyleConfiguration"> <code_scheme name="Project" version="173"> <ScalaCodeStyleSettings> <option name="alwaysUsedImports"> <array> <option value="models.slickless.synchronized" /> <option value="another.import.path" /> </array> </option> </ScalaCodeStyleSettings> </code_scheme> </component> 中。将其提交到您的存储库以使其可以共享是一个好主意。