diff options
Diffstat (limited to 'src/workspace')
| -rw-r--r-- | src/workspace/tab.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/workspace/tab.rs b/src/workspace/tab.rs index 55fa4c96..5cc35b68 100644 --- a/src/workspace/tab.rs +++ b/src/workspace/tab.rs @@ -52,6 +52,8 @@ pub struct Tab { } impl Tab { + // Tab construction threads pane runtime geometry, host context, and render hooks. + #[allow(clippy::too_many_arguments)] pub fn new( number: usize, initial_cwd: PathBuf, @@ -59,6 +61,7 @@ impl Tab { cols: u16, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, shell_config: crate::pane::PaneShellConfig<'_>, launch_env: &PaneLaunchEnv, events: mpsc::Sender<AppEvent>, @@ -72,6 +75,7 @@ impl Tab { cols, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, shell_config, launch_env, events, @@ -81,6 +85,8 @@ impl Tab { ) } + // Command tab construction mirrors the shell tab runtime arguments. + #[allow(clippy::too_many_arguments)] pub fn new_argv_command( number: usize, initial_cwd: PathBuf, @@ -89,6 +95,7 @@ impl Tab { argv: &[String], scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, launch_env: &PaneLaunchEnv, events: mpsc::Sender<AppEvent>, render_notify: Arc<Notify>, @@ -101,6 +108,7 @@ impl Tab { cols, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, crate::pane::PaneShellConfig::new("", crate::config::ShellModeConfig::NonLogin), launch_env, events, @@ -118,6 +126,7 @@ impl Tab { cols: u16, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, shell_config: crate::pane::PaneShellConfig<'_>, launch_env: &PaneLaunchEnv, events: mpsc::Sender<AppEvent>, @@ -137,6 +146,7 @@ impl Tab { crate::pane::AgentDetection::Enabled, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, events.clone(), render_notify.clone(), render_dirty.clone(), @@ -149,6 +159,7 @@ impl Tab { initial_cwd.clone(), scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, shell_config, launch_env, events.clone(), @@ -202,6 +213,7 @@ impl Tab { cwd: Option<PathBuf>, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, shell_config: crate::pane::PaneShellConfig<'_>, launch_env: &PaneLaunchEnv, ) -> std::io::Result<NewPane> { @@ -213,6 +225,7 @@ impl Tab { cwd, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, shell_config, launch_env, None, @@ -228,6 +241,7 @@ impl Tab { cwd: Option<PathBuf>, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, shell_config: crate::pane::PaneShellConfig<'_>, launch_env: &PaneLaunchEnv, ) -> std::io::Result<NewPane> { @@ -239,6 +253,7 @@ impl Tab { cwd, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, shell_config, launch_env, None, @@ -255,6 +270,7 @@ impl Tab { launch_env: &PaneLaunchEnv, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, ) -> std::io::Result<NewPane> { self.split_focused_with_runtime( direction, @@ -264,6 +280,7 @@ impl Tab { cwd, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, crate::pane::PaneShellConfig::new("", crate::config::ShellModeConfig::NonLogin), launch_env, Some(SplitCommand::Shell { @@ -283,6 +300,7 @@ impl Tab { launch_env: &PaneLaunchEnv, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, ) -> std::io::Result<NewPane> { self.split_focused_with_runtime( direction, @@ -292,6 +310,7 @@ impl Tab { cwd, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, crate::pane::PaneShellConfig::new("", crate::config::ShellModeConfig::NonLogin), launch_env, Some(SplitCommand::Argv { argv, launch_env }), @@ -309,6 +328,7 @@ impl Tab { launch_env: &PaneLaunchEnv, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, ) -> std::io::Result<NewPane> { self.split_focused_with_runtime( direction, @@ -318,12 +338,15 @@ impl Tab { cwd, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, crate::pane::PaneShellConfig::new("", crate::config::ShellModeConfig::NonLogin), launch_env, Some(SplitCommand::Argv { argv, launch_env }), ) } + // Split construction threads geometry, host context, launch policy, and command state. + #[allow(clippy::too_many_arguments)] fn split_focused_with_runtime( &mut self, direction: Direction, @@ -333,6 +356,7 @@ impl Tab { cwd: Option<PathBuf>, scrollback_limit_bytes: usize, host_terminal_theme: crate::terminal_theme::TerminalTheme, + host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>, shell_config: crate::pane::PaneShellConfig<'_>, launch_env: &PaneLaunchEnv, command: Option<SplitCommand<'_>>, @@ -363,6 +387,7 @@ impl Tab { crate::pane::AgentDetection::Enabled, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, self.events.clone(), self.render_notify.clone(), self.render_dirty.clone(), @@ -377,6 +402,7 @@ impl Tab { crate::pane::AgentDetection::Enabled, scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, self.events.clone(), self.render_notify.clone(), self.render_dirty.clone(), @@ -388,6 +414,7 @@ impl Tab { actual_cwd.clone(), scrollback_limit_bytes, host_terminal_theme, + host_terminal_appearance, shell_config, launch_env, self.events.clone(), |
