From a0a6f1fd9e0435a4a175ddf54fbf44ca6152ad2d Mon Sep 17 00:00:00 2001 From: rsteube Date: Tue, 24 Dec 2024 21:04:00 +0100 Subject: [PATCH] elvish: register `.exe` completion on windows --- internal/shell/elvish/snippet.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/shell/elvish/snippet.go b/internal/shell/elvish/snippet.go index dd6d25484..7979630d2 100644 --- a/internal/shell/elvish/snippet.go +++ b/internal/shell/elvish/snippet.go @@ -3,6 +3,7 @@ package elvish import ( "fmt" + "runtime" "github.com/carapace-sh/carapace/pkg/uid" "github.com/spf13/cobra" @@ -10,7 +11,7 @@ import ( // Snippet creates the elvish completion script. func Snippet(cmd *cobra.Command) string { - return fmt.Sprintf(`set edit:completion:arg-completer[%v] = {|@arg| + result := fmt.Sprintf(`set edit:completion:arg-completer[%v] = {|@arg| %v _carapace elvish (all $arg) | from-json | each {|completion| put $completion[Messages] | all (one) | each {|m| edit:notify (styled "error: " red)$m @@ -28,4 +29,9 @@ func Snippet(cmd *cobra.Command) string { } } `, cmd.Name(), uid.Executable()) + + if runtime.GOOS == "windows" { + result += fmt.Sprintf("set edit:completion:arg-completer[%v.exe] = $edit:completion:arg-completer[%v]\n", cmd.Name(), cmd.Name()) + } + return result }