Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T06:57:42.823Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

settings.rs

66 lines · 1.8 KB · rust
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, replace_setting_name),
9    (SETTINGS_ROOT_KEY_VALUE_PATTERN, replace_setting_value),
10];
11
12fn replace_setting_value(
13    contents: &str,
14    mat: &QueryMatch,
15    query: &Query,
16) -> Option<(Range<usize>, String)> {
17    let setting_capture_ix = query.capture_index_for_name("name")?;
18    let setting_name_range = mat
19        .nodes_for_capture_index(setting_capture_ix)
20        .next()?
21        .byte_range();
22    let setting_name = contents.get(setting_name_range)?;
23
24    if setting_name != "hide_mouse_while_typing" {
25        return None;
26    }
27
28    let value_capture_ix = query.capture_index_for_name("value")?;
29    let value_range = mat
30        .nodes_for_capture_index(value_capture_ix)
31        .next()?
32        .byte_range();
33    let value = contents.get(value_range.clone())?;
34
35    let new_value = if value.trim() == "true" {
36        "\"on_typing_and_movement\""
37    } else if value.trim() == "false" {
38        "\"never\""
39    } else {
40        return None;
41    };
42
43    Some((value_range, new_value.to_string()))
44}
45
46fn replace_setting_name(
47    contents: &str,
48    mat: &QueryMatch,
49    query: &Query,
50) -> Option<(Range<usize>, String)> {
51    let setting_capture_ix = query.capture_index_for_name("name")?;
52    let setting_name_range = mat
53        .nodes_for_capture_index(setting_capture_ix)
54        .next()?
55        .byte_range();
56    let setting_name = contents.get(setting_name_range.clone())?;
57
58    let new_setting_name = if setting_name == "hide_mouse_while_typing" {
59        "hide_mouse"
60    } else {
61        return None;
62    };
63
64    Some((setting_name_range, new_setting_name.to_string()))
65}
66
Served at tenant.openagents/omega Member data and write actions are omitted.