如何确定终端是否支持带sbt的ansi?

agyaoht7  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(409)

使用旧版本的sbt,我可以这样做:

initialize := {
  if (sbt.internal.util.ConsoleAppender.formatEnabledInEnv) {
    println("My fancy ANSI long string with color")
  }
}

但是现在在新的sbt请求使用terminal.isansistupported时,这一点已被否决,但我不知道如何访问该值。
可能是这样,但会引发一个错误:

initialize := {
  if (terminal.isAnsiSupported) { // <- ERROR
    println("My fancy ANSI long string with color")
  }
}

谢谢你的建议和帮助。

daolsyd0

daolsyd01#

好的,找到了。。。经过几次尝试后是这样的:

initialize := {
  if (sbt.internal.util.Terminal.console.isAnsiSupported && sbt.internal.util.Terminal.console.isColorEnabled) {
    println("My fancy ANSI long string with color")
  }
}

诀窍是在sbt的内部util终端中使用.console。

相关问题