@@ -237,27 +237,24 @@ impl SourceChangeBuilder {
237
237
/// Adds a tabstop snippet to place the cursor before `node`
238
238
pub fn add_tabstop_before ( & mut self , _cap : SnippetCap , node : impl AstNode ) {
239
239
assert ! ( node. syntax( ) . parent( ) . is_some( ) ) ;
240
-
241
- let snippet_builder = self . snippet_builder . get_or_insert ( SnippetBuilder { places : vec ! [ ] } ) ;
242
- snippet_builder. places . push ( PlaceSnippet :: Before ( node. syntax ( ) . clone ( ) ) ) ;
243
- self . source_change . is_snippet = true ;
240
+ self . add_snippet ( PlaceSnippet :: Before ( node. syntax ( ) . clone ( ) ) ) ;
244
241
}
245
242
246
243
/// Adds a tabstop snippet to place the cursor after `node`
247
244
pub fn add_tabstop_after ( & mut self , _cap : SnippetCap , node : impl AstNode ) {
248
245
assert ! ( node. syntax( ) . parent( ) . is_some( ) ) ;
249
-
250
- let snippet_builder = self . snippet_builder . get_or_insert ( SnippetBuilder { places : vec ! [ ] } ) ;
251
- snippet_builder. places . push ( PlaceSnippet :: After ( node. syntax ( ) . clone ( ) ) ) ;
252
- self . source_change . is_snippet = true ;
246
+ self . add_snippet ( PlaceSnippet :: After ( node. syntax ( ) . clone ( ) ) ) ;
253
247
}
254
248
255
249
/// Adds a snippet to move the cursor selected over `node`
256
250
pub fn add_placeholder_snippet ( & mut self , _cap : SnippetCap , node : impl AstNode ) {
257
251
assert ! ( node. syntax( ) . parent( ) . is_some( ) ) ;
252
+ self . add_snippet ( PlaceSnippet :: Over ( node. syntax ( ) . clone ( ) ) )
253
+ }
258
254
255
+ fn add_snippet ( & mut self , snippet : PlaceSnippet ) {
259
256
let snippet_builder = self . snippet_builder . get_or_insert ( SnippetBuilder { places : vec ! [ ] } ) ;
260
- snippet_builder. places . push ( PlaceSnippet :: Over ( node . syntax ( ) . clone ( ) ) ) ;
257
+ snippet_builder. places . push ( snippet ) ;
261
258
self . source_change . is_snippet = true ;
262
259
}
263
260
0 commit comments