nixfmt
nixfmt copied to clipboard
Suggestion: commented out lines at the end of a `let` block should stay in the `let` block
Description
I often comment/uncomment swaths of code when developing. Since adopting nixfmt
, I've found that sometimes those lines of code move around when I comment them, which makes uncommenting them a chore: I have to uncomment them, and then laboriously move them back to where they came from. I'd prefer if nixfmt just didn't move them around.
I haven't been able to find a past discussion about this. I have not read the entire RFC, but https://github.com/nix-rfc-101/rfcs/blob/master/rfcs/0166-nix-formatting.md#comments does say:
- Anything after the first # of single-line comments must be preserved.
- This allows the common pattern of prefixing many lines with # to comment them out, without the formatter trying to change anything.
Which (to my eyes) looks like it's talking about this use case (commenting/uncommenting code).
Small example input
(Yes this code is silly. It does reflect a simplified version of things that happen to me when I'm trashing about during development, though.)
let
# unused = 42;
in
42
Expected output
let
unused = 42;
in
unused
Actual output
let
in
# unused = 42;
42
Note how unused = 42;
got moved out of the let ... in
block. This is easier to see in gif form: