diff options
author | michelou <michelou@epfl.ch> | 2007-02-09 15:25:31 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2007-02-09 15:25:31 +0000 |
commit | cc20f5fbb5321eec19109355eb843545f3b0d453 (patch) | |
tree | c453865cd6c9836a7f47e51ce1e7e72572938bc8 /src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala | |
parent | 04cbd87417cc0a0ffae59e434cb8e129d8fbb0eb (diff) | |
download | scala-cc20f5fbb5321eec19109355eb843545f3b0d453.tar.gz scala-cc20f5fbb5321eec19109355eb843545f3b0d453.tar.bz2 scala-cc20f5fbb5321eec19109355eb843545f3b0d453.zip |
minor changes in reporters/*.scala
Diffstat (limited to 'src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala | 95 |
1 files changed, 48 insertions, 47 deletions
diff --git a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala index 547ec9e214..504b91fee3 100644 --- a/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala +++ b/src/compiler/scala/tools/nsc/reporters/ConsoleReporter.scala @@ -1,57 +1,54 @@ -/* ____ ____ ____ ____ ______ *\ -** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** -** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** -** /_____/\____/\___/\____/____/ ** -\* */ - +/* NSC -- new Scala compiler + * Copyright 2002-2007 LAMP/EPFL + * @author Martin Odersky + */ // $Id$ package scala.tools.nsc.reporters +import java.io.{BufferedReader, InputStreamReader, IOException, PrintWriter} + import compat.StringBuilder import scala.tools.nsc.util.{FakePos, Position} -import java.io.BufferedReader -import java.io.InputStreamReader -import java.io.IOException -import java.io.PrintWriter - /** * This class implements a Reporter that displays messages on a text * console. */ -class ConsoleReporter(val settings: Settings, reader : BufferedReader, writer : PrintWriter) extends AbstractReporter { - //######################################################################## - // Public Fields +class ConsoleReporter(val settings: Settings, reader: BufferedReader, writer: PrintWriter) extends AbstractReporter { /** Whether a short file name should be displayed before errors */ - var shortname : Boolean = false + var shortname: Boolean = false - def label(severity : Severity): String = severity match { + private def label(severity: Severity): String = severity match { case ERROR => "error" case WARNING => "warning" case INFO => null } - def clabel(severity : Severity) = { + + private def clabel(severity : Severity) = { val label0 = label(severity) if (label0 eq null) "" else label0 + ": " } - - - //######################################################################## - // Public Constructors def this(settings: Settings) = this(settings, Console.in, new PrintWriter(Console.err, true)) - //######################################################################## - // Public Methods - Count - - - /** Returns the number of errors issued totally as a string */ - def getCountString(severity : Severity) : String = getCountString0(count(severity), label(severity)) - /** Returns a string meaning "n elements". */ - def getCountString0(n : Int, elements : String) : String = + /** Returns the number of errors issued totally as a string. + * + * @param severity ... + * @return ... + */ + private def getCountString(severity: Severity): String = + getCountString0(count(severity), label(severity)) + + /** Returns a string meaning "n elements". + * + * @param n ... + * @param elements ... + * @return ... + */ + private def getCountString0(n: Int, elements: String): String = n match { case 0 => "no " + elements + "s" case 1 => "one " + elements @@ -61,41 +58,45 @@ class ConsoleReporter(val settings: Settings, reader : BufferedReader, writer : case _ => "" + n + " " + elements + "s" } - - //######################################################################## - // Public Methods - Print - /** Prints the message. */ - def printMessage(msg : String) = writer.println(msg) + def printMessage(msg: String) = writer.println(msg) /** Prints the message with the given position indication. */ - def printMessage(posIn : Position, msg : String) : Unit = { + def printMessage(posIn: Position, msg: String): Unit = if (posIn ne null) { val pos = posIn.inUltimateSource val buf = new StringBuilder(msg) buf.insert(0, " ") if (pos.line != Position.NOLINE) - buf.insert(0, ":"+pos.line+":") + buf.insert(0, ":" + pos.line + ":") pos match { case FakePos(msg) => - buf.insert(0,msg) + buf.insert(0, msg) case _ => val file = pos.source.file buf.insert(0, if (shortname) file.name else file.path) } printMessage(buf.toString()) printSourceLine(pos) - } else printMessage(msg) - } + } else + printMessage(msg) - def print(pos : Position, msg : String, severity : Severity) = printMessage(pos, clabel(severity) + msg) + def print(pos: Position, msg: String, severity: Severity) = + printMessage(pos, clabel(severity) + msg) - def printSourceLine(pos : Position) = if ((pos ne null) && pos.offset != Position.NOPOS) { + /** + * @param pos ... + */ + def printSourceLine(pos: Position) = if ((pos ne null) && pos.offset != Position.NOPOS) { printMessage(pos.lineContent.stripLineEnd) printColumnMarker(pos) } - /** Prints the column marker of the given position. */ - def printColumnMarker(pos : Position) = if (pos ne null) { + + /** Prints the column marker of the given position. + * + * @param pos ... + */ + def printColumnMarker(pos: Position) = if (pos ne null) { val buffer = new StringBuilder(pos.column) var i = 1 while (i < pos.column) { @@ -112,13 +113,12 @@ class ConsoleReporter(val settings: Settings, reader : BufferedReader, writer : if ( errors > 0) printMessage(getCountString(ERROR ) + " found") } - //######################################################################## - // Public Methods - Display - def display(pos : Position, msg : String, severity : Severity) : Unit = { + def display(pos: Position, msg: String, severity: Severity): Unit = { incr(severity) print(pos, msg, severity) } - def displayPrompt : Unit = try { + + def displayPrompt: Unit = try { var continue = true while (continue) { writer.print("r)esume, a)bort: ") @@ -137,4 +137,5 @@ class ConsoleReporter(val settings: Settings, reader : BufferedReader, writer : throw new Error("input read error") } } + } |