1use std::ops::Range;
2use tree_sitter::{Query, QueryMatch};
3
4use crate::{
5 MigrationPatterns, patterns::SETTINGS_ASSISTANT_PATTERN,
6 patterns::SETTINGS_EDIT_PREDICTIONS_ASSISTANT_PATTERN,
7};
8
9pub const SETTINGS_PATTERNS: MigrationPatterns = &[
10 (SETTINGS_ASSISTANT_PATTERN, rename_assistant),
11 (
12 SETTINGS_EDIT_PREDICTIONS_ASSISTANT_PATTERN,
13 rename_edit_prediction_assistant,
14 ),
15];
16
17fn rename_assistant(
18 _contents: &str,
19 mat: &QueryMatch,
20 query: &Query,
21) -> Option<(Range<usize>, String)> {
22 let key_capture_ix = query.capture_index_for_name("key")?;
23 let key_range = mat
24 .nodes_for_capture_index(key_capture_ix)
25 .next()?
26 .byte_range();
27 Some((key_range, "agent".to_string()))
28}
29
30fn rename_edit_prediction_assistant(
31 _contents: &str,
32 mat: &QueryMatch,
33 query: &Query,
34) -> Option<(Range<usize>, String)> {
35 let key_capture_ix = query.capture_index_for_name("enabled_in_assistant")?;
36 let key_range = mat
37 .nodes_for_capture_index(key_capture_ix)
38 .next()?
39 .byte_range();
40 Some((key_range, "enabled_in_text_threads".to_string()))
41}