Hook to define what showCode(...)
means.
Hook to define what showRaw(...)
means.
Hook to define what show(...)
means.
Renders the code of the passed tree, so that: 1) it can be later compiled by scalac retaining the same meaning, 2) it looks pretty. #1 is available for unattributed trees and attributed trees #2 is more or less okay indentation-wise, but at the moment there's a lot of desugaring left in place, and that's what we plan to improve in the future. printTypes, printIds, printPositions options have the same meaning as for TreePrinter printRootPkg option is available only for attributed trees.
By default trees are printed with show
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala-reflect/scala/reflect/api/Printers.html
EXPERIMENTAL
Utilities for nicely printing scala.reflect.api.Trees and scala.reflect.api.Types.
Printing Trees
The method
show
displays the "prettified" representation of reflection artifacts. This representation provides one with the desugared Java representation of Scala code. For example:The method
showRaw
displays internal structure of a given reflection object as a Scala abstract syntax tree (AST), the representation that the Scala typechecker operates on.Note, that while this representation appears to generate correct trees that one might think would be possible to use in a macro implementation, this is not usually the case. Symbols aren't fully represented (only their names are). Thus, this method is best-suited for use simply inspecting ASTs given some valid Scala code.
The method
showRaw
can also print scala.reflect.api.Types next to the artifacts being inspectedPrinting Types
The method
show
Like the method
showRaw
for scala.reflect.api.Trees,showRaw
for scala.reflect.api.Types provides a visualization of the Scala AST operated on by the Scala typechecker.printIds
and/orprintKinds
can additionally be supplied as arguments in a call toshowRaw
which additionally shows the unique identifiers of symbols.For more details about
Printer
s and other aspects of Scala reflection, see the Reflection Guide