From d0d61209f1ea6a1580206099affe9b42f4e26b82 Mon Sep 17 00:00:00 2001 From: rsteube Date: Sun, 27 Nov 2022 16:42:27 +0100 Subject: [PATCH] tmp --- .../defaultActions/actionExecCommand.cast | 47 +++++++++++++++++++ .../defaultActions/actionExecCommand.md | 1 + example/cmd/action.go | 33 +++++++------ 3 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 docs/src/carapace/defaultActions/actionExecCommand.cast diff --git a/docs/src/carapace/defaultActions/actionExecCommand.cast b/docs/src/carapace/defaultActions/actionExecCommand.cast new file mode 100644 index 000000000..1e0a49a85 --- /dev/null +++ b/docs/src/carapace/defaultActions/actionExecCommand.cast @@ -0,0 +1,47 @@ +{"version": 2, "width": 108, "height": 24, "timestamp": 1669555955, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}} +[0.042081, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"] +[0.042849, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"] +[0.054148, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"] +[0.054344, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h\u001b[?25l\r\u001b[K\r\n\u001b[0;1;36mcarapace\u001b[0;m on \u001b[0;1;35m update-examples2\u001b[0;m via \u001b[0;1;36m🐹 v1.19.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m❯\u001b[0;m \r\u001b[6C\u001b[?25h"] +[0.441828, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h"] +[0.442453, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"] +[0.457669, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"] +[0.45772, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"] +[0.649476, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mex\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"] +[0.803468, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;32ma\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"] +[0.926535, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;31mexam\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"] +[0.965482, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[10C\u001b[0;31mp\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"] +[1.126057, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C\u001b[0;31ml\u001b[0;m\r\u001b[12C\u001b[?25h"] +[1.126165, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[12C\u001b[?25h"] +[1.179382, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mexample\u001b[0;m\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[13C\u001b[?25h"] +[1.290229, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[13C \r\u001b[14C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[14C\u001b[?25h"] +[1.40154, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[14Ca\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[15C\u001b[?25h"] +[1.492128, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[15Cc\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[16C\u001b[?25h"] +[1.706102, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[16Ct\r\u001b[17C\u001b[?25h"] +[1.706218, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"] +[1.763681, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17Ci\r\u001b[18C\u001b[?25h"] +[1.763785, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"] +[1.845946, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[18Co\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[19C\u001b[?25h"] +[1.894668, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[19Cn\r\u001b[20C\u001b[?25h"] +[1.895119, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[20C\u001b[?25h"] +[1.98299, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[20C \r\u001b[21C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[21C\u001b[?25h"] +[2.159761, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[21C-\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[22C\u001b[?25h"] +[2.302763, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22C-\r\u001b[23C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[23C\u001b[?25h"] +[2.451768, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[23Ce\r\u001b[24C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[24C\u001b[?25h"] +[2.685564, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[24Cx\r\u001b[25C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[25C\u001b[?25h"] +[2.993822, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[25Cec-command \r\u001b[36C\u001b[?25h"] +[3.640582, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[36C\u001b[0;4mfork \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mfork\u001b[0;m origin\u001b[1A\r\u001b[22C\u001b[?25h"] +[4.459056, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[36C\u001b[K\u001b[0;4morigin \r\n\r\n\u001b[0;m\u001b[Kfork \u001b[0;7morigin\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"] +[5.037107, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[36C\u001b[K\u001b[0;4mfork \r\n\r\n\u001b[0;m\u001b[K\u001b[0;7mfork\u001b[0;m origin\u001b[1A\r\u001b[22C\u001b[?25h"] +[5.638706, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[36C\u001b[Kfork \r\n\u001b[J\u001b[A\r\u001b[41C\u001b[?25h"] +[5.639114, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[41C\u001b[?25h"] +[6.26833, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\r\u001b[6C\u001b[?25h"] +[6.268697, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"] +[6.289926, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"] +[6.290184, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"] +[6.64225, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"] +[6.821335, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mex\u001b[0;m\r\u001b[8C\u001b[?25h"] +[6.821438, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"] +[6.975227, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;31mexi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"] +[7.046158, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"] +[7.206082, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"] diff --git a/docs/src/carapace/defaultActions/actionExecCommand.md b/docs/src/carapace/defaultActions/actionExecCommand.md index 60dab3171..b48519156 100644 --- a/docs/src/carapace/defaultActions/actionExecCommand.md +++ b/docs/src/carapace/defaultActions/actionExecCommand.md @@ -9,5 +9,6 @@ carapace.ActionExecCommand("git", "remote")(func(output []byte) carapace.Action }) ``` +![](./actionExecCommand.cast) [`ActionExecCommand`]:https://pkg.go.dev/github.com/rsteube/carapace#ActionExecCommand diff --git a/example/cmd/action.go b/example/cmd/action.go index ae49021d2..072d00a62 100644 --- a/example/cmd/action.go +++ b/example/cmd/action.go @@ -13,14 +13,7 @@ var actionCmd = &cobra.Command{ Short: "action example", Aliases: []string{"alias"}, GroupID: "main", - RunE: func(cmd *cobra.Command, args []string) error { - if f := cmd.Flag("style"); f.Changed { - if splitted := strings.Split(f.Value.String(), "="); len(splitted) == 2 { - return style.Set(splitted[0], strings.Replace(splitted[1], ",", " ", -1)) - } - } - return nil - }, + Run: func(cmd *cobra.Command, args []string) {}, } func init() { @@ -113,12 +106,24 @@ func init() { carapace.ActionValues("positional2", "p2", "positional2 with space"), ) - carapace.Gen(actionCmd).DashCompletion( - carapace.ActionValues("dash1", "d1", "dash1 with space"), - carapace.ActionValues("dash2", "d2", "dash2 with space"), - ) - carapace.Gen(actionCmd).DashAnyCompletion( - carapace.ActionValues("dashAny", "dAny", "dashAny with space"), + carapace.ActionCallback(func(c carapace.Context) carapace.Action { + cmd := &cobra.Command{ + Use: "embedded", + CompletionOptions: cobra.CompletionOptions{ + DisableDefaultCmd: true, + }, + Run: func(cmd *cobra.Command, args []string) {}, + } + + cmd.Flags().Bool("embedded-flag", false, "embedded flag") + + carapace.Gen(cmd).PositionalCompletion( + carapace.ActionValues("embeddedPositional1", "embeddedP1"), + carapace.ActionValues("embeddedPositional2", "embeddedP2"), + ) + + return carapace.ActionExecute(cmd) + }), ) }