File tree Expand file tree Collapse file tree 3 files changed +47
-6
lines changed Expand file tree Collapse file tree 3 files changed +47
-6
lines changed Original file line number Diff line number Diff line change @@ -87,19 +87,23 @@ fn format_derive(
8787 // attribute is not parseable, none of the attributes will be
8888 // reformatted.
8989 let item_spans = attr. meta_item_list ( ) . map ( |meta_item_list| {
90- meta_item_list
91- . into_iter ( )
92- . map ( |meta_item_inner| meta_item_inner. span ( ) )
90+ meta_item_list. into_iter ( ) . map ( |meta_item_inner| {
91+ // Try to format the path, if it fails, fallback to the original
92+ let formatted = meta_item_inner
93+ . rewrite ( context, shape)
94+ . unwrap_or_else ( || context. snippet ( meta_item_inner. span ( ) ) . to_owned ( ) ) ;
95+ ( meta_item_inner. span ( ) , formatted)
96+ } )
9397 } ) ?;
9498
9599 let items = itemize_list (
96100 context. snippet_provider ,
97101 item_spans,
98102 ")" ,
99103 "," ,
100- |span| span. lo ( ) ,
101- |span| span. hi ( ) ,
102- |span | Ok ( context . snippet ( * span ) . to_owned ( ) ) ,
104+ |( span, _ ) | span. lo ( ) ,
105+ |( span, _ ) | span. hi ( ) ,
106+ |( _ , data ) | Ok ( data . to_string ( ) ) ,
103107 // We update derive attribute spans to start after the opening '('
104108 // This helps us focus parsing to just what's inside #[derive(...)]
105109 context. snippet_provider . span_after ( attr. span , "(" ) ,
Original file line number Diff line number Diff line change 1+ #[ derive( serde :: Serialize ) ]
2+ enum Something {
3+ Variant
4+ }
5+
6+ #[ derive(
7+ serde :: Serialize ,
8+ IReallyLoveToWriteLongDerives ,
9+ Debug ,
10+ Eq ,
11+ PartialEq , Ord , PartialOrd ,
12+ Hash , Clone , Copy , Default
13+ ) ]
14+ enum SomethingComplex {
15+ Variant5
16+ }
Original file line number Diff line number Diff line change 1+ #[ derive( serde:: Serialize ) ]
2+ enum Something {
3+ Variant ,
4+ }
5+
6+ #[ derive(
7+ serde:: Serialize ,
8+ IReallyLoveToWriteLongDerives ,
9+ Debug ,
10+ Eq ,
11+ PartialEq ,
12+ Ord ,
13+ PartialOrd ,
14+ Hash ,
15+ Clone ,
16+ Copy ,
17+ Default ,
18+ ) ]
19+ enum SomethingComplex {
20+ Variant5 ,
21+ }
You can’t perform that action at this time.
0 commit comments