forked from toolshed/abra
chore: make deps, go mod vendor
This commit is contained in:
105
vendor/github.com/charmbracelet/x/ansi/ctrl.go
generated
vendored
105
vendor/github.com/charmbracelet/x/ansi/ctrl.go
generated
vendored
@ -1,12 +1,61 @@
|
||||
package ansi
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// RequestNameVersion (XTVERSION) is a control sequence that requests the
|
||||
// terminal's name and version. It responds with a DSR sequence identifying the
|
||||
// terminal.
|
||||
//
|
||||
// CSI > 0 q
|
||||
// DCS > | text ST
|
||||
//
|
||||
// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys
|
||||
const (
|
||||
RequestNameVersion = "\x1b[>0q"
|
||||
XTVERSION = RequestNameVersion
|
||||
)
|
||||
|
||||
// RequestXTVersion is a control sequence that requests the terminal's XTVERSION. It responds with a DSR sequence identifying the version.
|
||||
//
|
||||
// CSI > Ps q
|
||||
// DCS > | text ST
|
||||
//
|
||||
// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys
|
||||
const RequestXTVersion = "\x1b[>0q"
|
||||
// Deprecated: use [RequestNameVersion] instead.
|
||||
const RequestXTVersion = RequestNameVersion
|
||||
|
||||
// PrimaryDeviceAttributes (DA1) is a control sequence that reports the
|
||||
// terminal's primary device attributes.
|
||||
//
|
||||
// CSI c
|
||||
// CSI 0 c
|
||||
// CSI ? Ps ; ... c
|
||||
//
|
||||
// If no attributes are given, or if the attribute is 0, this function returns
|
||||
// the request sequence. Otherwise, it returns the response sequence.
|
||||
//
|
||||
// See https://vt100.net/docs/vt510-rm/DA1.html
|
||||
func PrimaryDeviceAttributes(attrs ...int) string {
|
||||
if len(attrs) == 0 {
|
||||
return "\x1b[c"
|
||||
} else if len(attrs) == 1 && attrs[0] == 0 {
|
||||
return "\x1b[0c"
|
||||
}
|
||||
|
||||
as := make([]string, len(attrs))
|
||||
for i, a := range attrs {
|
||||
as[i] = strconv.Itoa(a)
|
||||
}
|
||||
return "\x1b[?" + strings.Join(as, ";") + "c"
|
||||
}
|
||||
|
||||
// DA1 is an alias for [PrimaryDeviceAttributes].
|
||||
func DA1(attrs ...int) string {
|
||||
return PrimaryDeviceAttributes(attrs...)
|
||||
}
|
||||
|
||||
// RequestPrimaryDeviceAttributes is a control sequence that requests the
|
||||
// terminal's primary device attributes (DA1).
|
||||
@ -15,3 +64,57 @@ const RequestXTVersion = "\x1b[>0q"
|
||||
//
|
||||
// See https://vt100.net/docs/vt510-rm/DA1.html
|
||||
const RequestPrimaryDeviceAttributes = "\x1b[c"
|
||||
|
||||
// SecondaryDeviceAttributes (DA2) is a control sequence that reports the
|
||||
// terminal's secondary device attributes.
|
||||
//
|
||||
// CSI > c
|
||||
// CSI > 0 c
|
||||
// CSI > Ps ; ... c
|
||||
//
|
||||
// See https://vt100.net/docs/vt510-rm/DA2.html
|
||||
func SecondaryDeviceAttributes(attrs ...int) string {
|
||||
if len(attrs) == 0 {
|
||||
return "\x1b[>c"
|
||||
}
|
||||
|
||||
as := make([]string, len(attrs))
|
||||
for i, a := range attrs {
|
||||
as[i] = strconv.Itoa(a)
|
||||
}
|
||||
return "\x1b[>" + strings.Join(as, ";") + "c"
|
||||
}
|
||||
|
||||
// DA2 is an alias for [SecondaryDeviceAttributes].
|
||||
func DA2(attrs ...int) string {
|
||||
return SecondaryDeviceAttributes(attrs...)
|
||||
}
|
||||
|
||||
// TertiaryDeviceAttributes (DA3) is a control sequence that reports the
|
||||
// terminal's tertiary device attributes.
|
||||
//
|
||||
// CSI = c
|
||||
// CSI = 0 c
|
||||
// DCS ! | Text ST
|
||||
//
|
||||
// Where Text is the unit ID for the terminal.
|
||||
//
|
||||
// If no unit ID is given, or if the unit ID is 0, this function returns the
|
||||
// request sequence. Otherwise, it returns the response sequence.
|
||||
//
|
||||
// See https://vt100.net/docs/vt510-rm/DA3.html
|
||||
func TertiaryDeviceAttributes(unitID string) string {
|
||||
switch unitID {
|
||||
case "":
|
||||
return "\x1b[=c"
|
||||
case "0":
|
||||
return "\x1b[=0c"
|
||||
}
|
||||
|
||||
return "\x1bP!|" + unitID + "\x1b\\"
|
||||
}
|
||||
|
||||
// DA3 is an alias for [TertiaryDeviceAttributes].
|
||||
func DA3(unitID string) string {
|
||||
return TertiaryDeviceAttributes(unitID)
|
||||
}
|
||||
|
Reference in New Issue
Block a user