MCPcopy Create free account
hub / github.com/csskit/csskit / write

Method write

crates/css_parse/src/cursor_pretty_write_sink.rs:53–86  ·  view source on GitHub ↗
(&mut self, c: SourceCursor<'a>)

Source from the content-addressed store, hash-verified

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
89impl<'a, T: SourceCursorSink<'a>> CursorSink for CursorPrettyWriteSink<'a, T> {

Callers 1

appendMethod · 0.45

Calls 4

whitespace_styleMethod · 0.80
tokenMethod · 0.45
appendMethod · 0.45
with_quotesMethod · 0.45

Tested by

no test coverage detected