settings.rs

 1use std::ops::Range;
 2use tree_sitter::{Query, QueryMatch};
 3
 4use crate::MigrationPatterns;
 5use crate::patterns::SETTINGS_ROOT_KEY_VALUE_PATTERN;
 6
 7pub const SETTINGS_PATTERNS: MigrationPatterns =
 8    &[(SETTINGS_ROOT_KEY_VALUE_PATTERN, rename_agent_font_size)];
 9
10/// Renames the setting `agent_font_size` to `agent_ui_font_size`
11fn rename_agent_font_size(
12    contents: &str,
13    mat: &QueryMatch,
14    query: &Query,
15) -> Option<(Range<usize>, String)> {
16    let setting_capture_ix = query.capture_index_for_name("name")?;
17
18    let setting_name_range = mat
19        .nodes_for_capture_index(setting_capture_ix)
20        .next()?
21        .byte_range();
22
23    let setting_name = contents.get(setting_name_range.clone())?;
24
25    if setting_name != "agent_font_size" {
26        return None;
27    }
28
29    Some((setting_name_range, "agent_ui_font_size".to_string()))
30}