figspec

package
v1.23.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// FigGenListEnvironments generates suggestions from available azd environments
	FigGenListEnvironments = "azdGenerators.listEnvironments"

	// FigGenListEnvironmentVariables generates suggestions from environment variables
	FigGenListEnvironmentVariables = "azdGenerators.listEnvironmentVariables"

	// FigGenListTemplates generates suggestions from available azd templates
	FigGenListTemplates = "azdGenerators.listTemplates"

	// FigGenListTemplateTags generates suggestions from all available template tags
	FigGenListTemplateTags = "azdGenerators.listTemplateTags"

	// FigGenListTemplatesFiltered generates suggestions from templates filtered by --filter flag
	FigGenListTemplatesFiltered = "azdGenerators.listTemplatesFiltered"

	// FigGenListExtensions generates suggestions from all available extensions
	FigGenListExtensions = "azdGenerators.listExtensions"

	// FigGenListInstalledExtensions generates suggestions from installed extensions only
	FigGenListInstalledExtensions = "azdGenerators.listInstalledExtensions"

	// FigGenListConfigKeys generates suggestions from available azd config keys
	FigGenListConfigKeys = "azdGenerators.listConfigKeys"
)

Fig generator names used for dynamic autocomplete suggestions. These constants map to the TypeScript generator implementations defined in resources/figspec-generators.ts. The constant names should match the keys in the azdGenerators object (e.g., FigGenListEnvironments -> listEnvironments).

Variables

This section is empty.

Functions

This section is empty.

Types

type Arg

type Arg struct {
	Name        string
	Description string
	IsOptional  bool
	Suggestions []string
	Generator   string
	Template    string
}

Arg represents an argument in the Fig spec

type CommandContext

type CommandContext struct {
	Command     *cobra.Command
	CommandPath string
	Parent      *CommandContext
}

CommandContext contains information about a command for custom processing

type CustomArgsProvider

type CustomArgsProvider interface {
	// GetCommandArgs returns custom argument specifications for a command if applicable
	// Returns nil if no custom args are needed (default parsing will be used)
	GetCommandArgs(ctx *CommandContext) []Arg
}

CustomArgsProvider provides custom argument specifications for specific commands

type CustomFlagArgsProvider

type CustomFlagArgsProvider interface {
	// GetFlagArgs returns custom argument specification for a flag if applicable
	// Returns nil if no custom args are needed (default parsing will be used)
	GetFlagArgs(ctx *FlagContext) *Arg
}

CustomFlagArgsProvider provides custom argument specifications for specific flags

type CustomGeneratorProvider

type CustomGeneratorProvider interface {
	// GetCommandArgGenerator returns a generator name for a specific command argument if applicable
	// argName is the name of the argument extracted from the command's Use field
	// Returns empty string if no custom generator is needed
	GetCommandArgGenerator(ctx *CommandContext, argName string) string

	// GetFlagGenerator returns a generator name for a flag's argument if applicable
	// Returns empty string if no custom generator is needed
	GetFlagGenerator(ctx *FlagContext) string
}

CustomGeneratorProvider provides custom generator names for specific arguments

type CustomSuggestionProvider

type CustomSuggestionProvider interface {
	// GetSuggestions returns custom suggestions for a flag if applicable
	// Returns nil if no custom suggestions are needed
	GetSuggestions(ctx *FlagContext) []string
}

CustomSuggestionProvider provides custom suggestions for specific flags

type Customizations

type Customizations struct{}

azd-specific customizations for Fig spec generation

func (*Customizations) GetCommandArgGenerator

func (c *Customizations) GetCommandArgGenerator(ctx *CommandContext, argName string) string

GetCommandArgGenerator returns the Fig generator name for dynamically completing command arguments

func (*Customizations) GetCommandArgs

func (c *Customizations) GetCommandArgs(ctx *CommandContext) []Arg

GetCommandArgs returns custom argument specifications for commands with complex arg patterns

func (*Customizations) GetFlagArgs

func (c *Customizations) GetFlagArgs(ctx *FlagContext) *Arg

GetFlagArgs returns custom argument names/descriptions for flags (e.g., "image-tag" instead of "from-package")

func (*Customizations) GetFlagGenerator

func (c *Customizations) GetFlagGenerator(ctx *FlagContext) string

GetFlagGenerator returns the Fig generator name for dynamically completing flag arguments

func (*Customizations) GetSuggestions

func (c *Customizations) GetSuggestions(ctx *FlagContext) []string

GetSuggestions returns static suggestion values for flags that accept a fixed set of options

type ExtensionMetadataProvider

type ExtensionMetadataProvider interface {
	// HasMetadataCapability checks if the extension has the metadata capability
	HasMetadataCapability(extensionId string) bool
	// LoadMetadata loads the cached metadata for an extension by its ID
	LoadMetadata(extensionId string) (*extensions.ExtensionCommandMetadata, error)
}

ExtensionMetadataProvider provides extension metadata for generating figspec completions

type FlagContext

type FlagContext struct {
	Flag        *pflag.Flag
	CommandPath string
}

FlagContext contains information about a flag for custom processing

type Option

type Option struct {
	Name         []string
	Description  string
	Args         []Arg
	IsPersistent bool
	IsRepeatable bool
	IsRequired   bool
	IsDangerous  bool
	Hidden       bool
}

Option represents a flag/option in the Fig spec

type Spec

type Spec struct {
	Name        string
	Description string
	Subcommands []Subcommand
	Options     []Option
	Args        []Arg
}

Spec represents a Fig autocomplete specification

func (*Spec) ToTypeScript

func (s *Spec) ToTypeScript() (string, error)

ToTypeScript converts the spec to TypeScript code

type SpecBuilder

type SpecBuilder struct {
	// contains filtered or unexported fields
}

SpecBuilder builds Fig autocomplete specifications from Cobra commands. Note: This is different from Fig's concept of "generators" which are dynamic completion functions.

func NewSpecBuilder

func NewSpecBuilder(includeHidden bool) *SpecBuilder

NewSpecBuilder creates a new Fig spec builder

func (*SpecBuilder) BuildSpec

func (sb *SpecBuilder) BuildSpec(root *cobra.Command) *Spec

BuildSpec generates a Fig spec from a Cobra root command

func (*SpecBuilder) WithExtensionMetadata

func (sb *SpecBuilder) WithExtensionMetadata(provider ExtensionMetadataProvider) *SpecBuilder

WithExtensionMetadata sets the extension metadata provider for the builder. When set, the builder will use extension metadata to generate full command trees for extensions that have the metadata capability.

type Subcommand

type Subcommand struct {
	Name        []string
	Description string
	Subcommands []Subcommand
	Options     []Option
	Args        []Arg
	Hidden      bool
}

Subcommand represents a subcommand in the Fig spec

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL