@@ -11,7 +11,7 @@ use test_utils::{
11
11
RangeOrOffset ,
12
12
} ;
13
13
14
- use crate :: { handlers:: Handler , Assist , AssistContext , Assists } ;
14
+ use crate :: { handlers:: Handler , Assist , AssistConfig , AssistContext , Assists } ;
15
15
16
16
pub ( crate ) fn with_single_file ( text : & str ) -> ( RootDatabase , FileId ) {
17
17
let ( mut db, file_id) = RootDatabase :: with_single_file ( text) ;
@@ -41,14 +41,14 @@ fn check_doc_test(assist_id: &str, before: &str, after: &str) {
41
41
let ( db, file_id) = crate :: tests:: with_single_file ( & before) ;
42
42
let frange = FileRange { file_id, range : selection. into ( ) } ;
43
43
44
- let mut assist = Assist :: resolved ( & db, frange)
44
+ let mut assist = Assist :: resolved ( & db, & AssistConfig :: default ( ) , frange)
45
45
. into_iter ( )
46
46
. find ( |assist| assist. assist . id . 0 == assist_id)
47
47
. unwrap_or_else ( || {
48
48
panic ! (
49
49
"\n \n Assist is not applicable: {}\n Available assists: {}" ,
50
50
assist_id,
51
- Assist :: resolved( & db, frange)
51
+ Assist :: resolved( & db, & AssistConfig :: default ( ) , frange)
52
52
. into_iter( )
53
53
. map( |assist| assist. assist. id. 0 )
54
54
. collect:: <Vec <_>>( )
@@ -90,7 +90,8 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult) {
90
90
let frange = FileRange { file_id : file_with_caret_id, range : range_or_offset. into ( ) } ;
91
91
92
92
let sema = Semantics :: new ( & db) ;
93
- let ctx = AssistContext :: new ( sema, frange) ;
93
+ let config = AssistConfig :: default ( ) ;
94
+ let ctx = AssistContext :: new ( sema, & config, frange) ;
94
95
let mut acc = Assists :: new_resolved ( & ctx) ;
95
96
handler ( & mut acc, & ctx) ;
96
97
let mut res = acc. finish_resolved ( ) ;
@@ -103,19 +104,20 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult) {
103
104
let mut actual = db. file_text ( change. file_id ) . as_ref ( ) . to_owned ( ) ;
104
105
change. edit . apply ( & mut actual) ;
105
106
106
- match source_change. cursor_position {
107
- None => {
108
- if let RangeOrOffset :: Offset ( before_cursor_pos) = range_or_offset {
109
- let off = change
110
- . edit
111
- . apply_to_offset ( before_cursor_pos)
112
- . expect ( "cursor position is affected by the edit" ) ;
113
- actual = add_cursor ( & actual, off)
107
+ if !source_change. is_snippet {
108
+ match source_change. cursor_position {
109
+ None => {
110
+ if let RangeOrOffset :: Offset ( before_cursor_pos) = range_or_offset {
111
+ let off = change
112
+ . edit
113
+ . apply_to_offset ( before_cursor_pos)
114
+ . expect ( "cursor position is affected by the edit" ) ;
115
+ actual = add_cursor ( & actual, off)
116
+ }
114
117
}
115
- }
116
- Some ( off) => actual = add_cursor ( & actual, off. offset ) ,
117
- } ;
118
-
118
+ Some ( off) => actual = add_cursor ( & actual, off. offset ) ,
119
+ } ;
120
+ }
119
121
assert_eq_text ! ( after, & actual) ;
120
122
}
121
123
( Some ( assist) , ExpectedResult :: Target ( target) ) => {
@@ -136,7 +138,7 @@ fn assist_order_field_struct() {
136
138
let ( before_cursor_pos, before) = extract_offset ( before) ;
137
139
let ( db, file_id) = with_single_file ( & before) ;
138
140
let frange = FileRange { file_id, range : TextRange :: empty ( before_cursor_pos) } ;
139
- let assists = Assist :: resolved ( & db, frange) ;
141
+ let assists = Assist :: resolved ( & db, & AssistConfig :: default ( ) , frange) ;
140
142
let mut assists = assists. iter ( ) ;
141
143
142
144
assert_eq ! (
@@ -159,7 +161,7 @@ fn assist_order_if_expr() {
159
161
let ( range, before) = extract_range ( before) ;
160
162
let ( db, file_id) = with_single_file ( & before) ;
161
163
let frange = FileRange { file_id, range } ;
162
- let assists = Assist :: resolved ( & db, frange) ;
164
+ let assists = Assist :: resolved ( & db, & AssistConfig :: default ( ) , frange) ;
163
165
let mut assists = assists. iter ( ) ;
164
166
165
167
assert_eq ! ( assists. next( ) . expect( "expected assist" ) . assist. label, "Extract into variable" ) ;
0 commit comments