我有一个sbt项目,该项目已导入IntelliJ IDEA。该项目包括splain编译器插件,该插件在某些编译器消息中包含颜色代码。
在IntelliJ IDEA中进行编译时,不会解释这些颜色代码。我可以将"-P:splain:color:false"
添加到首选项中的其他编译器选项中,该方法可以正常工作,但在刷新sbt项目时会丢失。
是否可以在sbt中设置scalacOptions
,使其仅适用于IntelliJ IDEA?
答案 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中的问题。