-# Currently, most of the code in the compiler uses historical style.
-#
-# For new code, consider running rustfmt with this config (it should
-# be picked up automatically).
+# Run rustfmt with this config (it should be picked up automatically).
version = "Two"
use_small_heuristics = "Max"
+merge_derives = false
+
+# by default we ignore everything in the repository
+# tidy only checks files which are not ignored, each entry follows gitignore style
+ignore = [
+ # tests for now are not formatted, as they are sometimes pretty-printing constrained
+ # (and generally rustfmt can move around comments in UI-testing incompatible ways)
+ "src/test",
+
+ # do not format submodules
+ "src/doc/book",
+ "src/doc/edition-guide",
+ "src/doc/embedded-book",
+ "src/doc/nomicon",
+ "src/doc/reference",
+ "src/doc/rust-by-example",
+ "src/doc/rustc-guide",
+ "src/llvm-project",
+ "src/stdarch",
+ "src/tools/cargo",
+ "src/tools/clippy",
+ "src/tools/miri",
+ "src/tools/rls",
+ "src/tools/rust-installer",
+ "src/tools/rustfmt",
+
+ # We do not format this file as it is externally sourced and auto-generated.
+ "src/libstd/sys/cloudabi/abi/cloudabi.rs",
+]