Terminal support for GNU Emacs

This commit is contained in:
Sam Halliday
2021-01-21 10:50:57 +00:00
parent c0e8267756
commit 816208f081
2 changed files with 8 additions and 2 deletions
@@ -64,6 +64,8 @@ object Util {
lazy val isNonCygwinWindows: Boolean = isWindows && !isCygwin lazy val isNonCygwinWindows: Boolean = isWindows && !isCygwin
lazy val isCygwinWindows: Boolean = isWindows && isCygwin lazy val isCygwinWindows: Boolean = isWindows && isCygwin
lazy val isEmacs: Boolean = Option(System.getenv("INSIDE_EMACS")).isDefined
def nil[A]: List[A] = List.empty[A] def nil[A]: List[A] = List.empty[A]
def nilSeq[A]: Seq[A] = Seq.empty[A] def nilSeq[A]: Seq[A] = Seq.empty[A]
def none[A]: Option[A] = (None: Option[A]) def none[A]: Option[A] = (None: Option[A])
@@ -317,7 +317,10 @@ object Terminal {
props props
.map(_.color) .map(_.color)
.orElse(isColorEnabledProp) .orElse(isColorEnabledProp)
.getOrElse(logFormatEnabled.getOrElse(true) && ((hasConsole && !isDumbTerminal) || isCI)) .getOrElse(
logFormatEnabled
.getOrElse(true) && ((hasConsole && !isDumbTerminal) || isCI || Util.isEmacs)
)
} }
private[this] lazy val isColorEnabledProp: Option[Boolean] = private[this] lazy val isColorEnabledProp: Option[Boolean] =
sys.props.get("sbt.color").orElse(sys.props.get("sbt.colour")).flatMap(parseLogOption) sys.props.get("sbt.color").orElse(sys.props.get("sbt.colour")).flatMap(parseLogOption)
@@ -867,7 +870,8 @@ object Terminal {
.map(_.supershell) .map(_.supershell)
.getOrElse(System.getProperty("sbt.supershell") match { .getOrElse(System.getProperty("sbt.supershell") match {
case null => case null =>
!(sys.env.contains("BUILD_NUMBER") || sys.env.contains("CI")) && isColorEnabled !(sys.env.contains("BUILD_NUMBER") || sys.env
.contains("CI")) && isColorEnabled && !Util.isEmacs
case "true" => true case "true" => true
case _ => false case _ => false
}) })