diff options
author | Aram Drevekenin <aram@poor.dev> | 2024-02-26 10:47:48 +0100 |
---|---|---|
committer | Aram Drevekenin <aram@poor.dev> | 2024-02-26 10:47:48 +0100 |
commit | af17598f3d121fe0373d7f766b17cd437ce0ab49 (patch) | |
tree | 9424c879b3ab083b3861f5b266cb6b4578dcaeba /zellij-utils/src | |
parent | 178b0c0e1af11a326d5631fddd1f0515be682224 (diff) |
style(fmt): rustfmt
Diffstat (limited to 'zellij-utils/src')
-rw-r--r-- | zellij-utils/src/input/actions.rs | 30 | ||||
-rw-r--r-- | zellij-utils/src/input/config.rs | 10 | ||||
-rw-r--r-- | zellij-utils/src/input/layout.rs | 112 | ||||
-rw-r--r-- | zellij-utils/src/input/plugins.rs | 20 | ||||
-rw-r--r-- | zellij-utils/src/kdl/kdl_layout_parser.rs | 12 | ||||
-rw-r--r-- | zellij-utils/src/kdl/mod.rs | 28 | ||||
-rw-r--r-- | zellij-utils/src/plugin_api/action.rs | 47 | ||||
-rw-r--r-- | zellij-utils/src/session_serialization.rs | 16 |
8 files changed, 174 insertions, 101 deletions
diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs index 0735699ac..9ad63e05d 100644 --- a/zellij-utils/src/input/actions.rs +++ b/zellij-utils/src/input/actions.rs @@ -2,8 +2,8 @@ use super::command::RunCommandAction; use super::layout::{ - FloatingPaneLayout, Layout, RunPlugin, RunPluginLocation, PluginAlias, SwapFloatingLayout, SwapTiledLayout, - TiledPaneLayout, RunPluginOrAlias + FloatingPaneLayout, Layout, PluginAlias, RunPlugin, RunPluginLocation, RunPluginOrAlias, + SwapFloatingLayout, SwapTiledLayout, TiledPaneLayout, }; use crate::cli::CliAction; use crate::data::{Direction, Resize}; @@ -360,7 +360,10 @@ impl Action { configuration: user_configuration, }) }, - Err(_) => RunPluginOrAlias::Alias(PluginAlias::new(&plugin, &configuration.map(|c| c.inner().clone()))), + Err(_) => RunPluginOrAlias::Alias(PluginAlias::new( + &plugin, + &configuration.map(|c| c.inner().clone()), + )), }; if floating { Ok(vec![Action::NewFloatingPluginPane( @@ -573,7 +576,12 @@ impl Action { CliAction::QueryTabNames => Ok(vec![Action::QueryTabNames]), CliAction::StartOrReloadPlugin { url, configuration } => { let current_dir = get_current_dir(); - let run_plugin_or_alias = RunPluginOrAlias::from_url(&url, &configuration.map(|c| c.inner().clone()), None, Some(current_dir))?; + let run_plugin_or_alias = RunPluginOrAlias::from_url( + &url, + &configuration.map(|c| c.inner().clone()), + None, + Some(current_dir), + )?; Ok(vec![Action::StartOrReloadPlugin(run_plugin_or_alias)]) }, CliAction::LaunchOrFocusPlugin { @@ -585,7 +593,12 @@ impl Action { skip_plugin_cache, } => { let current_dir = get_current_dir(); - let run_plugin_or_alias = RunPluginOrAlias::from_url(url.as_str(), &configuration.map(|c| c.inner().clone()), None, Some(current_dir))?; + let run_plugin_or_alias = RunPluginOrAlias::from_url( + url.as_str(), + &configuration.map(|c| c.inner().clone()), + None, + Some(current_dir), + )?; Ok(vec![Action::LaunchOrFocusPlugin( run_plugin_or_alias, floating, @@ -602,7 +615,12 @@ impl Action { skip_plugin_cache, } => { let current_dir = get_current_dir(); - let run_plugin_or_alias = RunPluginOrAlias::from_url(&url.as_str(), &configuration.map(|c| c.inner().clone()), None, Some(current_dir.clone()))?; + let run_plugin_or_alias = RunPluginOrAlias::from_url( + &url.as_str(), + &configuration.map(|c| c.inner().clone()), + None, + Some(current_dir.clone()), + )?; Ok(vec![Action::LaunchPlugin( run_plugin_or_alias, floating, diff --git a/zellij-utils/src/input/config.rs b/zellij-utils/src/input/config.rs index cb17ea537..cf6620a9c 100644 --- a/zellij-utils/src/input/config.rs +++ b/zellij-utils/src/input/config.rs @@ -9,7 +9,7 @@ use std::convert::TryFrom; use super::keybinds::Keybinds; use super::options::Options; -use super::plugins::{PluginsConfigError, PluginAliases}; +use super::plugins::{PluginAliases, PluginsConfigError}; use super::theme::{Themes, UiConfig}; use crate::cli::{CliArgs, Command}; use crate::envs::EnvironmentVariables; @@ -237,11 +237,11 @@ impl Config { mod config_test { use super::*; use crate::data::{InputMode, Palette, PaletteColor, PluginTag}; - use crate::input::layout::{RunPluginLocation, RunPlugin}; + use crate::input::layout::{RunPlugin, RunPluginLocation}; use crate::input::options::{Clipboard, OnForceClose}; use crate::input::plugins::{PluginConfig, PluginType}; use crate::input::theme::{FrameConfig, Theme, Themes, UiConfig}; - use std::collections::{HashMap, BTreeMap}; + use std::collections::{BTreeMap, HashMap}; use std::io::Write; use tempfile::tempdir; @@ -628,7 +628,9 @@ mod config_test { welcome_screen_configuration.insert("welcome_screen".to_owned(), "true".to_owned()); expected_plugin_configuration.insert( "welcome-screen".to_owned(), - RunPlugin::from_url("zellij:session-manager").unwrap().with_configuration(welcome_screen_configuration) + RunPlugin::from_url("zellij:session-manager") + .unwrap() + .with_configuration(welcome_screen_configuration), ); expected_plugin_configuration.insert( "filepicker".to_owned(), diff --git a/zellij-utils/src/input/layout.rs b/zellij-utils/src/input/layout.rs index d9594acd5..ad2fca896 100644 --- a/zellij-utils/src/input/layout.rs +++ b/zellij-utils/src/input/layout.rs @@ -23,7 +23,7 @@ use std::cmp::Ordering; use std::fmt::{Display, Formatter}; use std::str::FromStr; -use super::plugins::{PluginTag, PluginsConfigError, PluginAliases}; +use super::plugins::{PluginAliases, PluginTag, PluginsConfigError}; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::vec::Vec; @@ -104,16 +104,24 @@ impl RunPluginOrAlias { if run_plugin_alias.run_plugin.is_some() { log::warn!("Overriding plugin alias"); } - let merged_run_plugin = plugin_aliases.aliases + let merged_run_plugin = plugin_aliases + .aliases .get(run_plugin_alias.name.as_str()) - .map(|r| r.clone().merge_configuration(&run_plugin_alias.configuration.as_ref().map(|c| c.inner().clone()))); + .map(|r| { + r.clone().merge_configuration( + &run_plugin_alias + .configuration + .as_ref() + .map(|c| c.inner().clone()), + ) + }); run_plugin_alias.run_plugin = merged_run_plugin; } } pub fn get_run_plugin(&self) -> Option<RunPlugin> { match self { RunPluginOrAlias::RunPlugin(run_plugin) => Some(run_plugin.clone()), - RunPluginOrAlias::Alias(plugin_alias) => plugin_alias.run_plugin.clone() + RunPluginOrAlias::Alias(plugin_alias) => plugin_alias.run_plugin.clone(), } } pub fn get_configuration(&self) -> Option<PluginUserConfiguration> { @@ -123,49 +131,63 @@ impl RunPluginOrAlias { url: &str, configuration: &Option<BTreeMap<String, String>>, alias_dict: Option<&PluginAliases>, - cwd: Option<PathBuf> + cwd: Option<PathBuf>, ) -> Result<Self, String> { match RunPluginLocation::parse(&url, cwd) { - Ok(location) => { - Ok(RunPluginOrAlias::RunPlugin(RunPlugin { - _allow_exec_host_cmd: false, - location, - configuration: configuration.as_ref().map(|c| PluginUserConfiguration::new(c.clone())).unwrap_or_default(), - })) - }, - Err(PluginsConfigError::InvalidUrlScheme(_)) | Err(PluginsConfigError::InvalidUrl(..))=> { + Ok(location) => Ok(RunPluginOrAlias::RunPlugin(RunPlugin { + _allow_exec_host_cmd: false, + location, + configuration: configuration + .as_ref() + .map(|c| PluginUserConfiguration::new(c.clone())) + .unwrap_or_default(), + })), + Err(PluginsConfigError::InvalidUrlScheme(_)) + | Err(PluginsConfigError::InvalidUrl(..)) => { let mut plugin_alias = PluginAlias::new(&url, configuration); if let Some(alias_dict) = alias_dict { - plugin_alias.run_plugin = alias_dict.aliases.get(url).map(|r| r.clone().merge_configuration(configuration)); + plugin_alias.run_plugin = alias_dict + .aliases + .get(url) + .map(|r| r.clone().merge_configuration(configuration)); } Ok(RunPluginOrAlias::Alias(plugin_alias)) }, Err(e) => { return Err(format!("Failed to parse plugin location {url}: {}", e)); - } + }, } } pub fn is_equivalent_to_run(&self, run: &Option<Run>) -> bool { match (self, run) { - (RunPluginOrAlias::Alias(self_alias), Some(Run::Plugin(RunPluginOrAlias::Alias(run_alias)))) => { - self_alias.name == run_alias.name && - self_alias.configuration - .as_ref() - // we do the is_empty() checks because an empty configuration is the same as no - // configuration (i.e. None) - .and_then(|c| if c.inner().is_empty() { None } else { Some(c)} ) == - run_alias.configuration + ( + RunPluginOrAlias::Alias(self_alias), + Some(Run::Plugin(RunPluginOrAlias::Alias(run_alias))), + ) => { + self_alias.name == run_alias.name + && self_alias + .configuration .as_ref() + // we do the is_empty() checks because an empty configuration is the same as no + // configuration (i.e. None) .and_then(|c| if c.inner().is_empty() { None } else { Some(c) }) - } - (RunPluginOrAlias::Alias(self_alias), Some(Run::Plugin(RunPluginOrAlias::RunPlugin(other_run_plugin)))) => { - self_alias.run_plugin.as_ref() == Some(other_run_plugin) - } - (RunPluginOrAlias::RunPlugin(self_run_plugin), Some(Run::Plugin(RunPluginOrAlias::RunPlugin(other_run_plugin)))) => { - self_run_plugin == other_run_plugin - - } - _ => false + == run_alias.configuration.as_ref().and_then(|c| { + if c.inner().is_empty() { + None + } else { + Some(c) + } + }) + }, + ( + RunPluginOrAlias::Alias(self_alias), + Some(Run::Plugin(RunPluginOrAlias::RunPlugin(other_run_plugin))), + ) => self_alias.run_plugin.as_ref() == Some(other_run_plugin), + ( + RunPluginOrAlias::RunPlugin(self_run_plugin), + Some(Run::Plugin(RunPluginOrAlias::RunPlugin(other_run_plugin))), + ) => self_run_plugin == other_run_plugin, + _ => false, } } } @@ -322,14 +344,16 @@ impl Run { Run::Plugin(RunPluginOrAlias::RunPlugin(run_plugin)) => Some(run_plugin.clone()), Run::Plugin(RunPluginOrAlias::Alias(plugin_alias)) => { plugin_alias.run_plugin.as_ref().map(|r| r.clone()) - } - _ => None + }, + _ => None, } } pub fn populate_run_plugin_if_needed(&mut self, alias_dict: &PluginAliases) { match self { - Run::Plugin(run_plugin_alias) => run_plugin_alias.populate_run_plugin_if_needed(alias_dict), - _ => {} + Run::Plugin(run_plugin_alias) => { + run_plugin_alias.populate_run_plugin_if_needed(alias_dict) + }, + _ => {}, } } } @@ -374,7 +398,9 @@ impl PluginAlias { pub fn new(name: &str, configuration: &Option<BTreeMap<String, String>>) -> Self { PluginAlias { name: name.to_owned(), - configuration: configuration.as_ref().map(|c| PluginUserConfiguration::new(c.clone())), + configuration: configuration + .as_ref() + .map(|c| PluginUserConfiguration::new(c.clone())), ..Default::default() } } @@ -846,7 +872,7 @@ impl TiledPaneLayout { pub fn populate_plugin_aliases_in_layout(&mut self, plugin_aliases: &PluginAliases) { match self.run.as_mut() { Some(run) => run.populate_run_plugin_if_needed(plugin_aliases), - _ => {} + _ => {}, } for child in self.children.iter_mut() { child.populate_plugin_aliases_in_layout(plugin_aliases); @@ -1291,13 +1317,19 @@ impl Layout { for tab in self.tabs.iter_mut() { tab.1.populate_plugin_aliases_in_layout(plugin_aliases); for floating_pane_layout in tab.2.iter_mut() { - floating_pane_layout.run.as_mut().map(|f| f.populate_run_plugin_if_needed(&plugin_aliases)); + floating_pane_layout + .run + .as_mut() + .map(|f| f.populate_run_plugin_if_needed(&plugin_aliases)); } } if let Some(template) = self.template.as_mut() { template.0.populate_plugin_aliases_in_layout(plugin_aliases); for floating_pane_layout in template.1.iter_mut() { - floating_pane_layout.run.as_mut().map(|f| f.populate_run_plugin_if_needed(&plugin_aliases)); + floating_pane_layout + .run + .as_mut() + .map(|f| f.populate_run_plugin_if_needed(&plugin_aliases)); } } } diff --git a/zellij-utils/src/input/plugins.rs b/zellij-utils/src/input/plugins.rs index ce38c7ebf..cb3d68916 100644 --- a/zellij-utils/src/input/plugins.rs +++ b/zellij-utils/src/input/plugins.rs @@ -15,7 +15,7 @@ use crate::errors::prelude::*; #[derive(Clone, Debug, Default, Eq, PartialEq, Deserialize, Serialize)] pub struct PluginAliases { - pub aliases: BTreeMap<String, RunPlugin> + pub aliases: BTreeMap<String, RunPlugin>, } impl PluginAliases { @@ -23,9 +23,7 @@ impl PluginAliases { self.aliases.extend(other.aliases); } pub fn from_data(aliases: BTreeMap<String, RunPlugin>) -> Self { - PluginAliases { - aliases - } + PluginAliases { aliases } } } @@ -56,16 +54,18 @@ impl PluginConfig { }), RunPluginLocation::Zellij(tag) => { let tag = tag.to_string(); - if tag == "status-bar" || - tag == "tab-bar" || - tag == "compact-bar" || - tag == "strider" || - tag == "session-manager" { + if tag == "status-bar" + || tag == "tab-bar" + || tag == "compact-bar" + || tag == "strider" + || tag == "session-manager" + { Some(PluginConfig { path: PathBuf::from(&tag), run: PluginType::Pane(None), _allow_exec_host_cmd: run_plugin._allow_exec_host_cmd, - location: RunPluginLocation::parse(&format!("zellij:{}", tag), None).ok()?, + location: RunPluginLocation::parse(&format!("zellij:{}", tag), None) + .ok()?, userspace_configuration: run_plugin.configuration.clone(), }) } else { diff --git a/zellij-utils/src/kdl/kdl_layout_parser.rs b/zellij-utils/src/kdl/kdl_layout_parser.rs index a73b40636..2aa3ba572 100644 --- a/zellij-utils/src/kdl/kdl_layout_parser.rs +++ b/zellij-utils/src/kdl/kdl_layout_parser.rs @@ -3,8 +3,8 @@ use crate::input::{ config::ConfigError, layout::{ FloatingPaneLayout, Layout, LayoutConstraint, PercentOrFixed, PluginUserConfiguration, Run, - RunPluginOrAlias, SplitDirection, SplitSize, SwapFloatingLayout, - SwapTiledLayout, TiledPaneLayout, + RunPluginOrAlias, SplitDirection, SplitSize, SwapFloatingLayout, SwapTiledLayout, + TiledPaneLayout, }, }; @@ -314,7 +314,13 @@ impl<'a> KdlLayoutParser<'a> { ), )?; let configuration = KdlLayoutParser::parse_plugin_user_configuration(&plugin_block)?; - let run_plugin_or_alias = RunPluginOrAlias::from_url(&string_url, &Some(configuration.inner().clone()), None, self.cwd_prefix(None)?).map_err(|e| { + let run_plugin_or_alias = RunPluginOrAlias::from_url( + &string_url, + &Some(configuration.inner().clone()), + None, + self.cwd_prefix(None)?, + ) + .map_err(|e| { ConfigError::new_kdl_error( format!("Failed to parse plugin: {}", e), url_node.span().offset(), diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs index a0d1273a3..763e5b1cd 100644 --- a/zellij-utils/src/kdl/mod.rs +++ b/zellij-utils/src/kdl/mod.rs @@ -7,7 +7,7 @@ use crate::envs::EnvironmentVariables; use crate::home::{find_default_config_dir, get_layout_dir}; use crate::input::config::{Config, ConfigError, KdlError}; use crate::input::keybinds::Keybinds; -use crate::input::layout::{Layout, RunPluginOrAlias, RunPlugin}; +use crate::input::layout::{Layout, RunPlugin, RunPluginOrAlias}; use crate::input::options::{Clipboard, OnForceClose, Options}; use crate::input::permission::{GrantedPermission, PermissionCache}; use crate::input::plugins::PluginAliases; @@ -959,7 +959,13 @@ impl TryFrom<(&KdlNode, &Options)> for Action { .unwrap_or(false); let current_dir = std::env::current_dir().unwrap_or_else(|_| PathBuf::from(".")); let configuration = KdlLayoutParser::parse_plugin_user_configuration(&kdl_action)?; - let run_plugin_or_alias = RunPluginOrAlias::from_url(&plugin_path, &Some(configuration.inner().clone()), None, Some(current_dir)).map_err(|e| { + let run_plugin_or_alias = RunPluginOrAlias::from_url( + &plugin_path, + &Some(configuration.inner().clone()), + None, + Some(current_dir), + ) + .map_err(|e| { ConfigError::new_kdl_error( format!("Failed to parse plugin: {}", e), kdl_action.span().offset(), @@ -998,7 +1004,13 @@ impl TryFrom<(&KdlNode, &Options)> for Action { .unwrap_or(false); let current_dir = std::env::current_dir().unwrap_or_else(|_| PathBuf::from(".")); let configuration = KdlLayoutParser::parse_plugin_user_configuration(&kdl_action)?; - let run_plugin_or_alias = RunPluginOrAlias::from_url(&plugin_path, &Some(configuration.inner().clone()), None, Some(current_dir)).map_err(|e| { + let run_plugin_or_alias = RunPluginOrAlias::from_url( + &plugin_path, + &Some(configuration.inner().clone()), + None, + Some(current_dir), + ) + .map_err(|e| { ConfigError::new_kdl_error( format!("Failed to parse plugin: {}", e), kdl_action.span().offset(), @@ -1811,9 +1823,13 @@ impl PluginAliases { if let Some(kdl_plugin_aliases) = kdl_children_nodes!(kdl_plugin_aliases) { for alias_definition in kdl_plugin_aliases { let alias_name = kdl_name!(alias_definition); - if let Some(string_url) = kdl_get_string_property_or_child_value!(alias_definition, "location") { - let configuration = KdlLayoutParser::parse_plugin_user_configuration(&alias_definition)?; - let run_plugin = RunPlugin::from_url(string_url)?.with_configuration(configuration.inner().clone()); + if let Some(string_url) = + kdl_get_string_property_or_child_value!(alias_definition, "location") + { + let configuration = + KdlLayoutParser::parse_plugin_user_configuration(&alias_definition)?; + let run_plugin = RunPlugin::from_url(string_url)? + .with_configuration(configuration.inner().clone()); aliases.insert(alias_name.to_owned(), run_plugin); } } diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs index e0be33117..0e5f0f62e 100644 --- a/zellij-utils/src/plugin_api/action.rs +++ b/zellij-utils/src/plugin_api/action.rs @@ -17,7 +17,9 @@ use crate::errors::prelude::*; use crate::input::actions::Action; use crate::input::actions::{SearchDirection, SearchOption}; use crate::input::command::RunCommandAction; -use crate::input::layout::{PluginUserConfiguration, RunPlugin, RunPluginOrAlias, RunPluginLocation}; +use crate::input::layout::{ + PluginUserConfiguration, RunPlugin, RunPluginLocation, RunPluginOrAlias, +}; use crate::position::Position; use std::collections::BTreeMap; @@ -401,7 +403,8 @@ impl TryFrom<ProtobufAction> for Action { &Some(configuration.inner().clone()), None, None, - ).map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; + ) + .map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; let should_float = payload.should_float; let move_to_focused_tab = payload.move_to_focused_tab; let should_open_in_place = payload.should_open_in_place; @@ -428,7 +431,8 @@ impl TryFrom<ProtobufAction> for Action { &Some(configuration.inner().clone()), None, None, - ).map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; + ) + .map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; let should_float = payload.should_float; let _move_to_focused_tab = payload.move_to_focused_tab; // not actually used in // this action @@ -582,12 +586,9 @@ impl TryFrom<ProtobufAction> for Action { Some(ProtobufActionName::StartOrReloadPlugin) => { match protobuf_action.optional_payload { Some(OptionalPayload::StartOrReloadPluginPayload(payload)) => { - let run_plugin_or_alias = RunPluginOrAlias::from_url( - &payload.as_str(), - &None, - None, - None, - ).map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; + let run_plugin_or_alias = + RunPluginOrAlias::from_url(&payload.as_str(), &None, None, None) + .map_err(|_| "Malformed LaunchOrFocusPlugin payload")?; Ok(Action::StartOrReloadPlugin(run_plugin_or_alias)) }, @@ -1162,13 +1163,13 @@ impl TryFrom<Action> for ProtobufAction { _cwd, _coordinates, ) => { -// let plugin_url: Url = match run_plugin { -// RunPluginOrAlias::RunPlugin(run_plugin) => Url::from(&run_plugin.location), -// RunPluginOrAlias::Alias(plugin_alias) => { -// // TODO: support plugin alias -// unimplemented!() -// } -// }; + // let plugin_url: Url = match run_plugin { + // RunPluginOrAlias::RunPlugin(run_plugin) => Url::from(&run_plugin.location), + // RunPluginOrAlias::Alias(plugin_alias) => { + // // TODO: support plugin alias + // unimplemented!() + // } + // }; Ok(ProtobufAction { name: ProtobufActionName::NewFloatingPluginPane as i32, optional_payload: Some(OptionalPayload::NewFloatingPluginPanePayload( @@ -1180,14 +1181,12 @@ impl TryFrom<Action> for ProtobufAction { )), }) }, - Action::StartOrReloadPlugin(run_plugin) => { - Ok(ProtobufAction { - name: ProtobufActionName::StartOrReloadPlugin as i32, - optional_payload: Some(OptionalPayload::StartOrReloadPluginPayload( - run_plugin.location_string() - )), - }) - }, + Action::StartOrReloadPlugin(run_plugin) => Ok(ProtobufAction { + name: ProtobufActionName::StartOrReloadPlugin as i32, + optional_payload: Some(OptionalPayload::StartOrReloadPluginPayload( + run_plugin.location_string(), + )), + }), Action::CloseTerminalPane(terminal_pane_id) => Ok(ProtobufAction { name: ProtobufActionName::CloseTerminalPane as i32, optional_payload: Some(OptionalPayload::CloseTerminalPanePayload(terminal_pane_id)), diff --git a/zellij-utils/src/session_serialization.rs b/zellij-utils/src/session_serialization.rs index 47701f31a..d34aeb146 100644 --- a/zellij-utils/src/session_serialization.rs +++ b/zellij-utils/src/session_serialization.rs @@ -4,8 +4,8 @@ use std::path::PathBuf; use crate::{ input::layout::PluginUserConfiguration, input::layout::{ - FloatingPaneLayout, Layout, PercentOrFixed, Run, RunPluginOrAlias, SplitDirection, SplitSize, - SwapFloatingLayout, SwapTiledLayout, TiledPaneLayout, + FloatingPaneLayout, Layout, PercentOrFixed, Run, RunPluginOrAlias, SplitDirection, + SplitSize, SwapFloatingLayout, SwapTiledLayout, TiledPaneLayout, }, pane_size::{Constraint, PaneGeom}, }; @@ -236, |