aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/mod.rs')
-rw-r--r--src/app/mod.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs
index b87eec66..5cc40ecc 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -153,6 +153,21 @@ fn agent_panel_scope_from_config(
}
}
+/// Parse the configured agent name list into a deduplicated set of `Agent`
+/// values. Unknown agent names are silently dropped so a typo cannot disable
+/// other valid entries.
+fn parse_cjk_ime_agents(names: &[String]) -> Vec<crate::detect::Agent> {
+ let mut out = Vec::with_capacity(names.len());
+ for name in names {
+ if let Some(agent) = crate::detect::parse_agent_label(name) {
+ if !out.contains(&agent) {
+ out.push(agent);
+ }
+ }
+ }
+ out
+}
+
/// Resolve the palette from config: base theme + optional custom overrides.
fn resolve_palette(config: &crate::config::Config) -> state::Palette {
resolve_palette_with_legacy_accent(config, true)
@@ -412,6 +427,9 @@ impl App {
confirm_close: config.ui.confirm_close,
prompt_new_tab_name: config.ui.prompt_new_tab_name,
show_agent_labels_on_pane_borders: config.ui.show_agent_labels_on_pane_borders,
+ reveal_hidden_cursor_for_cjk_ime: config.experimental.reveal_hidden_cursor_for_cjk_ime,
+ cjk_ime_agents: parse_cjk_ime_agents(&config.experimental.cjk_ime_agents),
+ cjk_ime_cursor_shape: config.experimental.cjk_ime_cursor_shape.to_decscusr(),
kitty_graphics_enabled: config.experimental.kitty_graphics,
default_shell: config.terminal.default_shell.clone(),
pane_scrollback_limit_bytes: config.advanced.scrollback_limit_bytes,
@@ -887,6 +905,11 @@ impl App {
if was_kitty_graphics_enabled && !config.experimental.kitty_graphics {
let _ = crate::kitty_graphics::clear_all_host_graphics();
}
+ self.state.reveal_hidden_cursor_for_cjk_ime =
+ config.experimental.reveal_hidden_cursor_for_cjk_ime;
+ self.state.cjk_ime_agents = parse_cjk_ime_agents(&config.experimental.cjk_ime_agents);
+ self.state.cjk_ime_cursor_shape =
+ config.experimental.cjk_ime_cursor_shape.to_decscusr();
}
if !invalid_section("advanced") {