Merge pull request #7503 from eed3si9n/bport/jline

[1.9.x] JLine 3.24.1 and JAnsi 2.4.0
This commit is contained in:
eugene yokota 2024-02-22 22:26:17 -05:00 committed by GitHub
commit b1c04d7e1a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 22 additions and 18 deletions

View File

@ -19,8 +19,8 @@ import org.jline.terminal.{ Attributes, Size, Terminal => JTerminal }
import org.jline.terminal.Attributes.{ InputFlag, LocalFlag }
import org.jline.terminal.Terminal.SignalHandler
import org.jline.terminal.impl.{ AbstractTerminal, DumbTerminal }
import org.jline.terminal.impl.jansi.JansiSupportImpl
import org.jline.terminal.impl.jansi.win.JansiWinSysTerminal
import org.jline.terminal.impl.jansi.JansiTerminalProvider
import org.jline.terminal.spi.{ SystemStream, TerminalProvider }
import org.jline.utils.OSUtils
import scala.collection.JavaConverters._
import scala.util.Try
@ -32,25 +32,22 @@ private[sbt] object JLine3 {
private[this] val forceWindowsJansiHolder = new AtomicBoolean(false)
private[sbt] def forceWindowsJansi(): Unit = forceWindowsJansiHolder.set(true)
private[this] def windowsJansi(): org.jline.terminal.Terminal = {
val support = new JansiSupportImpl
val winConsole = support.isWindowsConsole();
val provider = new JansiTerminalProvider
val termType = sys.props.get("org.jline.terminal.type").orElse(sys.env.get("TERM")).orNull
val term = JansiWinSysTerminal.createTerminal(
provider.winSysTerminal(
"console",
termType,
OSUtils.IS_CONEMU,
Charset.forName("UTF-8"),
-1,
false,
SignalHandler.SIG_DFL,
true
true,
SystemStream.Output
)
term.disableScrolling()
term
}
private val jansi = {
val (major, minor) =
(JansiSupportImpl.getJansiMajorVersion, JansiSupportImpl.getJansiMinorVersion)
(JansiTerminalProvider.getJansiMajorVersion, JansiTerminalProvider.getJansiMinorVersion)
(major > 1 || minor >= 18) && Util.isWindows
}
private[util] def system: org.jline.terminal.Terminal = {
@ -119,6 +116,11 @@ private[sbt] object JLine3 {
}
}
}
// returns 'null' if the terminal was created with no provider
override def getProvider(): TerminalProvider = null
// returns 'null' if the terminal is not bound to a system stream.
override def getSystemStream(): SystemStream = null
override val input: InputStream = new InputStream {
override def read: Int = {
val res = term.inputStream match {
@ -180,7 +182,7 @@ private[sbt] object JLine3 {
case null => -1
case i => i.toInt
}
override def readBuffered(buf: Array[Char]): Int = {
override def readBuffered(buf: Array[Char], off: Int, len: Int, timeout: Long): Int = {
if (buffer.isEmpty) fillBuffer()
buffer.take match {
case i if i == -1 => -1

View File

@ -32,8 +32,10 @@ object VirtualFileValueCache {
}
}
def apply[A](converter: FileConverter)(f: VirtualFile => A): VirtualFileValueCache[A] = {
import collection.mutable.{ HashMap, Map }
val stampCache: Map[VirtualFileRef, (Long, XStamp)] = new HashMap
import collection.concurrent.Map
import java.util.concurrent.ConcurrentHashMap
import scala.collection.JavaConverters._
val stampCache: Map[VirtualFileRef, (Long, XStamp)] = new ConcurrentHashMap().asScala
make(
Stamper.timeWrap(stampCache, converter, {
case (vf: VirtualFile) => Stamper.forContentHash(vf)

View File

@ -86,14 +86,14 @@ object Dependencies {
// JLine 3 version must be coordinated together with JAnsi version
// and the JLine 2 fork version, which uses the same JAnsi
val jline = "org.scala-sbt.jline" % "jline" % "2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493"
val jline3Version = "3.19.0"
val jline = "org.scala-sbt.jline" % "jline" % "2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79"
val jline3Version = "3.24.1"
val jline3Terminal = "org.jline" % "jline-terminal" % jline3Version
val jline3Jansi = "org.jline" % "jline-terminal-jansi" % jline3Version
val jline3JNA = "org.jline" % "jline-terminal-jna" % jline3Version
val jline3Reader = "org.jline" % "jline-reader" % jline3Version
val jline3Builtins = "org.jline" % "jline-builtins" % jline3Version
val jansi = "org.fusesource.jansi" % "jansi" % "2.1.0"
val jansi = "org.fusesource.jansi" % "jansi" % "2.4.0"
val scalatest = "org.scalatest" %% "scalatest" % "3.2.10"
val scalacheck = "org.scalacheck" %% "scalacheck" % "1.15.4"
val junit = "junit" % "junit" % "4.13.1"

4
sbt
View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set +e
declare builtin_sbt_version="1.9.7"
declare builtin_sbt_version="1.9.8"
declare -a residual_args
declare -a java_args
declare -a scalac_args
@ -24,7 +24,7 @@ declare build_props_sbt_version=
declare use_sbtn=
declare no_server=
declare sbtn_command="$SBTN_CMD"
declare sbtn_version="1.9.0"
declare sbtn_version="1.9.7"
### ------------------------------- ###
### Helper methods for BASH scripts ###