Skip to main content

par_term_config/config/config_struct/
search_config.rs

1//! `SearchConfig` — search settings.
2
3use serde::{Deserialize, Serialize};
4
5/// Settings controlling terminal search behaviour and highlighting.
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct SearchConfig {
8    /// Highlight color for search matches [R, G, B, A] (0-255)
9    #[serde(default = "crate::defaults::search_highlight_color")]
10    pub search_highlight_color: [u8; 4],
11
12    /// Highlight color for the current/active search match [R, G, B, A] (0-255)
13    #[serde(default = "crate::defaults::search_current_highlight_color")]
14    pub search_current_highlight_color: [u8; 4],
15
16    /// Default case sensitivity for search
17    #[serde(default = "crate::defaults::bool_false")]
18    pub search_case_sensitive: bool,
19
20    /// Default regex mode for search
21    #[serde(default = "crate::defaults::bool_false")]
22    pub search_regex: bool,
23
24    /// Wrap around when navigating search matches
25    #[serde(default = "crate::defaults::bool_true")]
26    pub search_wrap_around: bool,
27}
28
29impl Default for SearchConfig {
30    fn default() -> Self {
31        Self {
32            search_highlight_color: crate::defaults::search_highlight_color(),
33            search_current_highlight_color: crate::defaults::search_current_highlight_color(),
34            search_case_sensitive: crate::defaults::bool_false(),
35            search_regex: crate::defaults::bool_false(),
36            search_wrap_around: crate::defaults::bool_true(),
37        }
38    }
39}