settings.rs

 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}