par-term-config 0.14.1

Configuration system for par-term terminal emulator
Documentation
//! `impl Default for Config`
//!
//! Mirrors every `#[serde(default = …)]` annotation on `Config` so that
//! `Config::default()` and a deserialized empty YAML file are always equivalent.

use crate::types::LogLevel;

use super::{
    AiInspectorConfig, AutomationConfig, BackgroundConfig, BadgeConfig, ClipboardConfig,
    CommandSeparatorConfig, Config, CopyModeConfig, CursorConfig, FontRenderingConfig,
    GlobalShaderConfig, ImageConfig, InputConfig, IntegrationConfig, MouseConfig,
    NotificationConfig, PaneConfig, PowerConfig, ProgressBarConfig, RenderingConfig,
    ScrollbackConfig, ScrollbarConfig, SearchConfig, SecurityConfig, SelectionConfig,
    SemanticHistoryConfig, SessionLogConfig, SessionRestoreConfig, ShaderOverridesConfig,
    ShaderWatchConfig, ShellConfig, SshConfig, StatusBarConfig, TabBarColorsConfig, TabConfig,
    ThemeColorsConfig, TmuxConfig, UnicodeConfig, WindowConfig, WindowPlacementConfig,
    WordSelectionConfig,
};

impl Default for Config {
    fn default() -> Self {
        Self {
            cols: crate::defaults::cols(),
            rows: crate::defaults::rows(),
            font_size: crate::defaults::font_size(),
            font_family: crate::defaults::font_family(),
            font_family_bold: None,
            font_family_italic: None,
            font_family_bold_italic: None,
            font_ranges: Vec::new(),
            line_spacing: crate::defaults::line_spacing(),
            char_spacing: crate::defaults::char_spacing(),
            enable_text_shaping: crate::defaults::text_shaping(),
            enable_ligatures: crate::defaults::bool_true(),
            enable_kerning: crate::defaults::bool_true(),
            font_rendering: FontRenderingConfig::default(),
            copy_mode: CopyModeConfig::default(),
            scrollback: ScrollbackConfig::default(),
            unicode: UnicodeConfig::default(),
            cursor: CursorConfig::default(),
            scrollbar: ScrollbarConfig::default(),
            window_title: crate::defaults::window_title(),
            allow_title_change: crate::defaults::bool_true(),
            theme_colors: ThemeColorsConfig::default(),
            input: InputConfig::default(),
            selection: SelectionConfig::default(),
            mouse: MouseConfig::default(),
            word_selection: WordSelectionConfig::default(),
            screenshot_format: crate::defaults::screenshot_format(),
            rendering: RenderingConfig::default(),
            window: WindowConfig::default(),
            placement: WindowPlacementConfig::default(),
            background: BackgroundConfig::default(),
            image: ImageConfig::default(),
            download_save_location: crate::types::DownloadSaveLocation::default(),
            last_download_directory: None,
            shader: GlobalShaderConfig::default(),
            shell: ShellConfig::default(),
            semantic_history: SemanticHistoryConfig::default(),
            command_separator: CommandSeparatorConfig::default(),
            clipboard: ClipboardConfig::default(),
            max_osc_data_length: crate::defaults::max_osc_data_length(),
            command_history_max_entries: crate::defaults::command_history_max_entries(),
            notifications: NotificationConfig::default(),
            ssh: SshConfig::default(),
            tabs: TabConfig::default(),
            tab_colors: TabBarColorsConfig::default(),
            panes: PaneConfig::default(),
            tmux: TmuxConfig::default(),
            power: PowerConfig::default(),
            shader_watch: ShaderWatchConfig::default(),
            shader_overrides: ShaderOverridesConfig::default(),
            keybindings: crate::defaults::keybindings(),
            custom_action_prefix_key: crate::defaults::custom_action_prefix_key(),
            integrations: IntegrationConfig::default(),
            updates: crate::config::config_struct::UpdateConfig::default(),
            session_restore: SessionRestoreConfig::default(),
            search: SearchConfig::default(),
            session_log: SessionLogConfig::default(),
            log_level: LogLevel::default(),
            badge: BadgeConfig::default(),
            status_bar: StatusBarConfig::default(),
            progress_bar: ProgressBarConfig::default(),
            automation: AutomationConfig::default(),
            snippets: Vec::new(),
            actions: Vec::new(),
            collapsed_settings_sections: Vec::new(),
            dynamic_profile_sources: Vec::new(),
            security: SecurityConfig::default(),
            ai_inspector: AiInspectorConfig::default(),
            insecure_trigger_names: Vec::new(),
            unaccepted_risk_trigger_names: Vec::new(),
        }
    }
}