diff options
author | Simon Ochsenreither <simon@ochsenreither.de> | 2013-06-27 02:34:16 +0200 |
---|---|---|
committer | Simon Ochsenreither <simon@ochsenreither.de> | 2013-06-27 13:43:16 +0200 |
commit | 51fe664b29edf21cda7e3cc4e05c78dd1a0a43b7 (patch) | |
tree | 5278e233f13d0c306e927720afe9cb9ce0fb7445 /src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala | |
parent | 040830d87f7f6ceb2815b9c69f0679ba6b30753d (diff) | |
download | scala-51fe664b29edf21cda7e3cc4e05c78dd1a0a43b7.tar.gz scala-51fe664b29edf21cda7e3cc4e05c78dd1a0a43b7.tar.bz2 scala-51fe664b29edf21cda7e3cc4e05c78dd1a0a43b7.zip |
Move some code from s.t.n.io to s.t.n.interactive
The only usages of scala.tools.nsc.io.{Lexer,Pickler,PrettyWriter,
Replayer} can be found in scala.tools.nsc.interactive.
Let's move those files closer to their dependencies.
Diffstat (limited to 'src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala')
-rw-r--r-- | src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala b/src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala new file mode 100644 index 0000000000..d7dadcc6a8 --- /dev/null +++ b/src/interactive/scala/tools/nsc/interactive/PrettyWriter.scala @@ -0,0 +1,41 @@ +package scala.tools.nsc.interactive + +import java.io.Writer + +class PrettyWriter(wr: Writer) extends Writer { + protected val indentStep = " " + private var indent = 0 + private def newLine() { + wr.write('\n') + wr.write(indentStep * indent) + } + def close() = wr.close() + def flush() = wr.flush() + def write(str: Array[Char], off: Int, len: Int): Unit = { + if (off < str.length && off < len) { + str(off) match { + case '{' | '[' | '(' => + indent += 1 + wr.write(str(off).toInt) + newLine() + wr.write(str, off + 1, len - 1) + case '}' | ']' | ')' => + wr.write(str, off, len) + indent -= 1 + case ',' => + wr.write(',') + newLine() + wr.write(str, off + 1, len - 1) + case ':' => + wr.write(':') + wr.write(' ') + wr.write(str, off + 1, len - 1) + case _ => + wr.write(str, off, len) + } + } else { + wr.write(str, off, len) + } + } + override def toString = wr.toString +} |