Skip to content

Commit 762eace

Browse files
committed
factor out adding a snippet
1 parent a284a0c commit 762eace

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

crates/ide-db/src/source_change.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -237,27 +237,24 @@ impl SourceChangeBuilder {
237237
/// Adds a tabstop snippet to place the cursor before `node`
238238
pub fn add_tabstop_before(&mut self, _cap: SnippetCap, node: impl AstNode) {
239239
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()));
244241
}
245242

246243
/// Adds a tabstop snippet to place the cursor after `node`
247244
pub fn add_tabstop_after(&mut self, _cap: SnippetCap, node: impl AstNode) {
248245
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()));
253247
}
254248

255249
/// Adds a snippet to move the cursor selected over `node`
256250
pub fn add_placeholder_snippet(&mut self, _cap: SnippetCap, node: impl AstNode) {
257251
assert!(node.syntax().parent().is_some());
252+
self.add_snippet(PlaceSnippet::Over(node.syntax().clone()))
253+
}
258254

255+
fn add_snippet(&mut self, snippet: PlaceSnippet) {
259256
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);
261258
self.source_change.is_snippet = true;
262259
}
263260

0 commit comments

Comments
 (0)