1
1
use ide_db:: defs:: { Definition , NameRefClass } ;
2
+ use itertools:: Itertools ;
2
3
use syntax:: { ast, AstNode , SyntaxKind , T } ;
3
4
4
5
use crate :: {
@@ -94,8 +95,7 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext) -> Option<(
94
95
builder. insert_snippet ( cap, ident. text_range ( ) . end ( ) , snip)
95
96
}
96
97
None => {
97
- let fish_head =
98
- std:: iter:: repeat ( "_" ) . take ( number_of_arguments) . collect :: < Vec < _ > > ( ) . join ( ", " ) ;
98
+ let fish_head = std:: iter:: repeat ( "_" ) . take ( number_of_arguments) . format ( ", " ) ;
99
99
let snip = format ! ( "::<{}>" , fish_head) ;
100
100
builder. insert ( ident. text_range ( ) . end ( ) , snip) ;
101
101
}
@@ -105,12 +105,9 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext) -> Option<(
105
105
106
106
/// This will create a snippet string with tabstops marked
107
107
fn get_snippet_fish_head ( number_of_arguments : usize ) -> String {
108
- let mut fish_head = String :: new ( ) ;
109
- let mut i = 1 ;
110
- while i < number_of_arguments {
111
- fish_head. push_str ( & format ! ( "${{{}:_}}," , i) ) ;
112
- i = i + 1 ;
113
- }
108
+ let mut fish_head = ( 1 ..number_of_arguments)
109
+ . format_with ( "" , |i, f| f ( & format_args ! ( "${{{}:_}}, " , i) ) )
110
+ . to_string ( ) ;
114
111
115
112
// tabstop 0 is a special case and always the last one
116
113
fish_head. push_str ( "${0:_}" ) ;
@@ -155,7 +152,7 @@ fn main() {
155
152
r#"
156
153
fn make<T, A>() -> T {}
157
154
fn main() {
158
- make::<${1:_},${0:_}>();
155
+ make::<${1:_}, ${0:_}>();
159
156
}
160
157
"# ,
161
158
) ;
@@ -174,7 +171,7 @@ fn main() {
174
171
r#"
175
172
fn make<T, A, B, C, D, E, F>() -> T {}
176
173
fn main() {
177
- make::<${1:_},${2:_},${3:_},${4:_},${5:_},${6:_},${0:_}>();
174
+ make::<${1:_}, ${2:_}, ${3:_}, ${4:_}, ${5:_}, ${6:_}, ${0:_}>();
178
175
}
179
176
"# ,
180
177
) ;
@@ -373,7 +370,7 @@ fn main() {
373
370
r#"
374
371
fn make<'a, T, A>(t: T, a: A) {}
375
372
fn main() {
376
- make::<${1:_},${0:_}>(5, 2);
373
+ make::<${1:_}, ${0:_}>(5, 2);
377
374
}
378
375
"# ,
379
376
) ;
@@ -392,7 +389,7 @@ fn main() {
392
389
r#"
393
390
fn make<T, const N: usize>(t: T) {}
394
391
fn main() {
395
- make::<${1:_},${0:_}>(3);
392
+ make::<${1:_}, ${0:_}>(3);
396
393
}
397
394
"# ,
398
395
) ;
0 commit comments