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.