aboutsummaryrefslogtreecommitdiff
path: root/src/pane.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-12 19:07:07 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-12 19:10:09 +0300
commitf7a7da03fc27cc6fe4e6a44dabddcd303f939bb9 (patch)
tree69a00241e4500703bb723b64dd0060cc83730a0b /src/pane.rs
parent53429206b736aa0fcfb1c5bfc1c0b11dcca3a059 (diff)
fix: stabilize public pane and tab ids
refs #569
Diffstat (limited to 'src/pane.rs')
-rw-r--r--src/pane.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/pane.rs b/src/pane.rs
index 64fbf32b..601334d9 100644
--- a/src/pane.rs
+++ b/src/pane.rs
@@ -1323,6 +1323,7 @@ impl PaneRuntime {
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<AtomicBool>,
+ public_pane_id: Option<&str>,
) -> std::io::Result<Self> {
Self::spawn_with_initial_history(
pane_id,
@@ -1336,9 +1337,12 @@ impl PaneRuntime {
events,
render_notify,
render_dirty,
+ public_pane_id,
)
}
+ // Runtime construction needs to thread PTY size, environment, theme, and render hooks together.
+ #[allow(clippy::too_many_arguments)]
pub(crate) fn spawn_with_initial_history(
pane_id: PaneId,
rows: u16,
@@ -1351,12 +1355,13 @@ impl PaneRuntime {
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<AtomicBool>,
+ public_pane_id: Option<&str>,
) -> std::io::Result<Self> {
let mut cmd = pane_shell_command_builder(shell_config)?;
cmd.cwd(cwd);
cmd.env(crate::HERDR_ENV_VAR, crate::HERDR_ENV_VALUE);
apply_pane_terminal_env(&mut cmd);
- crate::integration::apply_pane_env(&mut cmd, pane_id);
+ crate::integration::apply_pane_env(&mut cmd, pane_id, public_pane_id);
Self::spawn_command_builder(
pane_id,
rows,
@@ -1375,6 +1380,8 @@ impl PaneRuntime {
)
}
+ // Runtime construction needs to thread PTY size, environment, theme, and render hooks together.
+ #[allow(clippy::too_many_arguments)]
pub fn spawn_shell_command(
pane_id: PaneId,
rows: u16,
@@ -1387,6 +1394,7 @@ impl PaneRuntime {
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<AtomicBool>,
+ public_pane_id: Option<&str>,
) -> std::io::Result<Self> {
let mut cmd = CommandBuilder::new("/bin/sh");
cmd.arg("-c");
@@ -1394,7 +1402,7 @@ impl PaneRuntime {
cmd.cwd(cwd);
cmd.env(crate::HERDR_ENV_VAR, crate::HERDR_ENV_VALUE);
apply_pane_terminal_env(&mut cmd);
- crate::integration::apply_pane_env(&mut cmd, pane_id);
+ crate::integration::apply_pane_env(&mut cmd, pane_id, public_pane_id);
for (key, value) in extra_env {
cmd.env(key, value);
}
@@ -1424,6 +1432,7 @@ impl PaneRuntime {
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<AtomicBool>,
+ public_pane_id: Option<&str>,
) -> std::io::Result<Self> {
let Some((program, args)) = argv.split_first() else {
return Err(std::io::Error::new(
@@ -1438,7 +1447,7 @@ impl PaneRuntime {
cmd.cwd(cwd);
cmd.env(crate::HERDR_ENV_VAR, crate::HERDR_ENV_VALUE);
apply_pane_terminal_env(&mut cmd);
- crate::integration::apply_pane_env(&mut cmd, pane_id);
+ crate::integration::apply_pane_env(&mut cmd, pane_id, public_pane_id);
Self::spawn_command_builder(
pane_id,
rows,