|
8bfcc819
|
2020-11-21T01:17:39
|
|
Tests: Better pretty print (#2600)
This is a major improvement for the pretty-printer.
The main change is that `TokenStreamTransformer.prettyprint` now takes a Prism token stream instead of a simplified token stream. This means that it has a lot more information to work with and it uses that information.
It mostly behaves like the old pretty-printer with 3 main differences:
1. Tokens that contain a nested token stream that only contains a single string are printed as one line.
Example: `["namespace", ["java"]]`
2. The pretty-printer can now glue tokens together so that they are printed in a single line.
Example: `["number", "100"], ["operator", ".."], ["number", "100"]`
3. Line breaks in the input code may now cause empty lines in the output. Previously, only blank strings containing more at least 2 line breaks produce empty lines. This helps readability as it groups tokens together.
|