buffer

package
v0.3.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2026 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Package buffer 提供终端输出缓冲区与解析功能

包含 ANSI 转义序列解析、颜色处理与缓冲区管理

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatSGR

func FormatSGR(params ...int) string

FormatSGR 格式化SGR参数为ANSI序列

func ParseANSI

func ParseANSI(s string) string

ParseANSI 解析ANSI转义序列(辅助函数)

Types

type Attributes

type Attributes uint16

Attributes 表示字符属性

const (
	AttrBold Attributes = 1 << iota
	AttrDim
	AttrItalic
	AttrUnderline
	AttrBlink
	AttrReverse
	AttrHidden
	AttrStrikethrough
)

type Buffer

type Buffer struct {
	// contains filtered or unexported fields
}

Buffer 表示终端缓冲区

func New

func New(rows, cols int) *Buffer

New 创建一个新的终端缓冲区

func (*Buffer) Clear

func (b *Buffer) Clear()

Clear 清空缓冲区

func (*Buffer) GetCell

func (b *Buffer) GetCell(row, col int) (Cell, error)

GetCell 获取指定位置的单元格

func (*Buffer) GetContent

func (b *Buffer) GetContent() string

GetContent 获取整个缓冲区的内容

func (*Buffer) GetCursor

func (b *Buffer) GetCursor() (x, y int)

GetCursor 获取光标位置

func (*Buffer) GetLine

func (b *Buffer) GetLine(row int) (string, error)

GetLine 获取指定行的内容

func (*Buffer) GetSize

func (b *Buffer) GetSize() (rows, cols int)

GetSize 获取缓冲区大小

func (*Buffer) Reader

func (b *Buffer) Reader() io.Reader

Reader 返回一个可以读取缓冲区内容的Reader

func (*Buffer) Resize

func (b *Buffer) Resize(rows, cols int)

Resize 调整缓冲区大小

func (*Buffer) RestoreCursor

func (b *Buffer) RestoreCursor()

RestoreCursor 恢复光标位置

func (*Buffer) SaveCursor

func (b *Buffer) SaveCursor()

SaveCursor 保存光标位置

func (*Buffer) SetCursor

func (b *Buffer) SetCursor(x, y int)

SetCursor 设置光标位置

func (*Buffer) SetScrollRegion

func (b *Buffer) SetScrollRegion(top, bottom int)

SetScrollRegion 设置滚动区域

func (*Buffer) Write

func (b *Buffer) Write(p []byte) (n int, err error)

Write 实现io.Writer接口,处理VT/XTerm序列

func (*Buffer) WriteRune

func (b *Buffer) WriteRune(r rune)

WriteRune 写入一个字符

type Cell

type Cell struct {
	Char  rune
	FG    Color // 前景色
	BG    Color // 背景色
	Attrs Attributes
}

Cell 表示终端中的一个字符单元

type Color

type Color struct {
	R, G, B uint8
}

Color 表示颜色(统一使用RGB true color)

func DefaultBG

func DefaultBG() Color

DefaultBG 返回默认背景色

func DefaultFG

func DefaultFG() Color

DefaultFG 返回默认前景色

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser VT/XTerm 转义序列解析器,将终端输出字节流转换为 Buffer 操作。 状态机使用 4 个状态处理不同种类的转义序列:

stateNormal  - 普通文本内容,直接写入 Buffer
stateEscape  - 收到 ESC (0x1B),等待后续命令字节
stateCSI     - CSI 序列 (ESC [ params... command),最常用的控制序列
stateOSC     - OSC 序列 (ESC ] ... ST/BEL),操作系统命令,暂时忽略

CSI 命令包括光标移动 (A/B/C/D/H/f)、清屏 (J)、清行 (K)、 颜色属性 (m) 以及滚动区域设置 (r) 等终端常用控制指令

func NewParser

func NewParser(buf *Buffer) *Parser

NewParser 创建一个新的解析器

func (*Parser) Write

func (p *Parser) Write(data []byte) (n int, err error)

Write 实现io.Writer接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL