Update to jline 3.3.1 and jansi 1.16

Note that the history file name was changed (.kotlin_history ->
.kotlinc_history) because the history is now stored in a different
(incompatible) format.

 #KT-11369 Fixed
This commit is contained in:
Alexander Udalov
2017-04-10 12:24:08 +03:00
parent baa6b44567
commit f313001b2d
7 changed files with 38 additions and 30 deletions
+2 -2
View File
@@ -4,11 +4,11 @@
<root url="file://$PROJECT_DIR$/annotations" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/dependencies/jline.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/jline3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/dependencies/jline-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/dependencies/jline3-sources.jar!/" />
</SOURCES>
</library>
</component>
+3 -2
View File
@@ -61,8 +61,8 @@
<pathelement location="${tools.jar}"/>
<fileset dir="${basedir}/lib" includes="**/*.jar"/>
<fileset dir="${dependencies}" includes="jline3.jar"/>
<fileset dir="${dependencies}" includes="jansi.jar"/>
<fileset dir="${dependencies}" includes="jline.jar"/>
<fileset dir="${dependencies}" includes="javaslang-2.0.6.jar"/>
<fileset dir="${dependencies}" includes="json-org.jar"/>
<fileset dir="${dependencies}" includes="kotlinx-coroutines-core.jar"/>
@@ -400,7 +400,8 @@
<zipfileset src="${idea.sdk}/lib/jna-platform.jar"/>
<zipfileset src="${idea.sdk}/lib/oromatcher.jar" excludes="META-INF/jb/** META-INF/LICENSE"/>
<zipfileset src="${idea.sdk}/jps/jps-model.jar"/>
<zipfileset src="${dependencies}/jline.jar"/>
<zipfileset src="${dependencies}/jline3.jar"/>
<zipfileset src="${dependencies}/jansi.jar"/>
<zipfileset src="${dependencies}/javaslang-2.0.6.jar"/>
<zipfileset src="${dependencies}/json-org.jar"/>
<zipfileset src="${protobuf.jar}"/>
@@ -17,17 +17,6 @@
package org.jetbrains.kotlin.cli.jvm.repl.messages
class ReplConsoleWriter : ReplWriter {
init {
Runtime.getRuntime().addShutdownHook(object : Thread("Kotlin REPL shutdown hook") {
override fun run() {
// Print an empty line to make the command prompt start from the beginning of the line after REPL exits.
// This is essentially a workaround of a jline2 bug.
// TODO: remove this as soon as we update to jline3
println()
}
})
}
override fun printlnWelcomeMessage(x: String) = println(x)
override fun printlnHelpMessage(x: String) = println(x)
override fun outputCompileError(x: String) = println(x)
@@ -39,4 +28,4 @@ class ReplConsoleWriter : ReplWriter {
override fun notifyIncomplete() {}
override fun notifyCommandSuccess() {}
override fun sendInternalErrorReport(x: String) {}
}
}
@@ -16,22 +16,38 @@
package org.jetbrains.kotlin.cli.jvm.repl.reader
import jline.console.ConsoleReader
import jline.console.history.FileHistory
import org.jetbrains.kotlin.cli.jvm.repl.ReplFromTerminal
import org.jline.reader.EndOfFileException
import org.jline.reader.LineReader
import org.jline.reader.LineReaderBuilder
import org.jline.reader.UserInterruptException
import org.jline.terminal.TerminalBuilder
import java.io.File
class ConsoleReplCommandReader : ReplCommandReader {
private val consoleReader = ConsoleReader("kotlin", System.`in`, System.`out`, null).apply {
isHistoryEnabled = true
expandEvents = false
history = FileHistory(File(File(System.getProperty("user.home")), ".kotlin_history"))
}
private val lineReader = LineReaderBuilder.builder()
.appName("kotlin")
.terminal(TerminalBuilder.terminal())
.variable(LineReader.HISTORY_FILE, File(File(System.getProperty("user.home")), ".kotlinc_history").absolutePath)
.build()
.apply {
setOpt(LineReader.Option.DISABLE_EVENT_EXPANSION)
}
override fun readLine(next: ReplFromTerminal.WhatNextAfterOneLine): String? {
val prompt = if (next == ReplFromTerminal.WhatNextAfterOneLine.INCOMPLETE) "... " else ">>> "
return consoleReader.readLine(prompt)
try {
return lineReader.readLine(prompt)
}
catch (e: UserInterruptException) {
println("<interrupted>")
System.out.flush()
return ""
}
catch (e: EndOfFileException) {
return null
}
}
override fun flushHistory() = (consoleReader.history as FileHistory).flush()
}
override fun flushHistory() = lineReader.history.save()
}
+2
View File
@@ -15,6 +15,7 @@
!org/apache/log4j/net/SMTP*,
!org/apache/log4j/or/jms/MessageRenderer*,
!org/jdom/xpath/Jaxen*,
!org/jline/builtins/ssh/**,
!org/mozilla/javascript/xml/impl/xmlbeans/**,
!net/sf/cglib/**,
!META-INF/maven**,
@@ -51,6 +52,7 @@ messages/**)
-dontwarn org.w3c.dom.ElementTraversal
-dontwarn javaslang.match.annotation.Unapply
-dontwarn javaslang.match.annotation.Patterns
-dontwarn org.jline.builtins.Nano$Buffer
-libraryjars '<rtjar>'
-libraryjars '<jssejar>'
@@ -113,8 +113,8 @@
<shadedPattern>${kotlin.relocated.package}.org.picocontainer</shadedPattern>
</relocation>
<relocation>
<pattern>jline</pattern>
<shadedPattern>${kotlin.relocated.package}.jline</shadedPattern>
<pattern>org.jline</pattern>
<shadedPattern>${kotlin.relocated.package}.org.jline</shadedPattern>
</relocation>
<relocation>
<pattern>gnu</pattern>
+2 -2
View File
@@ -191,10 +191,10 @@
dest="${dependencies}/jflex/idea-flex.skeleton" usetimestamp="true"/>
<!-- jline -->
<get-maven-library prefix="jline" lib="jline" version="2.12.1" target.jar.name.base="jline"/>
<get-maven-library prefix="org/jline" lib="jline" version="3.3.1" target.jar.name.base="jline3"/>
<!-- jansi -->
<get-maven-library prefix="org/fusesource/jansi" lib="jansi" version="1.11" target.jar.name.base="jansi"/>
<get-maven-library prefix="org/fusesource/jansi" lib="jansi" version="1.16" target.jar.name.base="jansi"/>
<!-- Guava 19 sources-->
<get-maven-library prefix="com/google/guava" lib="guava" version="19.0" bin="false"/>