Is there a way to guard certain lines from modification by rustfmt?
My use case is an array that holds the elements of a matrix that represents characteristics about a 2D state space, so retaining my custom formatting
let s = [
1, 2, 3,
4, 5, 6,
7, 8, 9,
...is much more intuitive when reviewing and sharing the code than the result of rustfmt:
let s = [1, 2, 3, 4, 5, 6, 7, 8, 9];
#[rustfmt::skip] to an item will keep rustfmt from touching it, though if you want to limit the skipping to just a few lines rather than something like an entire function, you'll need to satisfy the requirements for what attributes can be applied to.
A narrower-scoped but less self-explanatory tool is to add a line comment to each line:
let s = [
1, 2, 3, //
4, 5, 6, //
7, 8, 9, //
Each comment is a place where rustfmt won't remove the line break. This preserves your matrix formatting, but still allows rustfmt to manage indentation and spacing, whereas
#[rustfmt::skip] will cause it to not even change indentation.