From e20b4aabc325655c3e8b29cbf3ad4eb0d24c9d94 Mon Sep 17 00:00:00 2001 From: LGUG2Z Date: Thu, 20 Oct 2022 14:04:39 -0700 Subject: [PATCH] fix(clap): address deprecations --- komorebi-core/src/arrangement.rs | 6 ++-- komorebi-core/src/config_generation.rs | 4 +-- komorebi-core/src/cycle_direction.rs | 6 ++-- komorebi-core/src/default_layout.rs | 6 ++-- komorebi-core/src/lib.rs | 38 ++++++++++++++++------ komorebi-core/src/operation_direction.rs | 6 ++-- komorebic/src/main.rs | 41 ++++++++++++------------ 7 files changed, 66 insertions(+), 41 deletions(-) diff --git a/komorebi-core/src/arrangement.rs b/komorebi-core/src/arrangement.rs index f79f0ef5..b8e4fe97 100644 --- a/komorebi-core/src/arrangement.rs +++ b/komorebi-core/src/arrangement.rs @@ -1,6 +1,6 @@ use std::num::NonZeroUsize; -use clap::ArgEnum; +use clap::ValueEnum; use schemars::JsonSchema; use serde::Deserialize; use serde::Serialize; @@ -342,7 +342,9 @@ impl Arrangement for CustomLayout { } } -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum Axis { Horizontal, diff --git a/komorebi-core/src/config_generation.rs b/komorebi-core/src/config_generation.rs index e7cec879..779801ef 100644 --- a/komorebi-core/src/config_generation.rs +++ b/komorebi-core/src/config_generation.rs @@ -1,4 +1,4 @@ -use clap::ArgEnum; +use clap::ValueEnum; use color_eyre::Result; use schemars::JsonSchema; use serde::Deserialize; @@ -8,7 +8,7 @@ use strum::EnumString; use crate::ApplicationIdentifier; -#[derive(Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive(Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema)] #[strum(serialize_all = "snake_case")] #[serde(rename_all = "snake_case")] pub enum ApplicationOptions { diff --git a/komorebi-core/src/cycle_direction.rs b/komorebi-core/src/cycle_direction.rs index 08409292..b06cc70d 100644 --- a/komorebi-core/src/cycle_direction.rs +++ b/komorebi-core/src/cycle_direction.rs @@ -1,13 +1,15 @@ use std::num::NonZeroUsize; -use clap::ArgEnum; +use clap::ValueEnum; use schemars::JsonSchema; use serde::Deserialize; use serde::Serialize; use strum::Display; use strum::EnumString; -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum CycleDirection { Previous, diff --git a/komorebi-core/src/default_layout.rs b/komorebi-core/src/default_layout.rs index 566c294e..ce24c945 100644 --- a/komorebi-core/src/default_layout.rs +++ b/komorebi-core/src/default_layout.rs @@ -1,4 +1,4 @@ -use clap::ArgEnum; +use clap::ValueEnum; use schemars::JsonSchema; use serde::Deserialize; use serde::Serialize; @@ -9,7 +9,9 @@ use crate::OperationDirection; use crate::Rect; use crate::Sizing; -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum DefaultLayout { BSP, diff --git a/komorebi-core/src/lib.rs b/komorebi-core/src/lib.rs index 93618fb2..6ada3bc0 100644 --- a/komorebi-core/src/lib.rs +++ b/komorebi-core/src/lib.rs @@ -4,7 +4,7 @@ use std::path::PathBuf; use std::str::FromStr; -use clap::ArgEnum; +use clap::ValueEnum; use color_eyre::Result; use schemars::JsonSchema; use serde::Deserialize; @@ -138,14 +138,18 @@ impl FromStr for SocketMessage { } } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum WindowKind { Single, Stack, } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum StateQuery { FocusedMonitorIndex, @@ -154,7 +158,9 @@ pub enum StateQuery { FocusedWindowIndex, } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] #[serde(rename_all = "snake_case")] pub enum ApplicationIdentifier { @@ -163,42 +169,54 @@ pub enum ApplicationIdentifier { Title, } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum FocusFollowsMouseImplementation { Komorebi, Windows, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum WindowContainerBehaviour { Create, Append, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum MoveBehaviour { Swap, Insert, } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum HidingBehaviour { Hide, Minimize, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum OperationBehaviour { Op, NoOp, } -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum Sizing { Increase, diff --git a/komorebi-core/src/operation_direction.rs b/komorebi-core/src/operation_direction.rs index ce51aa14..25f8d93c 100644 --- a/komorebi-core/src/operation_direction.rs +++ b/komorebi-core/src/operation_direction.rs @@ -1,6 +1,6 @@ use std::num::NonZeroUsize; -use clap::ArgEnum; +use clap::ValueEnum; use schemars::JsonSchema; use serde::Deserialize; use serde::Serialize; @@ -10,7 +10,9 @@ use strum::EnumString; use crate::direction::Direction; use crate::Axis; -#[derive(Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ArgEnum, JsonSchema)] +#[derive( + Clone, Copy, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] #[strum(serialize_all = "snake_case")] pub enum OperationDirection { Left, diff --git a/komorebic/src/main.rs b/komorebic/src/main.rs index 8728c81e..acf3c81e 100644 --- a/komorebic/src/main.rs +++ b/komorebic/src/main.rs @@ -12,9 +12,8 @@ use std::path::PathBuf; use std::process::Command; use std::time::Duration; -use clap::AppSettings; -use clap::ArgEnum; use clap::Parser; +use clap::ValueEnum; use color_eyre::eyre::anyhow; use color_eyre::Result; use fs_tail::TailedFile; @@ -77,7 +76,7 @@ trait AhkFunction { fn generate_ahk_function() -> String; } -#[derive(Copy, Clone, ArgEnum)] +#[derive(Copy, Clone, ValueEnum)] enum BooleanState { Enable, Disable, @@ -99,7 +98,7 @@ macro_rules! gen_enum_subcommand_args { paste! { #[derive(clap::Parser, derive_ahk::AhkFunction)] pub struct $name { - #[clap(arg_enum)] + #[clap(value_enum)] [<$element:snake>]: $element } } @@ -154,7 +153,7 @@ gen_target_subcommand_args! { macro_rules! gen_workspace_subcommand_args { // Workspace Property: #[enum] Value Enum (if the value is an Enum) // Workspace Property: Value Type (if the value is anything else) - ( $( $name:ident: $(#[enum] $(@$arg_enum:tt)?)? $value:ty ),+ $(,)? ) => ( + ( $( $name:ident: $(#[enum] $(@$value_enum:tt)?)? $value:ty ),+ $(,)? ) => ( paste! { $( #[derive(clap::Parser, derive_ahk::AhkFunction)] @@ -165,9 +164,9 @@ macro_rules! gen_workspace_subcommand_args { /// Workspace index on the specified monitor (zero-indexed) workspace: usize, - $(#[clap(arg_enum)] $($arg_enum)?)? + $(#[clap(value_enum)] $($value_enum)?)? #[cfg_attr( - all($(FALSE $($arg_enum)?)?), + all($(FALSE $($value_enum)?)?), doc = ""$name " of the workspace as a "$value "" )] value: $value, @@ -215,7 +214,7 @@ pub struct WorkspaceLayoutRule { /// The number of window containers on-screen required to trigger this layout rule at_container_count: usize, - #[clap(arg_enum)] + #[clap(value_enum)] layout: DefaultLayout, } @@ -236,17 +235,17 @@ pub struct WorkspaceCustomLayoutRule { #[derive(Parser, AhkFunction)] struct Resize { - #[clap(arg_enum)] + #[clap(value_enum)] edge: OperationDirection, - #[clap(arg_enum)] + #[clap(value_enum)] sizing: Sizing, } #[derive(Parser, AhkFunction)] struct ResizeAxis { - #[clap(arg_enum)] + #[clap(value_enum)] axis: Axis, - #[clap(arg_enum)] + #[clap(value_enum)] sizing: Sizing, } @@ -332,7 +331,7 @@ macro_rules! gen_padding_adjustment_subcommand_args { $( #[derive(clap::Parser, derive_ahk::AhkFunction)] pub struct $name { - #[clap(arg_enum)] + #[clap(value_enum)] sizing: Sizing, /// Pixels to adjust by as an integer adjustment: i32, @@ -352,7 +351,7 @@ macro_rules! gen_application_target_subcommand_args { $( #[derive(clap::Parser, derive_ahk::AhkFunction)] pub struct $name { - #[clap(arg_enum)] + #[clap(value_enum)] identifier: ApplicationIdentifier, /// Identifier as a string id: String, @@ -372,7 +371,7 @@ gen_application_target_subcommand_args! { #[derive(Parser, AhkFunction)] struct WorkspaceRule { - #[clap(arg_enum)] + #[clap(value_enum)] identifier: ApplicationIdentifier, /// Identifier as a string id: String, @@ -384,27 +383,27 @@ struct WorkspaceRule { #[derive(Parser, AhkFunction)] struct ToggleFocusFollowsMouse { - #[clap(arg_enum, short, long, default_value = "windows")] + #[clap(value_enum, short, long, default_value = "windows")] implementation: FocusFollowsMouseImplementation, } #[derive(Parser, AhkFunction)] struct FocusFollowsMouse { - #[clap(arg_enum, short, long, default_value = "windows")] + #[clap(value_enum, short, long, default_value = "windows")] implementation: FocusFollowsMouseImplementation, - #[clap(arg_enum)] + #[clap(value_enum)] boolean_state: BooleanState, } #[derive(Parser, AhkFunction)] struct ActiveWindowBorder { - #[clap(arg_enum)] + #[clap(value_enum)] boolean_state: BooleanState, } #[derive(Parser, AhkFunction)] struct ActiveWindowBorderColour { - #[clap(arg_enum, short, long, default_value = "single")] + #[clap(value_enum, short, long, default_value = "single")] window_kind: WindowKind, /// Red r: u32, @@ -472,7 +471,7 @@ struct FormatAppSpecificConfiguration { } #[derive(Parser)] -#[clap(author, about, version, setting = AppSettings::DeriveDisplayOrder)] +#[clap(author, about, version)] struct Opts { #[clap(subcommand)] subcmd: SubCommand,