aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-11 00:50:30 +0200
committeruser <user@clank>2026-08-11 00:50:30 +0200
commitf72c7266fe88070149639d66ae09b43c2d990f6e (patch)
treeed230e9d89810ec34932ed95bb106ba02774540e /zellij-utils/src
parentsl0p: record the green test baseline in SPEED.md (diff)
downloadsl0ppij-f72c7266fe88070149639d66ae09b43c2d990f6e.tar.gz
sl0ppij-f72c7266fe88070149639d66ae09b43c2d990f6e.tar.xz
sl0ppij-f72c7266fe88070149639d66ae09b43c2d990f6e.zip
sl0p: add `arrangement` to build a tree for N panes
A `children` placeholder inserts every pane it receives as a flat sibling. That single hardcoded policy is why a layout can only express "N equal columns", "N equal rows" or "one stack" without hand-writing a variant per pane count -- the max_panes=5 / max_panes=8 / max_panes=12 ladders in a swap layout file exist purely to work around it. `pane arrangement="grid" { children; }` builds a tree for N panes instead. Two to start: grid (ceil(sqrt(n)) columns, rows filled left to right) and master-stack (one 60%-wide master, the rest beside it). Generates a TiledPaneLayout rather than geometry, so everything downstream works unchanged: split_space, the minimum-size feasibility check, LayoutApplier, swap-layout damage tracking, and the responsive collapse. It composes with that last one for free -- a grid is simply infeasible on a narrow terminal, so it is skipped and the collapse takes over. The arrangement builds ONE self-contained subtree rather than splicing a variable number of nodes in among the placeholder's siblings, so it stays well defined next to the pre-existing "children node with sibling nodes" TODO rather than leaning on it. Like default_fg/default_bg, the field has no protobuf representation, so it is defaulted at both plugin-API boundaries and does not survive a round trip. This is why it is a field rather than a LayoutConstraint variant: a new enum variant would have no representation when converting TO protobuf, and the committed prost assets cannot be regenerated here (no protoc). The 48 snapshot updates are the new field appearing in TiledPaneLayout debug dumps (324 lines, all `children_arrangement: None`). No snapshot content was removed. The `expression:` metadata churn in those files is pre-existing drift that regeneration swept up: the stored snapshots recorded the expression before normalize_layout_debug was introduced.
Diffstat (limited to 'zellij-utils/src')
-rw-r--r--zellij-utils/src/input/layout.rs108
-rw-r--r--zellij-utils/src/input/unit/layout_test.rs156
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_added_to_args_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_override_args_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_a_stack_with_an_expanded_pane.snap9
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_node.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_template.snap9
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_load_swap_layouts_from_a_different_file.snap40
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_pane_template.snap16
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_tab_template.snap16
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_added_to_close_on_exit_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_overrides_close_on_exit_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__combined_tab_and_pane_template_both_with_children.snap21
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_added_to_cwd_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_override_cwd_in_template.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__env_var_expansion.snap24
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_pane_templates.snap11
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_tab_templates.snap10
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_given_to_panes_without_cwd.snap10
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor.snap7
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor_overrides_global_cwd_in_layout_file.snap10
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_prepended_to_panes_with_cwd.snap10
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_with_tab_cwd_given_to_panes_without_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_close_on_exit.snap6
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_start_suspended.snap6
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_default_tab_template.snap24
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_branched_pane_templates.snap15
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_pane_templates.snap12
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_new_tab_template.snap15
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_excluded_from_sync.snap6
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_templates.snap26
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tab_and_pane_templates.snap11
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tabs_and_floating_panes.snap9
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_is_overriden_by_its_consumers_bare_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_overriden_by_its_consumers_command_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_remains_when_its_consumer_command_does_not_have_a_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_is_overriden_by_its_consumers_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_receives_its_consumers_bare_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_cwd_overriden_by_its_consumers_bare_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_with_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_without_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_edit.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_command_propagated_to_its_consumer_edit.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_given_to_panes_without_cwd.snap8
-rw-r--r--zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_prepended_to_panes_with_cwd.snap8
-rw-r--r--zellij-utils/src/ipc/protobuf_conversion.rs2
-rw-r--r--zellij-utils/src/kdl/kdl_layout_parser.rs42
-rw-r--r--zellij-utils/src/plugin_api/action.rs2
49 files changed, 701 insertions, 94 deletions
diff --git a/zellij-utils/src/input/layout.rs b/zellij-utils/src/input/layout.rs
index 3f1f72f1..4162811f 100644
--- a/zellij-utils/src/input/layout.rs
+++ b/zellij-utils/src/input/layout.rs
@@ -63,6 +63,95 @@ impl From<Direction> for SplitDirection {
}
}
+/// How a `children` placeholder arranges the panes that get inserted into it.
+///
+/// Without one, every inserted pane becomes a flat sibling, which is why a
+/// layout can only express "N equal columns" / "N equal rows" / "one stack"
+/// without hand-enumerating a variant per pane count. An arrangement builds a
+/// tree for N panes instead.
+///
+/// Deliberately produces a `TiledPaneLayout` rather than geometry directly:
+/// everything downstream (split_space, the minimum-size feasibility check,
+/// LayoutApplier, swap-layout damage tracking, the responsive collapse) already
+/// operates on trees, so generating one gets all of it for free.
+#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Clone, Copy)]
+pub enum PaneArrangement {
+ /// Roughly square: ceil(sqrt(n)) columns, rows filled left to right.
+ Grid,
+ /// One large "master" pane beside the remaining panes.
+ MasterStack,
+}
+
+/// Share of the space given to the master pane in `PaneArrangement::MasterStack`.
+const MASTER_STACK_MASTER_PERCENT: usize = 60;
+
+impl PaneArrangement {
+ pub fn from_str(name: &str) -> Option<Self> {
+ match name.trim().to_lowercase().replace('_', "-").as_str() {
+ "grid" => Some(PaneArrangement::Grid),
+ "master-stack" => Some(PaneArrangement::MasterStack),
+ _ => None,
+ }
+ }
+ pub fn possible_values() -> &'static str {
+ "\"grid\", \"master-stack\""
+ }
+ /// Build a single container node holding `panes`, arranged.
+ ///
+ /// Returns one node rather than a list so that a `children` placeholder with
+ /// sibling nodes stays well defined: the arrangement is self-contained in
+ /// one subtree instead of splicing a variable number of nodes in among the
+ /// siblings.
+ pub fn build(&self, panes: Vec<TiledPaneLayout>) -> TiledPaneLayout {
+ match self {
+ PaneArrangement::Grid => Self::build_grid(panes),
+ PaneArrangement::MasterStack => Self::build_master_stack(panes),
+ }
+ }
+ fn build_grid(panes: Vec<TiledPaneLayout>) -> TiledPaneLayout {
+ let pane_count = panes.len();
+ if pane_count <= 1 {
+ return Self::row(panes, SplitDirection::Vertical);
+ }
+ // ceil(sqrt(n)) columns. Terminal cells are about twice as tall as they
+ // are wide, so a square *grid* is a wide *rectangle* on screen, which is
+ // the shape that reads well for text.
+ let columns = (pane_count as f64).sqrt().ceil() as usize;
+ let columns = columns.max(1);
+ let mut rows: Vec<TiledPaneLayout> = vec![];
+ let mut remaining = panes;
+ while !remaining.is_empty() {
+ let take = columns.min(remaining.len());
+ let rest = remaining.split_off(take);
+ rows.push(Self::row(remaining, SplitDirection::Vertical));
+ remaining = rest;
+ }
+ Self::row(rows, SplitDirection::Horizontal)
+ }
+ fn build_master_stack(mut panes: Vec<TiledPaneLayout>) -> TiledPaneLayout {
+ if panes.len() <= 1 {
+ return Self::row(panes, SplitDirection::Vertical);
+ }
+ let rest = panes.split_off(1);
+ let mut master = panes.remove(0);
+ master.split_size = Some(SplitSize::Percent(MASTER_STACK_MASTER_PERCENT));
+ let stack = Self::row(rest, SplitDirection::Horizontal);
+ Self::row(vec![master, stack], SplitDirection::Vertical)
+ }
+ /// A container holding `children`, split along `direction`. A single child
+ /// is returned as-is so the tree does not grow pointless one-child levels.
+ fn row(mut children: Vec<TiledPaneLayout>, direction: SplitDirection) -> TiledPaneLayout {
+ if children.len() == 1 {
+ return children.remove(0);
+ }
+ TiledPaneLayout {
+ children_split_direction: direction,
+ children,
+ ..Default::default()
+ }
+ }
+}
+
#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
pub enum SplitSize {
#[serde(alias = "percent")]
@@ -861,6 +950,12 @@ pub struct TiledPaneLayout {
pub pane_initial_contents: Option<String>,
pub default_fg: Option<String>,
pub default_bg: Option<String>,
+ /// How panes inserted at this node's `children` placeholder are arranged.
+ /// `None` keeps the historical behaviour: flat siblings.
+ ///
+ /// Like `default_fg`/`default_bg`, this has no protobuf representation, so
+ /// it does not survive a round trip through the plugin API.
+ pub children_arrangement: Option<PaneArrangement>,
}
impl TiledPaneLayout {
@@ -893,9 +988,16 @@ impl TiledPaneLayout {
// returns true if successfully inserted and false otherwise
match self.external_children_index {
Some(external_children_index) => {
- children_nodes.reverse();
- for child_node in children_nodes.drain(..) {
- self.children.insert(external_children_index, child_node);
+ if let Some(arrangement) = self.children_arrangement {
+ // one self-contained subtree, so a `children` placeholder
+ // that has sibling nodes stays well defined
+ let arranged = arrangement.build(children_nodes.drain(..).collect());
+ self.children.insert(external_children_index, arranged);
+ } else {
+ children_nodes.reverse();
+ for child_node in children_nodes.drain(..) {
+ self.children.insert(external_children_index, child_node);
+ }
}
self.external_children_index = None;
Ok(true)
diff --git a/zellij-utils/src/input/unit/layout_test.rs b/zellij-utils/src/input/unit/layout_test.rs
index 52b71613..45537bd8 100644
--- a/zellij-utils/src/input/unit/layout_test.rs
+++ b/zellij-utils/src/input/unit/layout_test.rs
@@ -2535,3 +2535,159 @@ fn tiled_pane_still_rejects_zero_percent() {
let result = SplitSize::from_str("1%");
assert!(result.is_ok());
}
+
+// --- sl0p: `arrangement` on a `children` placeholder ---------------------
+//
+// These assert the resulting GEOMETRY rather than the tree shape: the tree is
+// an implementation detail, "did I get a grid" is the actual contract.
+
+/// Panes as (x, y, cols, rows), sorted, for a layout applied to `space`.
+#[cfg(test)]
+fn arranged_geoms(kdl: &str, pane_count: usize, cols: usize, rows: usize) -> Vec<(usize, usize, usize, usize)> {
+ let layout = Layout::from_kdl(kdl, Some("file.kdl".into()), None, None).unwrap();
+ // a layout written without an explicit `tab` node lands in `template`
+ let tab_layout = layout.template.as_ref().unwrap().0.clone();
+ // percent-with-inner, exactly as a real display area is built
+ // (PaneGeom::from(&Size)); a fixed-size space rejects implicitly sized children
+ let space = PaneGeom::from(&crate::pane_size::Size { rows, cols });
+ let mut geoms: Vec<(usize, usize, usize, usize)> = tab_layout
+ .position_panes_in_space(&space, Some(pane_count), false, false)
+ .unwrap()
+ .iter()
+ .map(|(_, g)| (g.x, g.y, g.cols.as_usize(), g.rows.as_usize()))
+ .collect();
+ geoms.sort();
+ geoms
+}
+
+#[test]
+fn sl0p_arrangement_grid_lays_four_panes_out_two_by_two() {
+ let kdl = r#"
+ layout {
+ pane arrangement="grid" {
+ children
+ }
+ }
+ "#;
+ let geoms = arranged_geoms(kdl, 4, 80, 20);
+ assert_eq!(
+ geoms,
+ vec![
+ (0, 0, 40, 10),
+ (0, 10, 40, 10),
+ (40, 0, 40, 10),
+ (40, 10, 40, 10),
+ ],
+ "four panes should form a 2x2 grid"
+ );
+}
+
+#[test]
+fn sl0p_arrangement_grid_wraps_an_uneven_pane_count() {
+ // 5 panes -> ceil(sqrt(5)) = 3 columns, so rows of 3 and 2
+ let kdl = r#"
+ layout {
+ pane arrangement="grid" {
+ children
+ }
+ }
+ "#;
+ let geoms = arranged_geoms(kdl, 5, 90, 20);
+ let top: Vec<_> = geoms.iter().filter(|(_, y, _, _)| *y == 0).collect();
+ let bottom: Vec<_> = geoms.iter().filter(|(_, y, _, _)| *y != 0).collect();
+ assert_eq!(top.len(), 3, "first row should hold 3 panes, got {:?}", geoms);
+ assert_eq!(
+ bottom.len(),
+ 2,
+ "second row should hold the remaining 2, got {:?}",
+ geoms
+ );
+ assert!(
+ bottom.iter().all(|(_, _, cols, _)| *cols > top[0].2),
+ "the shorter row should share the width between fewer panes, got {:?}",
+ geoms
+ );
+}
+
+#[test]
+fn sl0p_arrangement_master_stack_gives_the_master_the_larger_share() {
+ let kdl = r#"
+ layout {
+ pane arrangement="master-stack" {
+ children
+ }
+ }
+ "#;
+ let geoms = arranged_geoms(kdl, 3, 100, 20);
+ // master: full height, 60% of the width
+ assert!(
+ geoms.contains(&(0, 0, 60, 20)),
+ "expected a 60%-wide full-height master, got {:?}",
+ geoms
+ );
+ // the other two split the remaining 40% vertically
+ assert_eq!(
+ geoms
+ .iter()
+ .filter(|(x, _, cols, rows)| *x == 60 && *cols == 40 && *rows == 10)
+ .count(),
+ 2,
+ "expected two stacked panes beside the master, got {:?}",
+ geoms
+ );
+}
+
+#[test]
+fn sl0p_arrangement_absent_still_produces_flat_siblings() {
+ // the historical behaviour must be untouched when no arrangement is given
+ let kdl = r#"
+ layout {
+ pane split_direction="vertical" {
+ children
+ }
+ }
+ "#;
+ let geoms = arranged_geoms(kdl, 4, 80, 20);
+ assert!(
+ geoms.iter().all(|(_, y, _, rows)| *y == 0 && *rows == 20),
+ "without an arrangement the panes should stay in one flat row, got {:?}",
+ geoms
+ );
+}
+
+#[test]
+fn sl0p_arrangement_rejects_an_unknown_value() {
+ let kdl = r#"
+ layout {
+ pane arrangement="fibonacci" {
+ children
+ }
+ }
+ "#;
+ let err = Layout::from_kdl(kdl, Some("file.kdl".into()), None, None)
+ .expect_err("an unknown arrangement must be a config error, not silently ignored");
+ let msg = format!("{:?}", err);
+ assert!(
+ msg.contains("fibonacci") && msg.contains("grid"),
+ "the error should name the bad value and list the valid ones, got {}",
+ msg
+ );
+}
+
+#[test]
+fn sl0p_arrangement_without_a_children_node_is_rejected() {
+ // an arrangement only acts on panes inserted at a `children` placeholder,
+ // so without one it would quietly do nothing
+ let kdl = r#"
+ layout {
+ pane arrangement="grid" {
+ pane
+ pane
+ }
+ }
+ "#;
+ assert!(
+ Layout::from_kdl(kdl, Some("file.kdl".into()), None, None).is_err(),
+ "an arrangement without a children node must be rejected"
+ );
+}
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_added_to_args_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_added_to_args_in_template.snap
index bb4010cb..ab9c17fa 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_added_to_args_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_added_to_args_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1410
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1423
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -74,6 +75,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -89,6 +91,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_override_args_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_override_args_in_template.snap
index 9830de48..515888b1 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_override_args_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__args_override_args_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1375
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1388
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -44,6 +44,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -77,6 +78,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -92,6 +94,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_a_stack_with_an_expanded_pane.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_a_stack_with_an_expanded_pane.snap
index 688f2b80..f94af9ab 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_a_stack_with_an_expanded_pane.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_a_stack_with_an_expanded_pane.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1984
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1997
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -51,6 +52,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -69,6 +71,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -84,6 +87,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -99,6 +103,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_node.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_node.snap
index debfb03f..fbd5a489 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_node.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_node.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1952
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1965
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -51,6 +52,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -66,6 +68,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -81,6 +84,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_template.snap
index 35c767a6..d46e115f 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_define_stacked_children_for_pane_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1969
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1982
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -37,6 +37,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -55,6 +56,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -70,6 +72,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -85,6 +88,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -100,6 +104,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_load_swap_layouts_from_a_different_file.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_load_swap_layouts_from_a_different_file.snap
index a1fcdacc..2052515c 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_load_swap_layouts_from_a_different_file.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__can_load_swap_layouts_from_a_different_file.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1938
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1951
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -29,6 +29,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -44,6 +45,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -98,6 +100,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -124,6 +127,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -144,6 +148,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -159,6 +164,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -174,6 +180,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -215,6 +222,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -230,6 +238,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
MaxPanes(
8,
@@ -277,6 +286,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -305,6 +315,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -327,6 +338,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -345,6 +357,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -363,6 +376,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -381,6 +395,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -396,6 +411,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -411,6 +427,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -426,6 +443,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -467,6 +485,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -482,6 +501,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
MaxPanes(
12,
@@ -529,6 +549,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -557,6 +578,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -579,6 +601,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -597,6 +620,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -615,6 +639,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -633,6 +658,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -648,6 +674,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -670,6 +697,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -688,6 +716,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -706,6 +735,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -724,6 +754,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -739,6 +770,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -754,6 +786,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -769,6 +802,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -810,6 +844,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -825,6 +860,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
},
Some(
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_pane_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_pane_template.snap
index 56ba1f22..918c7533 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_pane_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_pane_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1033
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1046
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -39,6 +39,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -79,6 +81,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -94,6 +97,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -109,6 +113,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -127,6 +132,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -142,6 +148,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -168,6 +175,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -185,6 +193,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -203,6 +212,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -218,6 +228,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -233,6 +244,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_tab_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_tab_template.snap
index 3ae6e4a9..53fd2a14 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_tab_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__children_not_as_first_child_of_tab_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 985
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 998
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -34,6 +34,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -56,6 +57,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -74,6 +76,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -89,6 +92,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -104,6 +108,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -122,6 +127,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -137,6 +143,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -167,6 +174,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -184,6 +192,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -202,6 +211,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -217,6 +227,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -241,6 +252,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_added_to_close_on_exit_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_added_to_close_on_exit_in_template.snap
index 8ba07ad3..3519de15 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_added_to_close_on_exit_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_added_to_close_on_exit_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1427
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1440
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -71,6 +72,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -86,6 +88,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_overrides_close_on_exit_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_overrides_close_on_exit_in_template.snap
index 032bd843..b6332929 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_overrides_close_on_exit_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__close_on_exit_overrides_close_on_exit_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1393
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1406
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -71,6 +72,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -86,6 +88,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__combined_tab_and_pane_template_both_with_children.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__combined_tab_and_pane_template_both_with_children.snap
index 6e99b11c..fcb44b36 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__combined_tab_and_pane_template_both_with_children.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__combined_tab_and_pane_template_both_with_children.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1085
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1098
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -34,6 +34,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -58,6 +59,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -73,6 +75,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -91,6 +94,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -106,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -128,6 +133,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -146,6 +152,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -161,6 +168,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -176,6 +184,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -206,6 +215,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -230,6 +240,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -245,6 +256,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -263,6 +275,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -278,6 +291,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -296,6 +310,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -311,6 +326,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -335,6 +351,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_added_to_cwd_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_added_to_cwd_in_template.snap
index c2b277c1..e275d79f 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_added_to_cwd_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_added_to_cwd_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1462
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1475
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -73,6 +74,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -88,6 +90,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_override_cwd_in_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_override_cwd_in_template.snap
index 30376415..c7166e4d 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_override_cwd_in_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__cwd_override_cwd_in_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1445
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1458
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -43,6 +43,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -75,6 +76,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -90,6 +92,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__env_var_expansion.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__env_var_expansion.snap
index 30b301da..0c9cc6ed 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__env_var_expansion.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__env_var_expansion.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 2230
-expression: "format!(\"{layout:#?}\")"
+assertion_line: 2244
+expression: "normalize_layout_debug(format!(\"{layout:#?}\"))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -54,6 +55,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -76,6 +78,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -98,6 +101,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -130,6 +134,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -156,6 +161,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -182,6 +188,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -214,6 +221,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -240,6 +248,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -259,6 +268,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -291,6 +301,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -313,6 +324,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -335,6 +347,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -357,6 +370,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -389,6 +403,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -415,6 +430,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -441,6 +457,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -473,6 +490,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -499,6 +517,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -518,6 +537,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd.snap
index 4fa28d02..24847840 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1847
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1860
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -107,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_pane_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_pane_templates.snap
index 36b254da..bd34f602 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_pane_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_pane_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1868
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1881
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -36,6 +36,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -68,6 +69,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -94,6 +96,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -113,6 +116,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -132,6 +136,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -151,6 +156,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -175,6 +181,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_tab_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_tab_templates.snap
index 248d4682..4a9b97df 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_tab_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_and_tab_cwd_prepended_to_panes_with_and_without_cwd_in_tab_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1887
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1900
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -90,6 +92,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -109,6 +112,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -128,6 +132,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -152,6 +157,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_given_to_panes_without_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_given_to_panes_without_cwd.snap
index b6171a49..1f83ec0a 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_given_to_panes_without_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_given_to_panes_without_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1732
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1745
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -115,6 +118,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -147,6 +151,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -166,6 +171,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor.snap
index aaca18c6..9fbb6124 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1765
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1778
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -65,6 +66,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -84,6 +86,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor_overrides_global_cwd_in_layout_file.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor_overrides_global_cwd_in_layout_file.snap
index d5067f75..e0f04a8f 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor_overrides_global_cwd_in_layout_file.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_passed_from_layout_constructor_overrides_global_cwd_in_layout_file.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1786
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1799
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -115,6 +118,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -147,6 +151,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -166,6 +171,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_prepended_to_panes_with_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_prepended_to_panes_with_cwd.snap
index 1666c83b..480d8652 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_prepended_to_panes_with_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_prepended_to_panes_with_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1745
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1758
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -115,6 +118,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -147,6 +151,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -166,6 +171,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_with_tab_cwd_given_to_panes_without_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_with_tab_cwd_given_to_panes_without_cwd.snap
index e745a99b..ed225c3b 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_with_tab_cwd_given_to_panes_without_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__global_cwd_with_tab_cwd_given_to_panes_without_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1802
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1815
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -107,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_close_on_exit.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_close_on_exit.snap
index baf0eca4..5ee19a7d 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_close_on_exit.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_close_on_exit.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 511
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 524
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -56,6 +57,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_start_suspended.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_start_suspended.snap
index 481a74d8..cab76d88 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_start_suspended.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_command_panes_and_start_suspended.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 524
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 537
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -41,6 +41,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -56,6 +57,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_default_tab_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_default_tab_template.snap
index abddb5c9..b798af4e 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_default_tab_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_default_tab_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 819
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 832
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -30,6 +30,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Vertical,
@@ -52,6 +53,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -70,6 +72,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -85,6 +88,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -103,6 +107,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -118,6 +123,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -146,6 +152,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -168,6 +175,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -186,6 +194,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -201,6 +210,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -219,6 +229,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -234,6 +245,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -260,6 +272,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -278,6 +291,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -296,6 +310,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -311,6 +326,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -339,6 +355,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -357,6 +374,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -375,6 +393,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -390,6 +409,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_branched_pane_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_branched_pane_templates.snap
index 3d267afa..af501ef0 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_branched_pane_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_branched_pane_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 939
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 952
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -51,6 +52,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -73,6 +75,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -91,6 +94,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -106,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -128,6 +133,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -146,6 +152,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -164,6 +171,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -179,6 +187,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -194,6 +203,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -209,6 +219,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_pane_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_pane_templates.snap
index 6f24f2ee..d04877ef 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_pane_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_nested_pane_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 913
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 926
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -51,6 +52,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -73,6 +75,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -91,6 +94,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -106,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -124,6 +129,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -139,6 +145,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -154,6 +161,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_new_tab_template.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_new_tab_template.snap
index 3eb32a53..841d372a 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_new_tab_template.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_new_tab_template.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 844
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 857
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -30,6 +30,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -48,6 +49,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -63,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -91,6 +94,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -109,6 +113,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -124,6 +129,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -146,6 +152,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -178,6 +185,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -196,6 +204,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -211,6 +220,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -226,6 +236,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_excluded_from_sync.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_excluded_from_sync.snap
index a14262ee..2087e1be 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_excluded_from_sync.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_excluded_from_sync.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1096
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1109
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -31,6 +31,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -46,6 +47,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_templates.snap
index 43965e11..a3b308ed 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_pane_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 871
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 884
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [],
@@ -33,6 +33,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -55,6 +56,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -70,6 +72,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -88,6 +91,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -103,6 +107,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Vertical,
@@ -125,6 +130,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -147,6 +153,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -165,6 +172,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -180,6 +188,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -198,6 +207,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -213,6 +223,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Vertical,
@@ -235,6 +246,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Vertical,
@@ -257,6 +269,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -275,6 +288,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -290,6 +304,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -308,6 +323,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -323,6 +339,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Vertical,
@@ -345,6 +362,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -363,6 +381,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -381,6 +400,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -396,6 +416,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -411,6 +432,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tab_and_pane_templates.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tab_and_pane_templates.snap
index edc76b2e..5b197ba9 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tab_and_pane_templates.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tab_and_pane_templates.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 892
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 905
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -66,6 +67,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -81,6 +83,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -99,6 +102,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -114,6 +118,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -129,6 +134,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -153,6 +159,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tabs_and_floating_panes.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tabs_and_floating_panes.snap
index 9e7bf8af..1cf15cd0 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tabs_and_floating_panes.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__layout_with_tabs_and_floating_panes.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 305
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 318
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -28,6 +28,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -43,6 +44,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[
FloatingPaneLayout {
@@ -86,6 +88,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -101,6 +104,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[
FloatingPaneLayout {
@@ -158,6 +162,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_is_overriden_by_its_consumers_bare_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_is_overriden_by_its_consumers_bare_cwd.snap
index f6ffefa0..93552fa6 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_is_overriden_by_its_consumers_bare_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_is_overriden_by_its_consumers_bare_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1616
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1629
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_overriden_by_its_consumers_command_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_overriden_by_its_consumers_command_cwd.snap
index 7e3cb306..a3d109a1 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_overriden_by_its_consumers_command_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_overriden_by_its_consumers_command_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1562
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1575
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_remains_when_its_consumer_command_does_not_have_a_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_remains_when_its_consumer_command_does_not_have_a_cwd.snap
index 91e2f358..435ba244 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_remains_when_its_consumer_command_does_not_have_a_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_with_cwd_remains_when_its_consumer_command_does_not_have_a_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1579
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1592
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_is_overriden_by_its_consumers_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_is_overriden_by_its_consumers_cwd.snap
index 2d0ca360..201b14dd 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_is_overriden_by_its_consumers_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_is_overriden_by_its_consumers_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1597
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1610
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_receives_its_consumers_bare_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_receives_its_consumers_bare_cwd.snap
index fdbf56a3..a22a91ff 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_receives_its_consumers_bare_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_command_without_cwd_receives_its_consumers_bare_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1634
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1647
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_cwd_overriden_by_its_consumers_bare_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_cwd_overriden_by_its_consumers_bare_cwd.snap
index 5bb6ccec..c56bb263 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_cwd_overriden_by_its_consumers_bare_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_cwd_overriden_by_its_consumers_bare_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1652
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1665
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -51,6 +52,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -102,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_with_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_with_cwd.snap
index 4e8812fa..9deba7ea 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_with_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_with_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1686
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1699
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_without_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_without_cwd.snap
index 5ea6f110..c1701260 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_without_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_command_without_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1668
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1681
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -42,6 +42,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -61,6 +62,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -103,6 +105,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -122,6 +125,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_edit.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_edit.snap
index 1913b50f..e6aea2c6 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_edit.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_bare_propagated_to_its_consumer_edit.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1702
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1715
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -36,6 +36,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -55,6 +56,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -91,6 +93,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -110,6 +113,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_command_propagated_to_its_consumer_edit.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_command_propagated_to_its_consumer_edit.snap
index f6bbaeed..6388aecd 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_command_propagated_to_its_consumer_edit.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__pane_template_with_command_propagated_to_its_consumer_edit.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1718
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1731
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -36,6 +36,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -55,6 +56,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -91,6 +93,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -110,6 +113,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_given_to_panes_without_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_given_to_panes_without_cwd.snap
index 8a8e5420..290ce3b5 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_given_to_panes_without_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_given_to_panes_without_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1817
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1830
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -107,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_prepended_to_panes_with_cwd.snap b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_prepended_to_panes_with_cwd.snap
index 1b37491e..92dd75c2 100644
--- a/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_prepended_to_panes_with_cwd.snap
+++ b/zellij-utils/src/input/unit/snapshots/zellij_utils__input__layout__layout_test__tab_cwd_prepended_to_panes_with_cwd.snap
@@ -1,7 +1,7 @@
---
source: zellij-utils/src/input/./unit/layout_test.rs
-assertion_line: 1832
-expression: "format!(\"{:#?}\", layout)"
+assertion_line: 1845
+expression: "normalize_layout_debug(format!(\"{:#?}\", layout))"
---
Layout {
tabs: [
@@ -32,6 +32,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
TiledPaneLayout {
children_split_direction: Horizontal,
@@ -64,6 +65,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
],
split_size: None,
@@ -83,6 +85,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
@@ -107,6 +110,7 @@ Layout {
pane_initial_contents: None,
default_fg: None,
default_bg: None,
+ children_arrangement: None,
},
[],
),
diff --git a/zellij-utils/src/ipc/protobuf_conversion.rs b/zellij-utils/src/ipc/protobuf_conversion.rs
index c07b34d5..8bd43081 100644
--- a/zellij-utils/src/ipc/protobuf_conversion.rs
+++ b/zellij-utils/src/ipc/protobuf_conversion.rs
@@ -4512,6 +4512,8 @@ impl TryFrom<crate::client_server_contract::client_server_contract::TiledPaneLay
pane_initial_contents: layout.pane_initial_contents,
default_fg: layout.default_fg,
default_bg: layout.default_bg,
+ // no protobuf representation, same as default_fg/default_bg
+ children_arrangement: None,
})
}
}
diff --git a/zellij-utils/src/kdl/kdl_layout_parser.rs b/zellij-utils/src/kdl/kdl_layout_parser.rs
index 579a4b14..21fdc74c 100644
--- a/zellij-utils/src/kdl/kdl_layout_parser.rs
+++ b/zellij-utils/src/kdl/kdl_layout_parser.rs
@@ -2,9 +2,9 @@ use crate::input::{
command::RunCommand,
config::ConfigError,
layout::{
- FloatingPaneLayout, Layout, LayoutConstraint, PercentOrFixed, PluginUserConfiguration, Run,
- RunPluginOrAlias, SplitDirection, SplitSize, SwapFloatingLayout, SwapTiledLayout,
- TiledPaneLayout,
+ FloatingPaneLayout, Layout, LayoutConstraint, PaneArrangement, PercentOrFixed,
+ PluginUserConfiguration, Run, RunPluginOrAlias, SplitDirection, SplitSize,
+ SwapFloatingLayout, SwapTiledLayout, TiledPaneLayout,
},
};
@@ -108,6 +108,7 @@ impl<'a> KdlLayoutParser<'a> {
|| property_name == "contents_file"
|| property_name == "default_fg"
|| property_name == "default_bg"
+ || property_name == "arrangement"
}
fn is_a_valid_floating_pane_property(&self, property_name: &str) -> bool {
property_name == "borderless"
@@ -571,6 +572,40 @@ impl<'a> KdlLayoutParser<'a> {
.map(|s| s.to_string());
let default_bg = kdl_get_string_property_or_child_value_with_error!(kdl_node, "default_bg")
.map(|s| s.to_string());
+ let children_arrangement =
+ match kdl_get_string_property_or_child_value_with_error!(kdl_node, "arrangement") {
+ Some(raw) => match PaneArrangement::from_str(raw) {
+ Some(arrangement) => Some(arrangement),
+ None => {
+ return Err(ConfigError::new_layout_kdl_error(
+ format!(
+ "Unknown arrangement: \"{}\". Valid values are: {}",
+ raw,
+ PaneArrangement::possible_values()
+ ),
+ kdl_node.span().offset(),
+ kdl_node.span().len(),
+ ))
+ },
+ },
+ None => None,
+ };
+ if children_arrangement.is_some() && external_children_index.is_none() {
+ // an arrangement only ever acts on panes inserted at a `children`
+ // placeholder, so without one it would silently do nothing
+ return Err(ConfigError::new_layout_kdl_error(
+ format!("A pane with an \"arrangement\" must have a \"children\" node"),
+ kdl_node.span().offset(),
+ kdl_node.span().len(),
+ ));
+ }
+ if children_arrangement.is_some() && children_are_stacked {
+ return Err(ConfigError::new_layout_kdl_error(
+ format!("A stacked pane cannot also have an \"arrangement\""),
+ kdl_node.span().offset(),
+ kdl_node.span().len(),
+ ));
+ }
self.assert_no_mixed_children_and_properties(kdl_node)?;
let pane_initial_contents = contents_file.and_then(|contents_file| {
self.file_name
@@ -595,6 +630,7 @@ impl<'a> KdlLayoutParser<'a> {
pane_initial_contents,
default_fg,
default_bg,
+ children_arrangement,
..Default::default()
})
}
diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs
index c11b56f1..b660dd96 100644
--- a/zellij-utils/src/plugin_api/action.rs
+++ b/zellij-utils/src/plugin_api/action.rs
@@ -3111,6 +3111,8 @@ impl TryFrom<ProtobufTiledPaneLayout> for TiledPaneLayout {
pane_initial_contents: protobuf.pane_initial_contents,
default_fg: None,
default_bg: None,
+ // no protobuf representation, same as default_fg/default_bg above
+ children_arrangement: None,
})
}
}