(&mut self, c: SourceCursor<'a>)
| 51 | } |
| 52 | |
| 53 | fn write(&mut self, c: SourceCursor<'a>) { |
| 54 | let token = c.token(); |
| 55 | if token == INCREASE_INDENT_LEVEL_KINDSET { |
| 56 | self.indent_level += 1; |
| 57 | } else if token == DECREASE_INDENT_LEVEL_KINDSET && self.indent_level > 0 { |
| 58 | self.indent_level -= 1; |
| 59 | } |
| 60 | if let Some(last) = self.last_token { |
| 61 | if Self::newline_after(last, token) { |
| 62 | self.sink.append(SourceCursor::NEWLINE); |
| 63 | } |
| 64 | if Self::newline_after(last, token) |
| 65 | || last == Kind::Whitespace && last.whitespace_style() == Whitespace::Newline |
| 66 | { |
| 67 | let (c, count) = if let Some(len) = self.expand_tab { |
| 68 | (SourceCursor::SPACE, self.indent_level * len) |
| 69 | } else { |
| 70 | (SourceCursor::TAB, self.indent_level) |
| 71 | }; |
| 72 | for _ in 0..count { |
| 73 | self.sink.append(c); |
| 74 | } |
| 75 | } else if Self::space_before(last, token) || Self::space_after(last, token) { |
| 76 | self.sink.append(SourceCursor::SPACE); |
| 77 | } |
| 78 | } |
| 79 | self.last_token = Some(token); |
| 80 | // Normalize quotes |
| 81 | if c.token() == Kind::String { |
| 82 | self.sink.append(c.with_quotes(self.quotes)) |
| 83 | } else { |
| 84 | self.sink.append(c); |
| 85 | } |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | impl<'a, T: SourceCursorSink<'a>> CursorSink for CursorPrettyWriteSink<'a, T> { |
no test coverage detected