Slightly more aggressive about inserting whitespace. Getting frustrated with comments.
This commit is contained in:
parent
649a7bf38a
commit
ae16639dfa
2 changed files with 25 additions and 9 deletions
|
@ -442,6 +442,16 @@ obj printer(io::writer out,
|
|||
}
|
||||
}
|
||||
|
||||
fn top() -> print_stack_elt {
|
||||
auto n = vec::len(print_stack);
|
||||
let print_stack_elt top =
|
||||
rec(offset=0, pbreak=broken(inconsistent));;
|
||||
if (n != 0u) {
|
||||
top = print_stack.(n - 1u);
|
||||
}
|
||||
ret top;
|
||||
}
|
||||
|
||||
fn print(token x, int L) {
|
||||
log #fmt("print %s %d (remaining line space=%d)",
|
||||
tok_str(x), L, space);
|
||||
|
@ -471,12 +481,7 @@ obj printer(io::writer out,
|
|||
|
||||
case (BREAK(?b)) {
|
||||
|
||||
auto n = vec::len(print_stack);
|
||||
let print_stack_elt top =
|
||||
rec(offset=0, pbreak=broken(inconsistent));;
|
||||
if (n != 0u) {
|
||||
top = print_stack.(n - 1u);
|
||||
}
|
||||
auto top = self.top();
|
||||
|
||||
alt (top.pbreak) {
|
||||
case (fits) {
|
||||
|
@ -552,6 +557,9 @@ fn word(printer p, str wrd) {
|
|||
fn huge_word(printer p, str wrd) {
|
||||
p.pretty_print(STRING(wrd, 0xffff));
|
||||
}
|
||||
fn zero_word(printer p, str wrd) {
|
||||
p.pretty_print(STRING(wrd, 0));
|
||||
}
|
||||
fn spaces(printer p, uint n) { break_offset(p, n, 0); }
|
||||
fn zerobreak(printer p) { spaces(p, 0u); }
|
||||
fn space(printer p) { spaces(p, 1u); }
|
||||
|
|
|
@ -18,6 +18,7 @@ import pp::cbox;
|
|||
import pp::ibox;
|
||||
import pp::word;
|
||||
import pp::huge_word;
|
||||
import pp::zero_word;
|
||||
import pp::space;
|
||||
import pp::zerobreak;
|
||||
import pp::hardbreak;
|
||||
|
@ -1191,14 +1192,21 @@ fn print_comment(&ps s, lexer::cmnt cmnt) {
|
|||
word(s.s, cmnt.lines.(0));
|
||||
zerobreak(s.s);
|
||||
}
|
||||
case (_) {
|
||||
case (lexer::isolated) {
|
||||
hardbreak(s.s);
|
||||
for (str line in cmnt.lines) {
|
||||
zero_word(s.s, line);
|
||||
hardbreak(s.s);
|
||||
}
|
||||
}
|
||||
case (lexer::trailing) {
|
||||
if (vec::len(cmnt.lines) == 1u) {
|
||||
word(s.s, cmnt.lines.(0));
|
||||
zero_word(s.s, cmnt.lines.(0));
|
||||
hardbreak(s.s);
|
||||
} else {
|
||||
ibox(s.s, 0u);
|
||||
for (str line in cmnt.lines) {
|
||||
word(s.s, line);
|
||||
zero_word(s.s, line);
|
||||
hardbreak(s.s);
|
||||
}
|
||||
end(s.s);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue