Commited dependencies
This commit is contained in:
88
vendor/github.com/manifoldco/promptui/codes.go
generated
vendored
Normal file
88
vendor/github.com/manifoldco/promptui/codes.go
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
package promptui
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
const esc = "\033["
|
||||
|
||||
type attribute int
|
||||
|
||||
// Foreground weight/decoration attributes.
|
||||
const (
|
||||
reset attribute = iota
|
||||
|
||||
FGBold
|
||||
FGFaint
|
||||
FGItalic
|
||||
FGUnderline
|
||||
)
|
||||
|
||||
// Foreground color attributes
|
||||
const (
|
||||
FGBlack attribute = iota + 30
|
||||
FGRed
|
||||
FGGreen
|
||||
FGYellow
|
||||
FGBlue
|
||||
FGMagenta
|
||||
FGCyan
|
||||
FGWhite
|
||||
)
|
||||
|
||||
// ResetCode is the character code used to reset the terminal formatting
|
||||
var ResetCode = fmt.Sprintf("%s%dm", esc, reset)
|
||||
|
||||
const (
|
||||
hideCursor = esc + "?25l"
|
||||
showCursor = esc + "?25h"
|
||||
clearLine = esc + "2K"
|
||||
)
|
||||
|
||||
// FuncMap defines template helpers for the output. It can be extended as a
|
||||
// regular map.
|
||||
var FuncMap = template.FuncMap{
|
||||
"black": Styler(FGBlack),
|
||||
"red": Styler(FGRed),
|
||||
"green": Styler(FGGreen),
|
||||
"yellow": Styler(FGYellow),
|
||||
"blue": Styler(FGBlue),
|
||||
"magenta": Styler(FGMagenta),
|
||||
"cyan": Styler(FGCyan),
|
||||
"white": Styler(FGWhite),
|
||||
"bold": Styler(FGBold),
|
||||
"faint": Styler(FGFaint),
|
||||
"italic": Styler(FGItalic),
|
||||
"underline": Styler(FGUnderline),
|
||||
}
|
||||
|
||||
func upLine(n uint) string {
|
||||
return movementCode(n, 'A')
|
||||
}
|
||||
|
||||
func movementCode(n uint, code rune) string {
|
||||
return esc + strconv.FormatUint(uint64(n), 10) + string(code)
|
||||
}
|
||||
|
||||
// Styler returns a func that applies the attributes given in the Styler call
|
||||
// to the provided string.
|
||||
func Styler(attrs ...attribute) func(interface{}) string {
|
||||
attrstrs := make([]string, len(attrs))
|
||||
for i, v := range attrs {
|
||||
attrstrs[i] = strconv.Itoa(int(v))
|
||||
}
|
||||
|
||||
seq := strings.Join(attrstrs, ";")
|
||||
|
||||
return func(v interface{}) string {
|
||||
end := ""
|
||||
s, ok := v.(string)
|
||||
if !ok || !strings.HasSuffix(s, ResetCode) {
|
||||
end = ResetCode
|
||||
}
|
||||
return fmt.Sprintf("%s%sm%v%s", esc, seq, v, end)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user