Intellij错误地标记了一些Scala implicits导入为不使用。 有没有办法阻止它在为特定导入明确优化它们时删除那些导入,而不是阻止整个项目的优化导入?
答案 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-7335的https://issues.scala-lang.org/browse/SI-8773(2014年报告但尚未修复)。
答案 2 :(得分:2)
IntelliJ的Scala插件现在允许您在项目范围内抑制此错误警告。这可能并不适合所有情况,但可以有所帮助。点击灯泡,然后选择“将导入标记为在此项目中始终使用”
或者,您可以将其直接添加到您的代码样式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>
中。将其提交到您的存储库以使其可以共享是一个好主意。