Format generated code through rustfmt
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index a230430..89eec81 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -20,6 +20,7 @@
 extern crate quote;
 #[macro_use]
 extern crate syn;
+extern crate rustfmt_nightly as rustfmt;
 
 use failure::{err_msg, Error};
 use proc_macro2::{Span, TokenStream};
@@ -29,7 +30,7 @@
 use std::collections::BTreeMap;
 use std::fmt::{self, Debug};
 use std::fs::File;
-use std::io::{Read, Write};
+use std::io::Read;
 use std::path::Path;
 
 const SYN_CRATE_ROOT: &str = "../src/lib.rs";
@@ -911,6 +912,15 @@
     }
 }
 
+fn write_file(path: &str, content: String) {
+    let mut file = File::create(path).unwrap();
+    let mut config = rustfmt::Config::default();
+    config.set().emit_mode(rustfmt::EmitMode::Stdout);
+    config.set().verbose(rustfmt::Verbosity::Quiet);
+    let mut session = rustfmt::Session::new(config, Some(&mut file));
+    session.format(rustfmt::Input::Text(content)).unwrap();
+}
+
 fn main() {
     let mut lookup = BTreeMap::new();
     load_file(SYN_CRATE_ROOT, &quote!(), &mut lookup).unwrap();
@@ -957,14 +967,10 @@
 }
 ";
 
-    let mut fold_file = File::create(FOLD_SRC).unwrap();
-    write!(
-        fold_file,
+    write_file(FOLD_SRC, format!(
         "\
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
 // Unreachable code is generated sometimes without the full feature.
 #![allow(unreachable_code)]
 #![cfg_attr(feature = \"cargo-clippy\", allow(needless_pass_by_value))]
@@ -1018,16 +1024,12 @@
         full_macro = full_macro,
         fold_trait = state.fold_trait,
         fold_impl = state.fold_impl
-    ).unwrap();
+    ));
 
-    let mut visit_file = File::create(VISIT_SRC).unwrap();
-    write!(
-        visit_file,
+    write_file(VISIT_SRC, format!(
         "\
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
 #![cfg_attr(feature = \"cargo-clippy\", allow(match_same_arms))]
 
 use *;
@@ -1055,16 +1057,12 @@
         full_macro = full_macro,
         visit_trait = state.visit_trait,
         visit_impl = state.visit_impl
-    ).unwrap();
+    ));
 
-    let mut visit_mut_file = File::create(VISIT_MUT_SRC).unwrap();
-    write!(
-        visit_mut_file,
+    write_file(VISIT_MUT_SRC, format!(
         "\
 // THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
 
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
 #![cfg_attr(feature = \"cargo-clippy\", allow(match_same_arms))]
 
 use *;
@@ -1093,5 +1091,5 @@
         full_macro = full_macro,
         visit_mut_trait = state.visit_mut_trait,
         visit_mut_impl = state.visit_mut_impl
-    ).unwrap();
+    ));
 }