From 4838f0b52cdd0f8369b8842f6496efb949402250 Mon Sep 17 00:00:00 2001 From: Jae-Heon Ji <32578710+jaeheonji@users.noreply.github.com> Date: Tue, 9 Nov 2021 03:43:51 +0900 Subject: feat: add initial session name to layout template (#789) * feat: add session configuration to layout template WIP: prototyping for issue #611 * test(layout): add session name * feat(layout): add cond flow to check session name * feat(layout): update session * feat: add function to attach a session * fix(layout): update feedback * attach option only works when layout template exists. * feat(layout): add conditional for session-layout * update default attach value --- zellij-utils/src/input/layout.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'zellij-utils/src/input/layout.rs') diff --git a/zellij-utils/src/input/layout.rs b/zellij-utils/src/input/layout.rs index 2bbc8cb48..df976b8e1 100644 --- a/zellij-utils/src/input/layout.rs +++ b/zellij-utils/src/input/layout.rs @@ -143,6 +143,8 @@ pub struct Layout { #[serde(crate = "self::serde")] #[serde(default)] pub struct LayoutFromYaml { + #[serde(default)] + pub session: SessionFromYaml, #[serde(default)] pub template: LayoutTemplate, #[serde(default)] @@ -245,6 +247,20 @@ impl LayoutFromYaml { } } +// The struct that is used to deserialize the session from +// a yaml configuration file +#[derive(Debug, Default, Serialize, Deserialize, Clone, PartialEq)] +#[serde(crate = "self::serde")] +pub struct SessionFromYaml { + pub name: Option, + #[serde(default = "default_as_some_true")] + pub attach: Option, +} + +fn default_as_some_true() -> Option { + Some(true) +} + // The struct that carries the information template that is used to // construct the layout #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] @@ -591,6 +607,7 @@ impl Default for LayoutTemplate { impl Default for LayoutFromYaml { fn default() -> Self { Self { + session: SessionFromYaml::default(), template: LayoutTemplate::default(), borderless: false, tabs: vec![], -- cgit v1.2.3