diff --git a/Cargo.lock b/Cargo.lock index 780024eab2..6a7ff22a86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -355,9 +355,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.18" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b" +checksum = "8e538f9ee5aa3b3963f09a997035f883677966ed50fce0292611927ce6f6d8c6" dependencies = [ "atty", "bitflags", @@ -372,18 +372,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "3.1.4" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da92e6facd8d73c22745a5d3cbb59bdf8e46e3235c923e516527d8e81eec14a4" +checksum = "0f6ebaab5f25e4f0312dfa07cb30a755204b96e6531457c2cfdecfdf5f2adf40" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "3.1.18" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c" +checksum = "a7f98063cac4652f23ccda556b8d04347a7fc4b2cff1f7577cc8c6546e0d8078" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -394,9 +394,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213" +checksum = "5538cd660450ebeb4234cfecf8f2284b844ffc4c50531e66d584ad5b91293613" dependencies = [ "os_str_bytes", ] @@ -1017,13 +1017,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -1212,9 +1212,9 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] @@ -1929,7 +1929,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -1989,7 +1989,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "redox_syscall", "thiserror", ] @@ -2574,9 +2574,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ "cfg-if 1.0.0", "log", @@ -2598,11 +2598,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" dependencies = [ - "lazy_static", + "once_cell", ] [[package]] @@ -2664,9 +2664,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-linebreak" @@ -2732,7 +2732,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "serde", ] @@ -2806,11 +2806,17 @@ version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2818,9 +2824,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", "lazy_static", @@ -2833,9 +2839,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2845,9 +2851,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2855,9 +2861,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", @@ -2868,9 +2874,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" + +[[package]] +name = "wasm-encoder" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f0c17267a5ffd6ae3d897589460e21db1673c84fb7016b909c9691369a75ea" +dependencies = [ + "leb128", +] [[package]] name = "wasmer" @@ -3055,7 +3070,7 @@ dependencies = [ "bincode", "byteorder", "generational-arena", - "getrandom 0.2.6", + "getrandom 0.2.7", "libc", "serde", "thiserror", @@ -3074,29 +3089,30 @@ checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf" [[package]] name = "wast" -version = "41.0.0" +version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f882898b8b817cc4edc16aa3692fdc087b356edc8cc0c2164f5b5181e31c3870" +checksum = "badcb03f976f983ff0daf294da9697be659442f61e6b0942bb37a2b6cbfe9dd4" dependencies = [ "leb128", "memchr", "unicode-width", + "wasm-encoder", ] [[package]] name = "wat" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48b3b9b3e39e66c7fd3f8be785e74444d216260f491e93369e317ed6482ff80f" +checksum = "b92f20b742ac527066c8414bc0637352661b68cab07ef42586cefaba71c965cf" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/zellij-utils/Cargo.toml b/zellij-utils/Cargo.toml index a63e74ba16..eb9c5f7210 100644 --- a/zellij-utils/Cargo.toml +++ b/zellij-utils/Cargo.toml @@ -12,8 +12,8 @@ license = "MIT" anyhow = "1.0.45" backtrace = "0.3.55" bincode = "1.3.1" -clap = { version = "3.0", features = ["derive", "env"] } -clap_complete = "3.0" +clap = { version = "3.2.2", features = ["derive", "env"] } +clap_complete = "3.2.1" colored = "2.0.0" colorsys = "0.6.5" crossbeam = "0.8.1" diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs index 65b75eceba..7f153249eb 100644 --- a/zellij-utils/src/cli.rs +++ b/zellij-utils/src/cli.rs @@ -11,49 +11,49 @@ use std::path::PathBuf; #[clap(version, name = "zellij")] pub struct CliArgs { /// Maximum panes on screen, caution: opening more panes will close old ones - #[clap(long)] + #[clap(long, value_parser)] pub max_panes: Option, /// Change where zellij looks for plugins - #[clap(long, parse(from_os_str), overrides_with = "data_dir")] + #[clap(long, value_parser, overrides_with = "data_dir")] pub data_dir: Option, /// Run server listening at the specified socket path - #[clap(long, parse(from_os_str), hide = true, overrides_with = "server")] + #[clap(long, value_parser, hide = true, overrides_with = "server")] pub server: Option, /// Specify name of a new session - #[clap(long, short, overrides_with = "session")] + #[clap(long, short, overrides_with = "session", value_parser)] pub session: Option, /// Name of a predefined layout inside the layout directory or the path to a layout file - #[clap(short, long, parse(from_os_str), overrides_with = "layout")] + #[clap(short, long, value_parser, overrides_with = "layout")] pub layout: Option, /// Change where zellij looks for the configuration file - #[clap(short, long, overrides_with = "config", env = ZELLIJ_CONFIG_FILE_ENV, parse(from_os_str))] + #[clap(short, long, overrides_with = "config", env = ZELLIJ_CONFIG_FILE_ENV, value_parser)] pub config: Option, /// Change where zellij looks for the configuration directory - #[clap(long, overrides_with = "config_dir", env = ZELLIJ_CONFIG_DIR_ENV, parse(from_os_str))] + #[clap(long, overrides_with = "config_dir", env = ZELLIJ_CONFIG_DIR_ENV, value_parser)] pub config_dir: Option, #[clap(subcommand)] pub command: Option, /// Specify emitting additional debug information - #[clap(short, long)] + #[clap(short, long, value_parser)] pub debug: bool, } #[derive(Debug, Subcommand, Clone, Serialize, Deserialize)] pub enum Command { /// Change the behaviour of zellij - #[clap(name = "options")] + #[clap(name = "options", value_parser)] Options(CliOptions), /// Setup zellij and check its configuration - #[clap(name = "setup")] + #[clap(name = "setup", value_parser)] Setup(Setup), /// Explore existing zellij sessions @@ -78,14 +78,15 @@ pub enum Sessions { #[clap(visible_alias = "a")] Attach { /// Name of the session to attach to. + #[clap(value_parser)] session_name: Option, /// Create a session if one does not exist. - #[clap(short, long)] + #[clap(short, long, value_parser)] create: bool, /// Number of the session index in the active sessions ordered creation date. - #[clap(long)] + #[clap(long, value_parser)] index: Option, /// Change the behaviour of zellij @@ -97,6 +98,7 @@ pub enum Sessions { #[clap(visible_alias = "k")] KillSession { /// Name of target session + #[clap(value_parser)] target_session: Option, }, @@ -104,7 +106,7 @@ pub enum Sessions { #[clap(visible_alias = "ka")] KillAllSessions { /// Automatic yes to prompts - #[clap(short, long)] + #[clap(short, long, value_parser)] yes: bool, }, } diff --git a/zellij-utils/src/input/options.rs b/zellij-utils/src/input/options.rs index 73e77ecb5f..131abc48d4 100644 --- a/zellij-utils/src/input/options.rs +++ b/zellij-utils/src/input/options.rs @@ -40,61 +40,67 @@ impl FromStr for OnForceClose { pub struct Options { /// Allow plugins to use a more simplified layout /// that is compatible with more fonts (true or false) - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] pub simplified_ui: Option, /// Set the default theme - #[clap(long)] + #[clap(long, value_parser)] pub theme: Option, /// Set the default mode - #[clap(long, arg_enum, hide_possible_values = true)] + #[clap(long, arg_enum, hide_possible_values = true, value_parser)] pub default_mode: Option, /// Set the default shell - #[clap(long, parse(from_os_str))] + #[clap(long, value_parser)] pub default_shell: Option, /// Set the default layout - #[clap(long, parse(from_os_str))] + #[clap(long, value_parser)] pub default_layout: Option, /// Set the layout_dir, defaults to /// subdirectory of config dir - #[clap(long, parse(from_os_str))] + #[clap(long, value_parser)] pub layout_dir: Option, - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] /// Set the handling of mouse events (true or false) /// Can be temporarily bypassed by the [SHIFT] key pub mouse_mode: Option, - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] /// Set display of the pane frames (true or false) pub pane_frames: Option, - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] /// Mirror session when multiple users are connected (true or false) pub mirror_session: Option, /// Set behaviour on force close (quit or detach) - #[clap(long, arg_enum, hide_possible_values = true)] + #[clap(long, arg_enum, hide_possible_values = true, value_parser)] pub on_force_close: Option, - #[clap(long)] + #[clap(long, value_parser)] pub scroll_buffer_size: Option, /// Switch to using a user supplied command for clipboard instead of OSC52 - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] pub copy_command: Option, /// OSC52 destination clipboard - #[clap(long, arg_enum, ignore_case = true, conflicts_with = "copy-command")] + #[clap( + long, + arg_enum, + ignore_case = true, + conflicts_with = "copy-command", + value_parser + )] #[serde(default)] pub copy_clipboard: Option, /// Automatically copy when selecting text (true or false) - #[clap(long)] + #[clap(long, value_parser)] #[serde(default)] pub copy_on_select: Option, /// Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL) - #[clap(long, parse(from_os_str))] + #[clap(long, value_parser)] pub scrollback_editor: Option, } @@ -229,10 +235,10 @@ impl Options { /// boolean flags end up toggling boolean options in `Options` pub struct CliOptions { /// Disable handling of mouse events - #[clap(long, conflicts_with("mouse-mode"))] + #[clap(long, conflicts_with("mouse-mode"), value_parser)] pub disable_mouse_mode: bool, /// Disable display of pane frames - #[clap(long, conflicts_with("pane-frames"))] + #[clap(long, conflicts_with("pane-frames"), value_parser)] pub no_pane_frames: bool, #[clap(flatten)] options: Options, diff --git a/zellij-utils/src/setup.rs b/zellij-utils/src/setup.rs index ab0509832f..91211f9f97 100644 --- a/zellij-utils/src/setup.rs +++ b/zellij-utils/src/setup.rs @@ -159,29 +159,29 @@ pub fn dump_specified_layout(layout: &str) -> std::io::Result<()> { #[derive(Debug, Default, Clone, Args, Serialize, Deserialize)] pub struct Setup { /// Dump the default configuration file to stdout - #[clap(long)] + #[clap(long, value_parser)] pub dump_config: bool, /// Disables loading of configuration file at default location, /// loads the defaults that zellij ships with - #[clap(long)] + #[clap(long, value_parser)] pub clean: bool, /// Checks the configuration of zellij and displays /// currently used directories - #[clap(long)] + #[clap(long, value_parser)] pub check: bool, /// Dump the specified layout file to stdout - #[clap(long)] + #[clap(long, value_parser)] pub dump_layout: Option, /// Generates completion for the specified shell - #[clap(long, value_name = "SHELL")] + #[clap(long, value_name = "SHELL", value_parser)] pub generate_completion: Option, /// Generates auto-start script for the specified shell - #[clap(long, value_name = "SHELL")] + #[clap(long, value_name = "SHELL", value_parser)] pub generate_auto_start: Option, }