为 IntelliJ IDEA 设置 scalacOptions

Setting scalacOptions for IntelliJ IDEA

我有一个已导入 IntelliJ IDEA 的 sbt 项目。该项目包括 splain 编译器插件,它在一些编译器消息中包含颜色代码。

在 IntelliJ IDEA 中编译时,不会解释这些颜色代码。我可以将 "-P:splain:color:false" 添加到 Preferences 中的 Additional compiler options 中,它有效但在我刷新 sbt 项目时丢失了。

有没有办法在 sbt 中设置 scalacOptions 使其仅适用于 IntelliJ IDEA?

我找到了解决此特定颜色输出和 splain 问题的方法,但它不是设置 scalacOptions 的通用解决方案,仅适用于 IntelliJ IDEA。

scalacOptions += if (ConsoleAppender.formatEnabledInEnv) {
  "-P:splain:color:true"
} else {
  "-P:splain:color:false"
}

我已经 运行 在构建过程中使用 -no-colors sbt,因此让编译器选项依赖于此是有意义的。这是一个有根据的猜测,这也将解决 IntelliJ IDEA 中的问题。

IntelliJ Scala 插件在启动 sbt 实例时设置 -Didea.managed=true 系统 属性,所以这可以工作:

scalacOptions += if (System.getProperty("idea.managed") == "true") {
  "-P:splain:color:false"
} else {
  "-P:splain:color:true"
}