为IntelliJ IDEA设置scalacOptions

时间:2018-07-16 22:49:18

标签: intellij-idea sbt intellij-scala

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

在IntelliJ IDEA中进行编译时,不会解释这些颜色代码。我可以将"-P:splain:color:false"添加到首选项中的其他编译器选项中,该方法可以正常工作,但在刷新sbt项目时会丢失。

是否可以在sbt中设置scalacOptions,使其仅适用于IntelliJ IDEA?

2 个答案:

答案 0 :(得分:1)

IntelliJ Scala插件在启动sbt实例时设置-Didea.managed=true系统属性,因此可以使用:

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

答案 1 :(得分:0)

我发现了针对此特定问题的解决方案,该解决方案具有色彩输出和色彩平滑的特点,但它不是设置scalacOptions的通用解决方案,仅适用于IntelliJ IDEA。

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

我已经在构建过程中使用-no-colors运行sbt了,所以让编译器选项依赖于此是合理的。有根据的猜测是,这也可以解决IntelliJ IDEA中的问题。