Skip to content

Completions.ts

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.

Since v4.0.0



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 const generate: (executableName: string, shell: Shell, descriptor: CommandDescriptor) => string

Source

Since v4.0.0

Describes a positional argument for completions.

Signature

export interface ArgumentDescriptor {
readonly name: string
readonly description: string | undefined
readonly required: boolean
readonly variadic: boolean
readonly type: ArgumentType
}

Source

Since v4.0.0

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" }

Source

Since v4.0.0

Describes a command for completion script generation.

Signature

export interface CommandDescriptor {
readonly name: string
readonly description: string | undefined
readonly flags: ReadonlyArray<FlagDescriptor>
readonly arguments: ReadonlyArray<ArgumentDescriptor>
readonly subcommands: ReadonlyArray<CommandDescriptor>
}

Source

Since v4.0.0

Describes a command flag for completions.

Signature

export interface FlagDescriptor {
readonly name: string
readonly aliases: ReadonlyArray<string>
readonly description: string | undefined
readonly type: FlagType
}

Source

Since v4.0.0

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" }

Source

Since v4.0.0

Shell type used to generate completion scripts.

Signature

type Shell = "bash" | "zsh" | "fish"

Source

Since v4.0.0