Something went wrong. Try again.
small gleam coding and persistent agent daemon with a detachable cli and a canvas ui forked from okami.mom/albedo
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105package tea
import ( "fmt"
"github.com/charmbracelet/colorprofile" "github.com/charmbracelet/x/ansi")
const ( // defaultFramerate specifies the maximum interval at which we should // update the view. defaultFPS = 60 maxFPS = 120)
// renderer is the interface for Bubble Tea renderers.type renderer interface { // start starts the renderer. start()
// close closes the renderer and flushes any remaining data. close() error
// render renders a frame to the output. render(View)
// flush flushes the renderer's buffer to the output. flush(closing bool) error
// reset resets the renderer's state to its initial state. reset()
// insertAbove inserts unmanaged lines above the renderer. insertAbove(string) error
// setSyncdUpdates sets whether to use synchronized updates. setSyncdUpdates(bool)
// setWidthMethod sets the method for calculating the width of the terminal. setWidthMethod(ansi.Method)
// resize notify the renderer of a terminal resize. resize(int, int)
// setColorProfile sets the color profile. setColorProfile(colorprofile.Profile)
// clearScreen clears the screen. clearScreen()
// writeString writes a string to the renderer's output. writeString(string) (int, error)
// onMouse handles a mouse event. onMouse(MouseMsg) Cmd}
type printLineMessage struct { messageBody string}
// Println prints above the Program. This output is unmanaged by the program and// will persist across renders by the Program.//// Unlike fmt.Println (but similar to log.Println) the message will be print on// its own line.//// If the altscreen is active no output will be printed.func Println(args ...any) Cmd { return func() Msg { return printLineMessage{ messageBody: fmt.Sprint(args...), } }}
// Printf prints above the Program. It takes a format template followed by// values similar to fmt.Printf. This output is unmanaged by the program and// will persist across renders by the Program.//// Unlike fmt.Printf (but similar to log.Printf) the message will be print on// its own line.//// If the altscreen is active no output will be printed.func Printf(template string, args ...any) Cmd { return func() Msg { return printLineMessage{ messageBody: fmt.Sprintf(template, args...), } }}
// encodeCursorStyle returns the integer value for the given cursor style and// blink state.func encodeCursorStyle(style CursorShape, blink bool) int { // We're using the ANSI escape sequence values for cursor styles. // We need to map both [style] and [steady] to the correct value. style = (style * 2) + 1 //nolint:mnd if !blink { style++ } return int(style)}