Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/config/options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ impl Density {
match self {
Density::Compressed => ListTactic::Mixed,
Density::Tall => ListTactic::HorizontalVertical,
Density::Vertical if len == 1 => ListTactic::Horizontal,
Copy link
Copy Markdown
Member

@jieyouxu jieyouxu May 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Problem: AFAICT, fn_params_layout is a stable option and fn_params_layout = "Vertical" is a stable value. This means that to uphold rustfmt's strict formatting stability guarantees, I believe this change needs to be gated behind the next style edition.

Can you:

  • Gate this change behind the next style edition + keep the old format intact for previous style editions
  • Add a second copy of fn_params_layout/vertical.rs test (vertical_style_2027.rs or sth) that specifies // rustfmt-style_edition: 2027 + // rustfmt-fn_params_layout: Vertical which demonstrates the "fixed" formatting, but also demonstrating that the previous formatting remains unchanged?

Density::Vertical if len == 1 => ListTactic::HorizontalVertical,
Density::Vertical => ListTactic::Vertical,
}
}
Expand Down
22 changes: 22 additions & 0 deletions tests/source/configs/fn_params_layout/vertical.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
// Function arguments density

trait Lorem {
fn lorem(ipsum: Ipsum);

fn lorem(ipsum: Ipsum) -> Dolor;

fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);

fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
Expand All @@ -13,4 +17,22 @@ trait Lorem {
fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: onsectetur, adipiscing: Adipiscing, elit: Elit) {
// body
}

fn long_param_name(lorem_ipsum_dolor_sit_amet_consectetur_adipiscing_elit_sed_do_eiusmod: Tempor);

fn long_param_type(lorem: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLabore,
);

fn long_return_type(lorem: Lorem)
-> IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLabore;

fn lorem_ipsum_dolor_sit_amet_consectetur_adipiscing_elit_sed_do_eiusmod_tempor_incididunt
(lorem: Lorem);

fn lorem<T: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEt>(t: T);

fn lorem<T: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDolore>
(
t: T,
);
}
30 changes: 30 additions & 0 deletions tests/target/configs/fn_params_layout/vertical.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
// Function arguments density

trait Lorem {
fn lorem(ipsum: Ipsum);

fn lorem(ipsum: Ipsum) -> Dolor;

fn lorem(
ipsum: Ipsum,
dolor: Dolor,
Expand Down Expand Up @@ -39,4 +43,30 @@ trait Lorem {
) {
// body
}

fn long_param_name(
lorem_ipsum_dolor_sit_amet_consectetur_adipiscing_elit_sed_do_eiusmod: Tempor,
);

fn long_param_type(
lorem: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLabore,
);

fn long_return_type(
lorem: Lorem,
) -> IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLabore;

fn lorem_ipsum_dolor_sit_amet_consectetur_adipiscing_elit_sed_do_eiusmod_tempor_incididunt(
lorem: Lorem,
);

fn lorem<T: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEt>(
t: T,
);

fn lorem<
T: IpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDolore,
>(
t: T,
);
}
Loading