aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/repl/AmmoniteReader.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/repl/AmmoniteReader.scala')
-rw-r--r--src/dotty/tools/dotc/repl/AmmoniteReader.scala82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/dotty/tools/dotc/repl/AmmoniteReader.scala b/src/dotty/tools/dotc/repl/AmmoniteReader.scala
deleted file mode 100644
index f3b68e4b0..000000000
--- a/src/dotty/tools/dotc/repl/AmmoniteReader.scala
+++ /dev/null
@@ -1,82 +0,0 @@
-package dotty.tools
-package dotc
-package repl
-
-import core.Contexts._
-import ammonite.terminal._
-import LazyList._
-import Ansi.Color
-import filters._
-import BasicFilters._
-import GUILikeFilters._
-import util.SourceFile
-import printing.SyntaxHighlighting
-
-class AmmoniteReader(val interpreter: Interpreter)(implicit ctx: Context) extends InteractiveReader {
- val interactive = true
-
- def incompleteInput(str: String): Boolean =
- interpreter.delayOutputDuring(interpreter.interpret(str)) match {
- case Interpreter.Incomplete => true
- case _ => false
- }
-
- val reader = new java.io.InputStreamReader(System.in)
- val writer = new java.io.OutputStreamWriter(System.out)
- val cutPasteFilter = ReadlineFilters.CutPasteFilter()
- var history = List.empty[String]
- val selectionFilter = GUILikeFilters.SelectionFilter(indent = 2)
- val multilineFilter: Filter = Filter("multilineFilter") {
- case TermState(lb ~: rest, b, c, _)
- if (lb == 10 || lb == 13) && incompleteInput(b.mkString) =>
- BasicFilters.injectNewLine(b, c, rest, indent = 2)
- }
-
- def readLine(prompt: String): String = {
- val historyFilter = new HistoryFilter(
- () => history.toVector,
- Console.BLUE,
- AnsiNav.resetForegroundColor
- )
-
- val allFilters = Filter.merge(
- UndoFilter(),
- historyFilter,
- selectionFilter,
- GUILikeFilters.altFilter,
- GUILikeFilters.fnFilter,
- ReadlineFilters.navFilter,
- cutPasteFilter,
- multilineFilter,
- BasicFilters.all
- )
-
- Terminal.readLine(
- Console.BLUE + prompt + Console.RESET,
- reader,
- writer,
- allFilters,
- displayTransform = (buffer, cursor) => {
- val coloredBuffer =
- if (ctx.useColors) SyntaxHighlighting(buffer)
- else buffer
-
- val ansiBuffer = Ansi.Str.parse(coloredBuffer.toVector)
- val (newBuffer, cursorOffset) = SelectionFilter.mangleBuffer(
- selectionFilter, ansiBuffer, cursor, Ansi.Reversed.On
- )
- val newNewBuffer = HistoryFilter.mangleBuffer(
- historyFilter, newBuffer, cursor,
- Ansi.Color.Green
- )
-
- (newNewBuffer, cursorOffset)
- }
- ) match {
- case Some(res) =>
- history = res :: history;
- res
- case None => ":q"
- }
- }
-}