| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package prompt
- import "sync"
- var (
- consoleWriterMu sync.Mutex
- consoleWriter ConsoleWriter
- )
- func registerConsoleWriter(f ConsoleWriter) {
- consoleWriterMu.Lock()
- defer consoleWriterMu.Unlock()
- consoleWriter = f
- }
- // DisplayAttribute represents display attributes like Blinking, Bold, Italic and so on.
- type DisplayAttribute int
- const (
- // DisplayReset reset all display attributes.
- DisplayReset DisplayAttribute = iota
- // DisplayBold set bold or increases intensity.
- DisplayBold
- // DisplayLowIntensity decreases intensity. Not widely supported.
- DisplayLowIntensity
- // DisplayItalic set italic. Not widely supported.
- DisplayItalic
- // DisplayUnderline set underline
- DisplayUnderline
- // DisplayBlink set blink (less than 150 per minute).
- DisplayBlink
- // DisplayRapidBlink set blink (more than 150 per minute). Not widely supported.
- DisplayRapidBlink
- // DisplayReverse swap foreground and background colors.
- DisplayReverse
- // DisplayInvisible set invisible. Not widely supported.
- DisplayInvisible
- // DisplayCrossedOut set characters legible, but marked for deletion. Not widely supported.
- DisplayCrossedOut
- // DisplayDefaultFont set primary(default) font
- DisplayDefaultFont
- )
- // Color represents color on terminal.
- type Color int
- const (
- // DefaultColor represents a default color.
- DefaultColor Color = iota
- // Low intensity
- // Black represents a black.
- Black
- // DarkRed represents a dark red.
- DarkRed
- // DarkGreen represents a dark green.
- DarkGreen
- // Brown represents a brown.
- Brown
- // DarkBlue represents a dark blue.
- DarkBlue
- // Purple represents a purple.
- Purple
- // Cyan represents a cyan.
- Cyan
- // LightGray represents a light gray.
- LightGray
- // High intensity
- // DarkGray represents a dark gray.
- DarkGray
- // Red represents a red.
- Red
- // Green represents a green.
- Green
- // Yellow represents a yellow.
- Yellow
- // Blue represents a blue.
- Blue
- // Fuchsia represents a fuchsia.
- Fuchsia
- // Turquoise represents a turquoise.
- Turquoise
- // White represents a white.
- White
- )
- // ConsoleWriter is an interface to abstract output layer.
- type ConsoleWriter interface {
- /* Write */
- // WriteRaw to write raw byte array.
- WriteRaw(data []byte)
- // Write to write safety byte array by removing control sequences.
- Write(data []byte)
- // WriteStr to write raw string.
- WriteRawStr(data string)
- // WriteStr to write safety string by removing control sequences.
- WriteStr(data string)
- // Flush to flush buffer.
- Flush() error
- /* Erasing */
- // EraseScreen erases the screen with the background colour and moves the cursor to home.
- EraseScreen()
- // EraseUp erases the screen from the current line up to the top of the screen.
- EraseUp()
- // EraseDown erases the screen from the current line down to the bottom of the screen.
- EraseDown()
- // EraseStartOfLine erases from the current cursor position to the start of the current line.
- EraseStartOfLine()
- // EraseEndOfLine erases from the current cursor position to the end of the current line.
- EraseEndOfLine()
- // EraseLine erases the entire current line.
- EraseLine()
- /* Cursor */
- // ShowCursor stops blinking cursor and show.
- ShowCursor()
- // HideCursor hides cursor.
- HideCursor()
- // CursorGoTo sets the cursor position where subsequent text will begin.
- CursorGoTo(row, col int)
- // CursorUp moves the cursor up by 'n' rows; the default count is 1.
- CursorUp(n int)
- // CursorDown moves the cursor down by 'n' rows; the default count is 1.
- CursorDown(n int)
- // CursorForward moves the cursor forward by 'n' columns; the default count is 1.
- CursorForward(n int)
- // CursorBackward moves the cursor backward by 'n' columns; the default count is 1.
- CursorBackward(n int)
- // AskForCPR asks for a cursor position report (CPR).
- AskForCPR()
- // SaveCursor saves current cursor position.
- SaveCursor()
- // UnSaveCursor restores cursor position after a Save Cursor.
- UnSaveCursor()
- /* Scrolling */
- // ScrollDown scrolls display down one line.
- ScrollDown()
- // ScrollUp scroll display up one line.
- ScrollUp()
- /* Title */
- // SetTitle sets a title of terminal window.
- SetTitle(title string)
- // ClearTitle clears a title of terminal window.
- ClearTitle()
- /* Font */
- // SetColor sets text and background colors. and specify whether text is bold.
- SetColor(fg, bg Color, bold bool)
- }
|