@@ -20,7 +20,7 @@ use stdx::format_to;
20
20
use syntax:: {
21
21
ast:: { self , edit:: IndentLevel } ,
22
22
AstNode ,
23
- SyntaxKind :: { self , IDENT , LIFETIME_IDENT } ,
23
+ SyntaxKind :: { EOF , IDENT , LIFETIME_IDENT } ,
24
24
SyntaxNode , T ,
25
25
} ;
26
26
@@ -109,7 +109,7 @@ fn reindent(indent: IndentLevel, pp: String) -> String {
109
109
110
110
fn pretty_print_macro_expansion ( expn : SyntaxNode ) -> String {
111
111
let mut res = String :: new ( ) ;
112
- let mut prev_kind = SyntaxKind :: EOF ;
112
+ let mut prev_kind = EOF ;
113
113
let mut indent_level = 0 ;
114
114
for token in iter:: successors ( expn. first_token ( ) , |t| t. next_token ( ) ) {
115
115
let curr_kind = token. kind ( ) ;
@@ -128,6 +128,11 @@ fn pretty_print_macro_expansion(expn: SyntaxNode) -> String {
128
128
( T ! [ >] , _) if curr_kind. is_keyword ( ) => " " ,
129
129
( T ! [ ->] , _) | ( _, T ! [ ->] ) => " " ,
130
130
( T ! [ &&] , _) | ( _, T ! [ &&] ) => " " ,
131
+ ( T ! [ , ] , _) => " " ,
132
+ ( T ! [ fn ] , T ! [ '(' ] ) => "" ,
133
+ ( T ! [ ']' ] , _) if curr_kind. is_keyword ( ) => " " ,
134
+ ( T ! [ ']' ] , T ! [ #] ) => "\n " ,
135
+ _ if prev_kind. is_keyword ( ) => " " ,
131
136
_ => "" ,
132
137
} ;
133
138
0 commit comments