From 126d2419bdf491ddb8a39533b91ec032f324c49f Mon Sep 17 00:00:00 2001 From: Heikki Vesalainen Date: Thu, 26 Oct 2023 21:17:37 +0300 Subject: [PATCH] Temporary fix for #7371 This fix disables vi-style effects (most notably parenthesis matching) if the terminal is inside emacs. The proper fix is to update to JLine 3.24.0 where this check has been implemented in JLine proper. --- .../src/main/scala/sbt/internal/util/LineReader.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala index 20db30ab0..0cbf320d2 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/LineReader.scala @@ -110,6 +110,11 @@ object LineReader { override def readLine(prompt: String, mask: Option[Char]): Option[String] = { val term = JLine3(terminal) val reader = LineReaderBuilder.builder().terminal(term).completer(completer(parser)).build() + + if (Util.isEmacs) { + reader.setKeyMap(JLineReader.SAFE) + } + try { inputrcFileContents.foreach { bytes => InputRC.configure(