Completions
The Completions module turns a plain description of an Effect CLI command
tree into shell completion scripts for Bash, Zsh, and Fish. It is the
low-level script generation surface used by the unstable CLI package and by
the built-in completions global flag.
Constructors
Generates a shell completion script for a command descriptor.
When to use
Use when you need an installable completion script from an existing
CommandDescriptor.
Details
Dispatches by shell to Bash, Zsh, or Fish generation and returns a static
script string for executableName.
See
- Shell for supported shell names
- CommandDescriptor for the command shape used by completion generation
Signature
declare function generate(executableName: string, shell: Shell, descriptor: CommandDescriptor): stringModels
ArgumentDescriptor interface
Describes a positional argument for completions.
Signature
interface ArgumentDescriptor { readonly description: string | undefined; readonly name: string; readonly required: boolean; readonly type: ArgumentType; readonly variadic: boolean;}ArgumentType type
Describes the supported argument value shapes.
Signature
type ArgumentType = { readonly _tag: "String";} | { readonly _tag: "Integer";} | { readonly _tag: "Float";} | { readonly _tag: "Date";} | { readonly _tag: "Choice"; readonly values: ReadonlyArray<string>;} | { readonly _tag: "Path"; readonly pathType: "file" | "directory" | "either";}CommandDescriptor interface
Describes a command for completion script generation.
Signature
interface CommandDescriptor { readonly arguments: readonly Array<ArgumentDescriptor>; readonly description: string | undefined; readonly flags: readonly Array<FlagDescriptor>; readonly name: string; readonly subcommands: readonly Array<CommandDescriptor>;}FlagDescriptor interface
Describes a command flag for completions.
Signature
interface FlagDescriptor { readonly aliases: readonly Array<string>; readonly description: string | undefined; readonly name: string; readonly type: FlagType;}Describes the supported flag value shapes.
Signature
type FlagType = { readonly _tag: "Boolean";} | { readonly _tag: "String";} | { readonly _tag: "Integer";} | { readonly _tag: "Float";} | { readonly _tag: "Date";} | { readonly _tag: "Choice"; readonly values: ReadonlyArray<string>;} | { readonly _tag: "Path"; readonly pathType: "file" | "directory" | "either";}Shell type used to generate completion scripts.
Signature
type Shell = "bash" | "zsh" | "fish"