feat(depotfmt): Check & format Rust code with rustfmt

The rustfmt configuration of the depot is moved to `rustfmt.toml` (it
is recognised more reliably from this path than from the hidden
.rustfmt.toml).

Nested configuration is theoretically possible, but detection of
nested config files is flaky. Paths with nested config files need to
be disabled in the top-level check (I've excluded my user directory).

Change-Id: I385ce3ef529bda28fac03bfba86fc204c81b8a61
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5241
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
Vincent Ambo 2022-02-07 18:50:07 +03:00 committed by tazjin
parent 3d8ee62087
commit d254dbb848
3 changed files with 8 additions and 22 deletions

View file

@ -1,22 +0,0 @@
# This configuration file changes some defaults from the ones
# documented on https://rust-lang.github.io/rustfmt/
#
# All other settings are left at the defaults.
edition = "2018"
newline_style = "Unix"
use_try_shorthand = true
# Unstable settings that we want in the future, once they are
# available:
#
# combine_control_expr = false
# comment_width = 100
# condense_wildcard_suffixes = true
# format_code_in_doc_comments = true
# inline_attribute_width = 100
# match_block_trailing_comma = true
# merge_imports = true
# normalize_comments = true
# overflow_delimited_expr = true
# wrap_comments = true

1
rustfmt.toml Normal file
View file

@ -0,0 +1 @@
edition = "2021"

View file

@ -26,6 +26,13 @@ let
"third_party/nix/tests/*",
"third_party/nix/src/tests/*"
]
[formatter.rust]
command = "${pkgs.rustfmt}/bin/rustfmt"
includes = [ "*.rs" ]
excludes = [
"users/tazjin/*",
]
'';
# helper tool for formatting the depot interactively