From 816208f081eefad63a0d8914cdb9bbb9a349742a Mon Sep 17 00:00:00 2001 From: Sam Halliday Date: Thu, 21 Jan 2021 10:33:44 +0000 Subject: [PATCH] Terminal support for GNU Emacs --- .../src/main/scala/sbt/internal/util/Util.scala | 2 ++ .../src/main/scala/sbt/internal/util/Terminal.scala | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Util.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Util.scala index 06afd24a7..0155306c8 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Util.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Util.scala @@ -64,6 +64,8 @@ object Util { lazy val isNonCygwinWindows: 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 nilSeq[A]: Seq[A] = Seq.empty[A] def none[A]: Option[A] = (None: Option[A]) diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala index d7cca5535..dac378cdf 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/Terminal.scala @@ -317,7 +317,10 @@ object Terminal { props .map(_.color) .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] = sys.props.get("sbt.color").orElse(sys.props.get("sbt.colour")).flatMap(parseLogOption) @@ -867,7 +870,8 @@ object Terminal { .map(_.supershell) .getOrElse(System.getProperty("sbt.supershell") match { 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 _ => false })