Skip to main content

a9_prettyplease/
file.rs

1use crate::algorithm::Printer;
2use crate::heuristics;
3use syn::File;
4
5impl Printer {
6    pub fn file(&mut self, file: &File) {
7        self.cbox(0);
8        if let Some(shebang) = &file.shebang {
9            self.word(shebang.clone());
10            self.hardbreak();
11        }
12        self.inner_attrs(&file.attrs);
13        let mut prev: Option<&syn::Item> = None;
14        for item in &file.items {
15            if let Some(prev_item) = prev {
16                if heuristics::should_blank_between_items(prev_item, item) {
17                    self.hardbreak();
18                }
19            }
20            self.item(item);
21            prev = Some(item);
22        }
23        self.end();
24    }
25}