diff options
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 23 |
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") { |
