Add rustfmt_skip to generated files

This commit is contained in:
Tony Garnock-Jones 2023-07-21 17:57:15 +02:00
parent 08e62fd681
commit 32ee76f7d8
5 changed files with 20 additions and 1 deletions

View File

@ -5,5 +5,6 @@ regenerate:
cargo run -- \ cargo run -- \
--prefix crate::gen \ --prefix crate::gen \
--support-crate crate \ --support-crate crate \
--rustfmt-skip \
-o $(CURDIR)/src/gen \ -o $(CURDIR)/src/gen \
../../../schema/schema.bin ../../../schema/schema.bin

View File

@ -22,6 +22,9 @@ struct CommandLine {
#[structopt(long)] #[structopt(long)]
xref: Vec<String>, xref: Vec<String>,
#[structopt(long)]
rustfmt_skip: bool,
input_glob: Vec<String>, input_glob: Vec<String>,
} }
@ -43,6 +46,7 @@ fn main() -> Result<(), Error> {
if let Some(c) = args.support_crate { if let Some(c) = args.support_crate {
config.support_crate = c; config.support_crate = c;
} }
config.rustfmt_skip = args.rustfmt_skip;
config.load_schemas_and_bundles( config.load_schemas_and_bundles(
&expand_inputs(&args.input_glob)?, &expand_inputs(&args.input_glob)?,
&expand_inputs(&args.xref)?)?; &expand_inputs(&args.xref)?)?;

View File

@ -104,6 +104,7 @@ pub struct CompilerConfig {
pub support_crate: String, pub support_crate: String,
pub external_modules: Map<ModulePath, ExternalModule>, pub external_modules: Map<ModulePath, ExternalModule>,
pub plugins: Vec<Box<dyn Plugin>>, pub plugins: Vec<Box<dyn Plugin>>,
pub rustfmt_skip: bool,
} }
pub fn load_schema_or_bundle_with_purpose( pub fn load_schema_or_bundle_with_purpose(
@ -189,6 +190,7 @@ impl CompilerConfig {
Box::new(parsers::ParserPlugin), Box::new(parsers::ParserPlugin),
Box::new(unparsers::UnparserPlugin), Box::new(unparsers::UnparserPlugin),
], ],
rustfmt_skip: false,
} }
} }
@ -319,7 +321,11 @@ pub fn compile(config: &CompilerConfig) -> io::Result<()> {
lines.push(Formatter::to_string(vertical(false, seq![ lines.push(Formatter::to_string(vertical(false, seq![
"#![allow(unused_parens)]", "#![allow(unused_parens)]",
"#![allow(unused_imports)]", "#![allow(unused_imports)]"])));
if config.rustfmt_skip {
lines.push("#![cfg_attr(rustfmt, rustfmt_skip)]".to_owned());
}
lines.push(Formatter::to_string(vertical(false, seq![
"", "",
"use std::convert::TryFrom;", "use std::convert::TryFrom;",
format!("use {}::support as _support;", &config.support_crate), format!("use {}::support as _support;", &config.support_crate),
@ -352,6 +358,11 @@ pub fn compile(config: &CompilerConfig) -> io::Result<()> {
mod_rs.extend(vec!["mod.rs"]); mod_rs.extend(vec!["mod.rs"]);
let mut lines = Vec::new(); let mut lines = Vec::new();
if config.rustfmt_skip {
lines.push("#![cfg_attr(rustfmt, rustfmt_skip)]".to_owned());
lines.push("".to_owned());
}
for (modpath, (_, module_purpose)) in config.bundle.iter() { for (modpath, (_, module_purpose)) in config.bundle.iter() {
if *module_purpose != Purpose::Codegen { if *module_purpose != Purpose::Codegen {
continue; continue;

View File

@ -1,3 +1,5 @@
#![cfg_attr(rustfmt, rustfmt_skip)]
pub mod schema; pub mod schema;
use crate::support as _support; use crate::support as _support;

View File

@ -1,5 +1,6 @@
#![allow(unused_parens)] #![allow(unused_parens)]
#![allow(unused_imports)] #![allow(unused_imports)]
#![cfg_attr(rustfmt, rustfmt_skip)]
use std::convert::TryFrom; use std::convert::TryFrom;
use crate::support as _support; use crate::support as _support;