Skip to content

Commit 778168d

Browse files
committed
Begin filling in item spaces and breaks
1 parent a2f95ea commit 778168d

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

src/convenience.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ use crate::algorithm::{self, BeginToken, BreakToken, Breaks, Printer, Token};
44
use std::borrow::Cow;
55

66
impl Printer {
7+
pub const INDENT: usize = 4;
8+
79
// "raw box"
810
pub fn rbox(&mut self, indent: usize, b: Breaks) {
911
self.scan_begin(BeginToken {
@@ -50,6 +52,10 @@ impl Printer {
5052
self.spaces(1)
5153
}
5254

55+
pub fn nbsp(&mut self) {
56+
self.word(" ");
57+
}
58+
5359
pub fn hardbreak(&mut self) {
5460
self.spaces(algorithm::SIZE_INFINITY as usize)
5561
}

src/data.rs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ impl Printer {
1010
self.ident(&variant.ident);
1111
self.fields(&variant.fields);
1212
if let Some((_eq_token, discriminant)) = &variant.discriminant {
13+
self.nbsp();
1314
self.word("=");
15+
self.nbsp();
1416
self.expr(&discriminant);
1517
}
1618
}
@@ -24,10 +26,17 @@ impl Printer {
2426
}
2527

2628
pub fn fields_named(&mut self, fields: &FieldsNamed) {
29+
self.nbsp();
2730
self.word("{");
28-
for field in &fields.named {
29-
self.field(field);
30-
self.word(",");
31+
if !fields.named.is_empty() {
32+
self.cbox(Printer::INDENT);
33+
self.hardbreak();
34+
for field in &fields.named {
35+
self.field(field);
36+
self.word(",");
37+
self.hardbreak();
38+
}
39+
self.end();
3140
}
3241
self.word("}");
3342
}
@@ -47,6 +56,7 @@ impl Printer {
4756
if let Some(ident) = &field.ident {
4857
self.ident(ident);
4958
self.word(":");
59+
self.nbsp();
5060
}
5161
self.ty(&field.ty);
5262
}
@@ -63,11 +73,13 @@ impl Printer {
6373
fn vis_public(&mut self, vis: &VisPublic) {
6474
let _ = vis;
6575
self.word("pub");
76+
self.nbsp();
6677
}
6778

6879
fn vis_crate(&mut self, vis: &VisCrate) {
6980
let _ = vis;
7081
self.word("crate");
82+
self.nbsp();
7183
}
7284

7385
fn vis_restricted(&mut self, vis: &VisRestricted) {
@@ -76,8 +88,10 @@ impl Printer {
7688
// automatically add the "in" token.
7789
if vis.in_token.is_some() {
7890
self.word("in");
91+
self.nbsp();
7992
}
8093
self.path(&vis.path);
8194
self.word(")");
95+
self.nbsp();
8296
}
8397
}

src/item.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ impl Printer {
187187
self.outer_attrs(&item.attrs);
188188
self.visibility(&item.vis);
189189
self.word("struct");
190+
self.nbsp();
190191
self.ident(&item.ident);
191192
self.generics(&item.generics);
192193
match &item.fields {

0 commit comments

Comments
 (0)