mirror of https://github.com/sbt/sbt.git
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:
commit
b1c04d7e1a
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
4
sbt
|
|
@ -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 ###
|
||||
|
|
|
|||
Loading…
Reference in New Issue