Documentation ¶
Overview ¶
Package carapace is a command argument completion generator for spf13/cobra
Index ¶
- func ActionExecCommand(name string, arg ...string) func(f func(output []byte) Action) Action
- func Batch(actions ...Action) batch
- func IsCallback() bool
- func Override(o Opts)
- func Test(t testingT)
- type Action
- func ActionCallback(callback CompletionCallback) Action
- func ActionDirectories() Action
- func ActionExecute(cmd *cobra.Command) Action
- func ActionFiles(suffix ...string) Action
- func ActionImport(output []byte) Action
- func ActionMessage(msg string) Action
- func ActionMultiParts(divider string, callback func(c Context) Action) Action
- func ActionStyleConfig() Action
- func ActionStyledValues(values ...string) Action
- func ActionStyledValuesDescribed(values ...string) Action
- func ActionStyles(styles ...string) Action
- func ActionValues(values ...string) Action
- func ActionValuesDescribed(values ...string) Action
- func (a Action) Cache(timeout time.Duration, keys ...pkgcache.Key) Action
- func (a Action) Chdir(dir string) Action
- func (a Action) Invoke(c Context) InvokedAction
- func (a Action) NoSpace() Action
- func (a Action) Style(style string) Action
- func (a Action) StyleF(f func(s string) string) Action
- func (a Action) StyleR(style *string) Action
- func (a Action) Suppress(expr ...string) Action
- type ActionMap
- type Carapace
- func (c Carapace) DashAnyCompletion(action Action)
- func (c Carapace) DashCompletion(action ...Action)
- func (c Carapace) FlagCompletion(actions ActionMap)
- func (c Carapace) PositionalAnyCompletion(action Action)
- func (c Carapace) PositionalCompletion(action ...Action)
- func (c Carapace) PreInvoke(f func(cmd *cobra.Command, flag *pflag.Flag, action Action) Action)
- func (c Carapace) Snippet(shell string) (string, error)
- func (c Carapace) Standalone()
- type CompletionCallback
- type Context
- type InvokedAction
- func (a InvokedAction) Filter(values []string) InvokedAction
- func (a InvokedAction) Merge(others ...InvokedAction) InvokedAction
- func (a InvokedAction) Prefix(prefix string) InvokedAction
- func (a InvokedAction) Suffix(suffix string) InvokedAction
- func (a InvokedAction) ToA() Action
- func (a InvokedAction) ToMultiPartsA(divider string) Action
- type Opts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActionExecCommand ¶ added in v0.5.8
ActionExecCommand invokes given command and transforms its output using given function on success or returns ActionMessage with the first line of stderr if available.
carapace.ActionExecCommand("git", "remote")(func(output []byte) carapace.Action { lines := strings.Split(string(output), "\n") return carapace.ActionValues(lines[:len(lines)-1]...) })
func Batch ¶ added in v0.8.0
func Batch(actions ...Action) batch
Batch creates a batch of Actions that can be invoked in parallel
func IsCallback ¶ added in v0.0.6
func IsCallback() bool
IsCallback returns true if current program invocation is a callback
func Override ¶ added in v0.7.0
func Override(o Opts)
Override changes completion behaviour for non-posix style flags in standalone mode. Mostly done by patching `os.Args` before command execution and thus must be called before it. These are considered hacks and might undergo changes in future (or replaced by a custom pflag fork).
func Execute() error { carapace.Override(carapace.Opts{ LongShorthand: true, OptArgDelimiter: ":", }) return rootCmd.Execute() }
Types ¶
type Action ¶
type Action struct {
// contains filtered or unexported fields
}
Action indicates how to complete a flag or positional argument
func ActionCallback ¶
func ActionCallback(callback CompletionCallback) Action
ActionCallback invokes a go function during completion
func ActionDirectories ¶ added in v0.0.11
func ActionDirectories() Action
ActionDirectories completes directories
func ActionExecute ¶
ActionExecute executes completion on an internal command TODO example
func ActionFiles ¶
ActionFiles completes files with optional suffix filtering
func ActionImport ¶ added in v0.12.7
ActionImport parses the json output from export as Action
carapace.Gen(rootCmd).PositionalAnyCompletion( carapace.ActionCallback(func(c carapace.Context) carapace.Action { args := []string{"_carapace", "export", ""} args = append(args, c.Args...) args = append(args, c.CallbackValue) return carapace.ActionExecCommand("command", args...)(func(output []byte) carapace.Action { return carapace.ActionImport(output) }) }), )
func ActionMessage ¶
ActionMessage displays a help messages in places where no completions can be generated
func ActionMultiParts ¶
ActionMultiParts completes multiple parts of words separately where each part is separated by some char (CallbackValue is set to the currently completed part during invocation)
func ActionStyleConfig ¶ added in v0.19.0
func ActionStyleConfig() Action
ActionStyleConfig completes style configuration
carapace.Value=blue carapace.Description=magenta
func ActionStyledValues ¶ added in v0.18.0
ActionStyledValues is like ActionValues but also accepts a style
func ActionStyledValuesDescribed ¶ added in v0.18.0
ActionStyledValuesDescribed is like ActionValues but also accepts a style
func ActionValues ¶
ActionValues completes arbitrary keywords (values)
func ActionValuesDescribed ¶
ActionValuesDescribed completes arbitrary key (values) with an additional description (value, description pairs)
func (Action) Cache ¶ added in v0.2.4
Cache cashes values of a CompletionCallback for given duration and keys
func (Action) Chdir ¶ added in v0.8.10
Chdir changes the current working directory to the named directory during invocation.
func (Action) Invoke ¶ added in v0.1.1
func (a Action) Invoke(c Context) InvokedAction
Invoke executes the callback of an action if it exists (supports nesting)
func (Action) Style ¶ added in v0.18.0
Style sets the style
ActionValues("yes").Style(style.Green) ActionValues("no").Style(style.Red)
func (Action) StyleF ¶ added in v0.19.0
Style sets the style using a function
ActionValues("dir/", "test.txt").StyleF(style.ForPathExt) ActionValues("true", "false").StyleF(style.ForKeyword)
type Carapace ¶
type Carapace struct {
// contains filtered or unexported fields
}
Carapace wraps cobra.Command to define completions
func (Carapace) DashAnyCompletion ¶ added in v0.13.0
DashAnyCompletion defines completion for any positional arguments after dash (`--`) not already defined
func (Carapace) DashCompletion ¶ added in v0.13.0
DashCompletion defines completion for positional arguments after dash (`--`) using a list of Actions
func (Carapace) FlagCompletion ¶
FlagCompletion defines completion for flags using a map consisting of name and Action
func (Carapace) PositionalAnyCompletion ¶ added in v0.0.14
PositionalAnyCompletion defines completion for any positional arguments not already defined
func (Carapace) PositionalCompletion ¶
PositionalCompletion defines completion for positional arguments using a list of Actions
func (Carapace) Standalone ¶ added in v0.0.14
func (c Carapace) Standalone()
Standalone prevents cobra defaults interfering with standalone mode (e.g. implicit help command)
type CompletionCallback ¶
CompletionCallback is executed during completion of associated flag or positional argument
type Context ¶ added in v0.4.0
type Context struct { // CallbackValue contains the (partial) value (or part of it during an ActionMultiParts) currently being completed CallbackValue string // Args contains the positional arguments of current (sub)command (exclusive the one currently being completed) Args []string // Parts contains the splitted CallbackValue during an ActionMultiParts (exclusive the part currently being completed) Parts []string // Env contains environment variables for current context Env []string // Dir contains the working directory for current context Dir string }
Context provides information during completion
type InvokedAction ¶ added in v0.1.1
type InvokedAction struct {
Action
}
InvokedAction is a logical alias for an Action whose (nested) callback was invoked
func (InvokedAction) Filter ¶ added in v0.1.1
func (a InvokedAction) Filter(values []string) InvokedAction
Filter filters given values (this should be done before any call to Prefix/Suffix as those alter the values being filtered)
a := carapace.ActionValues("A", "B", "C").Invoke(c) b := a.Filter([]string{"B"}) // ["A", "C"]
func (InvokedAction) Merge ¶ added in v0.1.8
func (a InvokedAction) Merge(others ...InvokedAction) InvokedAction
Merge merges InvokedActions (existing values are overwritten)
a := carapace.ActionValues("A", "B").Invoke(c) b := carapace.ActionValues("B", "C").Invoke(c) c := a.Merge(b) // ["A", "B", "C"]
func (InvokedAction) Prefix ¶ added in v0.1.1
func (a InvokedAction) Prefix(prefix string) InvokedAction
Prefix adds a prefix to values (only the ones inserted, not the display values)
a := carapace.ActionValues("melon", "drop", "fall").Invoke(c) b := a.Prefix("water") // ["watermelon", "waterdrop", "waterfall"] but display still ["melon", "drop", "fall"]
func (InvokedAction) Suffix ¶ added in v0.1.1
func (a InvokedAction) Suffix(suffix string) InvokedAction
Suffix adds a suffx to values (only the ones inserted, not the display values)
a := carapace.ActionValues("apple", "melon", "orange").Invoke(c) b := a.Suffix("juice") // ["applejuice", "melonjuice", "orangejuice"] but display still ["apple", "melon", "orange"]
func (InvokedAction) ToA ¶ added in v0.1.1
func (a InvokedAction) ToA() Action
ToA casts an InvokedAction to Action
func (InvokedAction) ToMultiPartsA ¶ added in v0.2.2
func (a InvokedAction) ToMultiPartsA(divider string) Action
ToMultiPartsA create an ActionMultiParts from values with given divider
a := carapace.ActionValues("A/B/C", "A/C", "B/C", "C").Invoke(c) b := a.ToMultiPartsA("/") // completes segments separately (first one is ["A/", "B/", "C"])
type Opts ¶ added in v0.7.0
type Opts struct { // LongShorthand forces flag names to use non-posix single `-` style // No shorthand flags should be used in this mode (thus no shorthand chaining). // false // chown --verbose (default) // true // java -classpath LongShorthand bool // OptArgDelimiter changes the delimiter for optional flag arguments // "=" // tail --verbose=descriptor (default) // ":" // java -verbose:class OptArgDelimiter string // BridgeCompletion registers carapace completions to cobra's default completion BridgeCompletion bool }
Opts contains overrides for completion behaviour
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
example-nonposix
module
|
|
internal
|
|
assert
Package assert provides test helpers
|
Package assert provides test helpers |
cache
Package cache provides disk cache for Actions
|
Package cache provides disk cache for Actions |
common
Package common code
|
Package common code |
shell/bash
Package bash provides bash completion
|
Package bash provides bash completion |
shell/bash_ble
Package bash_ble provides bash-ble completion
|
Package bash_ble provides bash-ble completion |
shell/elvish
Package elvish provides elvish completion
|
Package elvish provides elvish completion |
shell/export
Package export provides command structure export
|
Package export provides command structure export |
shell/fish
Package fish provides fish completion
|
Package fish provides fish completion |
shell/ion
Package ion provides Ion completion
|
Package ion provides Ion completion |
shell/nushell
Package nushell provides Nushell completion
|
Package nushell provides Nushell completion |
shell/oil
Package oil provides Oil completion
|
Package oil provides Oil completion |
shell/powershell
Package powershell provides powershell completion
|
Package powershell provides powershell completion |
shell/tcsh
Package tcsh provides tcsh completion
|
Package tcsh provides tcsh completion |
shell/xonsh
Package xonsh provides Xonsh completion
|
Package xonsh provides Xonsh completion |
shell/zsh
Package zsh provides zsh completion
|
Package zsh provides zsh completion |
uid
Package uid provides unique identifiers
|
Package uid provides unique identifiers |
pkg
|
|
cache
Package cache provides cache keys
|
Package cache provides cache keys |
ps
Package ps provides shell determination by process name
|
Package ps provides shell determination by process name |
style
Package style provide display coloring
|
Package style provide display coloring |
third_party
|
|
github.com/elves/elvish/pkg/cli/lscolors
Package lscolors provides styling of filenames based on file features.
|
Package lscolors provides styling of filenames based on file features. |
github.com/mitchellh/go-ps
ps provides an API for finding and listing processes in a platform-agnostic way.
|
ps provides an API for finding and listing processes in a platform-agnostic way. |
golang.org/x/sys/execabs
Package execabs is a drop-in replacement for os/exec that requires PATH lookups to find absolute paths.
|
Package execabs is a drop-in replacement for os/exec that requires PATH lookups to find absolute paths. |