summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/api/Printers.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-12-08 15:17:54 +0100
committerEugene Burmako <xeno.by@gmail.com>2012-12-25 00:51:34 +0100
commit0271b35f77379dea9194887b08910771a6c0faf8 (patch)
treef7ef46a4662f09cc45f0caeb4c3795d8b29bf3f0 /src/reflect/scala/reflect/api/Printers.scala
parentd2a7aa4ba1c048e52affb0eb2b9167a18dc29c83 (diff)
downloadscala-0271b35f77379dea9194887b08910771a6c0faf8.tar.gz
scala-0271b35f77379dea9194887b08910771a6c0faf8.tar.bz2
scala-0271b35f77379dea9194887b08910771a6c0faf8.zip
showRaw can now print positions
Diffstat (limited to 'src/reflect/scala/reflect/api/Printers.scala')
-rw-r--r--src/reflect/scala/reflect/api/Printers.scala24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/reflect/scala/reflect/api/Printers.scala b/src/reflect/scala/reflect/api/Printers.scala
index 76df76cdc8..651eaa3333 100644
--- a/src/reflect/scala/reflect/api/Printers.scala
+++ b/src/reflect/scala/reflect/api/Printers.scala
@@ -143,6 +143,7 @@ trait Printers { self: Universe =>
protected var printIds = false
protected var printKinds = false
protected var printMirrors = false
+ protected var printPositions = false
def withTypes: this.type = { printTypes = true; this }
def withoutTypes: this.type = { printTypes = false; this }
def withIds: this.type = { printIds = true; this }
@@ -151,6 +152,8 @@ trait Printers { self: Universe =>
def withoutKinds: this.type = { printKinds = false; this }
def withMirrors: this.type = { printMirrors = true; this }
def withoutMirrors: this.type = { printMirrors = false; this }
+ def withPositions: this.type = { printPositions = true; this }
+ def withoutPositions: this.type = { printPositions = false; this }
}
/** @group Printers */
@@ -163,7 +166,7 @@ trait Printers { self: Universe =>
}
/** @group Printers */
- protected def render(what: Any, mkPrinter: PrintWriter => TreePrinter, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String = {
+ protected def render(what: Any, mkPrinter: PrintWriter => TreePrinter, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String = {
val buffer = new StringWriter()
val writer = new PrintWriter(buffer)
val printer = mkPrinter(writer)
@@ -171,23 +174,24 @@ trait Printers { self: Universe =>
printIds.value.map(printIds => if (printIds) printer.withIds else printer.withoutIds)
printKinds.value.map(printKinds => if (printKinds) printer.withKinds else printer.withoutKinds)
printMirrors.value.map(printMirrors => if (printMirrors) printer.withMirrors else printer.withoutMirrors)
+ printPositions.value.map(printPositions => if (printPositions) printer.withPositions else printer.withoutPositions)
printer.print(what)
writer.flush()
buffer.toString
}
/** By default trees are printed with `show`
- * @group Printers
+ * @group Printers
*/
override protected def treeToString(tree: Tree) = show(tree)
/** Renders a representation of a reflection artifact
- * as desugared Java code.
+ * as desugared Scala code.
*
- * @group Printers
+ * @group Printers
*/
- def show(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String =
- render(any, newTreePrinter(_), printTypes, printIds, printKinds, printMirrors)
+ def show(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String =
+ render(any, newTreePrinter(_), printTypes, printIds, printKinds, printMirrors, printPositions)
/** Hook to define what `show(...)` means.
* @group Printers
@@ -195,12 +199,12 @@ trait Printers { self: Universe =>
protected def newTreePrinter(out: PrintWriter): TreePrinter
/** Renders internal structure of a reflection artifact as the
- * visualization of a Scala syntax tree.
+ * visualization of a Scala syntax tree.
*
- * @group Printers
+ * @group Printers
*/
- def showRaw(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None): String =
- render(any, newRawTreePrinter(_), printTypes, printIds, printKinds, printMirrors)
+ def showRaw(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String =
+ render(any, newRawTreePrinter(_), printTypes, printIds, printKinds, printMirrors, printPositions)
/** Hook to define what `showRaw(...)` means.
* @group Printers