Skip to content

Commit 4fa66f1

Browse files
committed
Sort struct enum variant fields
1 parent 6f8888c commit 4fa66f1

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

crates/ide_assists/src/handlers/sort_items.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ pub(crate) fn sort_items(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
2626
}
2727
} else if let Some(union_ast) = ctx.find_node_at_offset::<ast::Union>() {
2828
add_sort_fields_assist(acc, union_ast.record_field_list()?)
29+
} else if let Some(enum_struct_variant_ast) = ctx.find_node_at_offset::<ast::RecordFieldList>()
30+
{
31+
// should be above enum and below struct
32+
add_sort_fields_assist(acc, enum_struct_variant_ast)
2933
} else if let Some(enum_ast) = ctx.find_node_at_offset::<ast::Enum>() {
3034
add_sort_variants_assist(acc, enum_ast.variant_list()?)
3135
} else {
@@ -427,6 +431,29 @@ enum Bar {
427431
b = 14,
428432
c(u32, usize),
429433
d{ first: u32, second: usize},
434+
}
435+
"#,
436+
)
437+
}
438+
439+
#[test]
440+
fn sort_struct_enum_variant() {
441+
check_assist(
442+
sort_items,
443+
r#"
444+
enum Bar {
445+
d$0{ second: usize, first: u32 },
446+
b = 14,
447+
a,
448+
c(u32, usize),
449+
}
450+
"#,
451+
r#"
452+
enum Bar {
453+
d{ first: u32, second: usize },
454+
b = 14,
455+
a,
456+
c(u32, usize),
430457
}
431458
"#,
432459
)

0 commit comments

Comments
 (0)