Skip to content

Commit 2515045

Browse files
committed
perf(formatter): use CodeBuffer's built-in print_indent to print indentation (#15406)
I forgot this APi in #14752
1 parent 681607b commit 2515045

File tree

1 file changed

+6
-24
lines changed
  • crates/oxc_formatter/src/formatter/printer

1 file changed

+6
-24
lines changed

crates/oxc_formatter/src/formatter/printer/mod.rs

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -594,36 +594,18 @@ impl<'a> Printer<'a> {
594594
if !self.state.pending_indent.is_empty() {
595595
let indent = std::mem::take(&mut self.state.pending_indent);
596596

597-
match self.options.indent_style() {
598-
IndentStyle::Tab => {
599-
for _ in 0..indent.level() {
600-
// SAFETY: `'\t'` is an valid ASCII character
601-
unsafe {
602-
self.state.buffer.print_byte_unchecked(b'\t');
603-
}
604-
self.state.line_width += self.options.indent_width().value() as usize;
605-
}
606-
}
607-
IndentStyle::Space => {
608-
#[expect(clippy::cast_lossless)]
609-
let total = indent.level() * self.options.indent_width().value() as u16;
610-
for _ in 0..total {
611-
// SAFETY: `' '` is an valid ASCII character
612-
unsafe {
613-
self.state.buffer.print_byte_unchecked(b' ');
614-
}
615-
self.state.line_width += 1;
616-
}
617-
}
618-
}
597+
let level = indent.level() as usize;
598+
self.state.buffer.print_indent(level);
599+
self.state.line_width += level * self.options.indent_width().value() as usize;
619600

620-
for _ in 0..indent.align() {
601+
let align_count = indent.align() as usize;
602+
for _ in 0..align_count {
621603
// SAFETY: `' '` is an valid ASCII character
622604
unsafe {
623605
self.state.buffer.print_byte_unchecked(b' ');
624606
}
625-
self.state.line_width += 1;
626607
}
608+
self.state.line_width += align_count;
627609
}
628610

629611
// Print pending spaces

0 commit comments

Comments
 (0)