Browse Source

Add a bunch of completion hints

Samuel W. Flint 1 year ago
parent
commit
8299f70b01
4 changed files with 42 additions and 23 deletions
  1. 1 1
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 2 2
      flake.nix
  4. 38 19
      src/main.rs

+ 1 - 1
Cargo.lock

@@ -185,7 +185,7 @@ dependencies = [
 
 [[package]]
 name = "sync-it"
-version = "2.0.0"
+version = "2.0.1"
 dependencies = [
  "clap",
  "clap_complete",

+ 1 - 1
Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "sync-it"
-version = "2.0.0"
+version = "2.0.1"
 authors = ["Samuel W. Flint <swflint@flintfam.org>"]
 edition = "2018"
 

+ 2 - 2
flake.nix

@@ -17,11 +17,11 @@
 
           sync-it = pkgs.rustPlatform.buildRustPackage rec {
             name = "sync-it";
-            version = "2.0.0";
+            version = "2.0.1";
 
             src = ./.;
 
-            cargoSha256 = "B8N7fgi8RTXXzVYfqzbCB3ov6mDIJgFm6HEg3gCuVGA=";
+            cargoSha256 = "FYAmRythvoLUczKT8uYeiiL2ih2LjAW9fbmbYyRP5kc=";
 
             meta = {
               description = "A simple, customizable synchronization tool.";

+ 38 - 19
src/main.rs

@@ -1,6 +1,6 @@
 // extern crate clap;
 
-use clap::{Command, command, Arg, value_parser, ArgAction, ValueEnum, builder::PossibleValue};
+use clap::{Command, command, Arg, value_parser, ArgAction, ValueEnum, ValueHint, builder::PossibleValue};
 use clap_complete::{generate, Generator, Shell};
 
 use std::env;
@@ -75,6 +75,7 @@ fn build_cli() -> Command {
              .short('c')
              .long("config")
              .value_name("FILE")
+             .value_hint(ValueHint::FilePath)
              .help("Set a custom configuration file"))
         .subcommand(Command::new("run")
                     .aliases(["sync", "rr"])
@@ -218,34 +219,41 @@ fn build_cli() -> Command {
                                      .short('c')
                                      .long("create")
                                      .help("Creation command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("inward")
                                      .short('i')
                                      .long("inward")
                                      .help("Inward sync command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("outward")
                                      .short('o')
                                      .long("outward")
                                      .help("Outward sync command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("status")
                                      .short('s')
                                      .long("status")
                                      .help("Status command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("pre_inward")
                                      .long("pre-inward")
                                      .help("Pre-inward command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("post_inward")
                                      .long("post-inward")
                                      .help("Post-inward command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("post_outward")
                                      .long("post-outward")
                                      .help("Post-outward command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                     )
                     .subcommand(Command::new("config")
                                 .about("Configure a repository type")
@@ -262,34 +270,41 @@ fn build_cli() -> Command {
                                      .short('c')
                                      .long("create")
                                      .help("Creation command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("inward")
                                      .short('i')
                                      .long("inward")
                                      .help("Inward sync command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("outward")
                                      .short('o')
                                      .long("outward")
                                      .help("Outward sync command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("status")
                                      .short('s')
                                      .long("status")
                                      .help("Status command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("pre_inward")
                                      .long("pre-inward")
                                      .help("Pre-inward command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("post_inward")
                                      .long("post-inward")
                                      .help("Post-inward command")
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("post_outward")
                                      .long("post-outward")
                                      .help("Post-outward command")
-                                     .value_name("COMMAND")))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString)))
                     .subcommand(Command::new("command")
                                 .about("Manage commands in a repository type")
                                 .subcommand_required(true)
@@ -306,7 +321,8 @@ fn build_cli() -> Command {
                                             .arg(Arg::new("command")
                                                  .help("Command")
                                                  .required(true)
-                                                 .value_name("COMMAND")))
+                                                 .value_name("COMMAND")
+                                                 .value_hint(ValueHint::ComandString)))
                                 .subcommand(Command::new("change")
                                             .about("Change a command in a repository type")
                                             .arg(Arg::new("type")
@@ -320,7 +336,8 @@ fn build_cli() -> Command {
                                             .arg(Arg::new("command")
                                                  .help("Command")
                                                  .required(true)
-                                                 .value_name("COMMAND")))
+                                                 .value_name("COMMAND")
+                                                 .value_hint(ValueHint::ComandString)))
                                 .subcommand(Command::new("remove")
                                             .about("Remove a command from a repository type")
                                             .arg(Arg::new("type")
@@ -352,7 +369,8 @@ fn build_cli() -> Command {
                                 .arg(Arg::new("command")
                                      .help("Command")
                                      .required(true)
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::ComandString))
                                 .arg(Arg::new("description")
                                      .help("Description of action")
                                      .long("description")
@@ -374,7 +392,8 @@ fn build_cli() -> Command {
                                      .help("Command")
                                      .long("command")
                                      .short('c')
-                                     .value_name("COMMAND"))
+                                     .value_name("COMMAND")
+                                     .value_hint(ValueHint::CommandString))
                                 .arg(Arg::new("description")
                                      .help("Description of action")
                                      .long("description")