@@ -92,15 +92,11 @@ pub(crate) fn sort_items(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
92
92
} else if let Some ( impl_ast) = ctx. find_node_at_offset :: < ast:: Impl > ( ) {
93
93
add_sort_methods_assist ( acc, impl_ast. assoc_item_list ( ) ?)
94
94
} else if let Some ( struct_ast) = ctx. find_node_at_offset :: < ast:: Struct > ( ) {
95
- match struct_ast. field_list ( ) {
96
- Some ( ast:: FieldList :: RecordFieldList ( it) ) => add_sort_fields_assist ( acc, it) ,
97
- _ => {
98
- cov_mark:: hit!( not_applicable_if_sorted_or_empty_or_single) ;
99
- None
100
- }
101
- }
95
+ add_sort_field_list_assist ( acc, struct_ast. field_list ( ) )
102
96
} else if let Some ( union_ast) = ctx. find_node_at_offset :: < ast:: Union > ( ) {
103
97
add_sort_fields_assist ( acc, union_ast. record_field_list ( ) ?)
98
+ } else if let Some ( variant_ast) = ctx. find_node_at_offset :: < ast:: Variant > ( ) {
99
+ add_sort_field_list_assist ( acc, variant_ast. field_list ( ) )
104
100
} else if let Some ( enum_struct_variant_ast) = ctx. find_node_at_offset :: < ast:: RecordFieldList > ( )
105
101
{
106
102
// should be above enum and below struct
@@ -140,6 +136,16 @@ impl AddRewrite for Assists {
140
136
}
141
137
}
142
138
139
+ fn add_sort_field_list_assist ( acc : & mut Assists , field_list : Option < ast:: FieldList > ) -> Option < ( ) > {
140
+ match field_list {
141
+ Some ( ast:: FieldList :: RecordFieldList ( it) ) => add_sort_fields_assist ( acc, it) ,
142
+ _ => {
143
+ cov_mark:: hit!( not_applicable_if_sorted_or_empty_or_single) ;
144
+ None
145
+ }
146
+ }
147
+ }
148
+
143
149
fn add_sort_methods_assist ( acc : & mut Assists , item_list : ast:: AssocItemList ) -> Option < ( ) > {
144
150
let methods = get_methods ( & item_list) ;
145
151
let sorted = sort_by_name ( & methods) ;
@@ -541,7 +547,7 @@ enum Bar {
541
547
}
542
548
543
549
#[ test]
544
- fn sort_struct_enum_variant ( ) {
550
+ fn sort_struct_enum_variant_fields ( ) {
545
551
check_assist (
546
552
sort_items,
547
553
r#"
@@ -558,6 +564,23 @@ enum Bar {
558
564
b = 14,
559
565
a,
560
566
c(u32, usize),
567
+ }
568
+ "# ,
569
+ )
570
+ }
571
+
572
+ #[ test]
573
+ fn sort_struct_enum_variant ( ) {
574
+ check_assist (
575
+ sort_items,
576
+ r#"
577
+ enum Bar {
578
+ $0d$0{ second: usize, first: u32 },
579
+ }
580
+ "# ,
581
+ r#"
582
+ enum Bar {
583
+ d{ first: u32, second: usize },
561
584
}
562
585
"# ,
563
586
)
0 commit comments