-
-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Labels
styleStyle discussionStyle discussion
Description
Description
In the same spirit as --width (default 100) allowing end-users outside of nixpkgs to tweak nixfmt's behavior, I'd like an option to disable the default formatting of non-singleton lists.
When the option is enabled, lists of any element count should be rendered on a single line unless that cannot be done for some other reason, such as comments within the list or the total line length being too long.
Better yet, a granular --max-list-items option could be added:
- default 1 for the current behavior
- 0 would always produce a multi-line list
- a negative value (-1) would always produce a single-line list (if possible, as described in the rest of this issue).
- Any other positive integer would use that value as the threshold for when to no longer attempt to format a list on a single line.
Small example input
{
single = ["a"];
short = ["a" "b" "c"];
long = ["a very very" "long list of" "a few elements" "with many many" "characters!"];
shortWithComment = [
# Elements
"a" "b" "c"
];
shortListWithAVeryVeryLongName_LoremipsumdolorsitametconsecteturadipiscingelitPhasellusaliquetutmauriseumollisSuspendisserhoncusdui = ["a" "b" "c"];
}Expected output
{
single = [ "a" ];
short = [ "a" "b" "c" ];
long = [
"a very very"
"long list of"
"a few elements"
"with many many"
"characters!"
];
shortWithComment = [
# Elements
"a"
"b"
"c"
];
shortListWithAVeryVeryLongName_LoremipsumdolorsitametconsecteturadipiscingelitPhasellusaliquetutmauriseumollisSuspendisserhoncusdui =
[ "a" "b" "c" ];
}Actual output
{
single = [ "a" ];
short = [
"a"
"b"
"c"
];
long = [
"a very very"
"long list of"
"a few elements"
"with many many"
"characters!"
];
shortWithComment = [
# Elements
"a"
"b"
"c"
];
shortListWithAVeryVeryLongName_LoremipsumdolorsitametconsecteturadipiscingelitPhasellusaliquetutmauriseumollisSuspendisserhoncusdui = [
"a"
"b"
"c"
];Note: Only the short list and the short list with a long name should be formatted differently when --single-line-lists is used.
Related
This is essentially the opposite of #136 which was asking to revert d2e8575
thom-cameron, YTG1234, B1kku, maxbrunet, qm3ster and 5 more
Metadata
Metadata
Assignees
Labels
styleStyle discussionStyle discussion
Type
Projects
Status
Approved