Documentation ¶
Overview ¶
Package confirmation implements prompt for a binary confirmation such as a yes/no question. It also offers customizable appreance and a customizable key map.
Index ¶
Constants ¶
const ( // DefaultTemplate defines the default appearance of the text input and can // be copied as a starting point for a custom template. DefaultTemplate = TemplateArrow // DefaultResultTemplate defines the default appearance with which the // finale result of the prompt is presented. DefaultResultTemplate = ResultTemplateArrow )
const ResultTemplateArrow = `` /* 135-byte string literal not displayed */
ResultTemplateArrow is the ResultTemplate that matches TemplateArrow.
const ResultTemplateYN = `` /* 173-byte string literal not displayed */
ResultTemplateYN is the ResultTemplate that matches TemplateYN.
const TemplateArrow = `` /* 197-byte string literal not displayed */
TemplateArrow is a template where the current choice is indicated by an arrow.
const TemplateYN = `` /* 190-byte string literal not displayed */
TemplateYN is a classic template with ja [yn] indicator where the current value is capitalized and bold.
Variables ¶
var ( // Yes is a possible value of the confirmation prompt that corresponds to // true. Yes = Value(&yes) // No is a possible value of the confirmation prompt that corresponds to // false. No = Value(&no) // Undecided is a possible value of the confirmation prompt that is used // when neither Yes nor No are selected. Undecided = Value(nil) )
Functions ¶
This section is empty.
Types ¶
type Confirmation ¶
type Confirmation struct { // Prompt holds the question. Prompt string // DefaultValue decides if a value should already be selected at startup. By // default it is Undecided but it can be set to Yes (corresponds to true) // and No (corresponds to false). DefaultValue Value // Template holds the display template. A custom template can be used to // completely customize the appearance of the text input. If empty, the // DefaultTemplate is used. The following variables and functions are // available: // // * Prompt string: The configured prompt. // * YesSelected bool: Whether or not Yes is the currently selected // value. // * NoSelected bool: Whether or not No is the currently selected value. // * Undecided bool: Whether or not Undecided is the currently selected // value. // * DefaultYes bool: Whether or not Yes is confiured as default value. // * DefaultNo bool: Whether or not No is confiured as default value. // * DefaultUndecided bool: Whether or not Undecided is confiured as // default value. // * TerminalWidth int: The width of the terminal. // * promptkit.UtilFuncMap: Handy helper functions. // * termenv TemplateFuncs (see https://github.com/muesli/termenv). // * The functions specified in ExtendedTemplateFuncs. Template string // ResultTemplate is rendered as soon as a input has been confirmed. // It is intended to permanently indicate the result of the prompt when the // input itself has disappeared. This template is only rendered in the Run() // method and NOT when the text input is used as a model. The following // variables and functions are available: // // * FinalValue bool: The final value of the confirmation. // * FinalValue string: The final value's string representation ("true" // or "false"). // * Prompt string: The configured prompt. // * DefaultYes bool: Whether or not Yes is confiured as default value. // * DefaultNo bool: Whether or not No is confiured as default value. // * DefaultUndecided bool: Whether or not Undecided is confiured as // default value. // * TerminalWidth int: The width of the terminal. // * promptkit.UtilFuncMap: Handy helper functions. // * termenv TemplateFuncs (see https://github.com/muesli/termenv). // * The functions specified in ExtendedTemplateFuncs. ResultTemplate string // ExtendedTemplateFuncs can be used to add additional functions to the // evaluation scope of the templates. ExtendedTemplateFuncs template.FuncMap // KeyMap determines with which keys the confirmation prompt is controlled. // By default, DefaultKeyMap is used. KeyMap *KeyMap // WrapMode decides which way the prompt view is wrapped if it does not fit // the terminal. It can be a WrapMode provided by promptkit or a custom // function. By default it is promptkit.WordWrap. It can also be nil which // disables wrapping and likely causes output glitches. WrapMode promptkit.WrapMode // Output is the output writer, by default os.Stdout is used. Output io.Writer // Input is the input reader, by default, os.Stdin is used. Input io.Reader // ColorProfile determines how colors are rendered. By default, the terminal // is queried. ColorProfile termenv.Profile }
Confirmation represents a configurable confirmation prompt.
func New ¶
func New(prompt string, defaultValue Value) *Confirmation
New creates a new text input. If the default value is nil it is equivalent to Undecided. See the Confirmation properties for more documentation.
func (*Confirmation) RunPrompt ¶
func (c *Confirmation) RunPrompt() (bool, error)
RunPrompt executes the confirmation prompt.
type KeyMap ¶
type KeyMap struct { Yes []string No []string SelectYes []string SelectNo []string Toggle []string Submit []string Abort []string }
KeyMap defines the keys that trigger certain actions.
func NewDefaultKeyMap ¶
func NewDefaultKeyMap() *KeyMap
NewDefaultKeyMap returns a KeyMap with sensible default key mappings that can also be used as a starting point for customization.
type Model ¶
type Model struct { *Confirmation // Err holds errors that may occur during the execution of // the confirmation prompt. Err error // MaxWidth limits the width of the view using the Confirmation's WrapMode. MaxWidth int // contains filtered or unexported fields }
Model implements the bubbletea.Model for a confirmation prompt.
func NewModel ¶
func NewModel(confirmation *Confirmation) *Model
NewModel returns a new model based on the provided confirmation prompt.