Documentation
¶
Index ¶
- type LineFragment
- type WrapEngine
- func (we *WrapEngine) GetFragments(logLineIdx int) []LineFragment
- func (we *WrapEngine) GetLogLineAtVisualRow(visualRow int) (logLineIdx int, fragIdx int)
- func (we *WrapEngine) GetRowOffset(logLineIdx int) int
- func (we *WrapEngine) GetTotalVisualRows() int
- func (we *WrapEngine) InvalidateCache()
- func (we *WrapEngine) InvalidateFrom(logLineIdx int)
- func (we *WrapEngine) LogicalToVisual(byteOffset int) (visualRow, visualCol int)
- func (we *WrapEngine) SetPointers(pt *piecetable.PieceTable, li *piecetable.LineIndex)
- func (we *WrapEngine) SetTabSize(size int)
- func (we *WrapEngine) SetWidth(width int)
- func (we *WrapEngine) ToggleWrap(wrap bool)
- func (we *WrapEngine) VisualToLogical(visualRow, visualCol int) int
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LineFragment ¶
type LineFragment struct {
LogicalLineIdx int // Номер оригинальной строки (до \n)
ByteOffsetStart int // Смещение начала фрагмента (от начала всего файла/буфера)
ByteOffsetEnd int // Смещение конца фрагмента
VisualWidth int // Ширина фрагмента в колонках терминала (учитывая CJK)
}
LineFragment описывает один визуальный кусок логической строки после свертки.
type WrapEngine ¶
type WrapEngine struct {
// contains filtered or unexported fields
}
WrapEngine отвечает за вычисление визуальной разметки текста.
func NewWrapEngine ¶
func NewWrapEngine(pt *piecetable.PieceTable, li *piecetable.LineIndex) *WrapEngine
func (*WrapEngine) GetFragments ¶
func (we *WrapEngine) GetFragments(logLineIdx int) []LineFragment
GetFragments возвращает визуальные фрагменты для одной логической строки.
func (*WrapEngine) GetLogLineAtVisualRow ¶
func (we *WrapEngine) GetLogLineAtVisualRow(visualRow int) (logLineIdx int, fragIdx int)
GetLogLineAtVisualRow переводит абсолютный индекс визуальной строки в индекс логической строки и порядковый номер фрагмента внутри неё.
func (*WrapEngine) GetRowOffset ¶
func (we *WrapEngine) GetRowOffset(logLineIdx int) int
GetRowOffset возвращает индекс первой визуальной строки для данной логической строки.
func (*WrapEngine) GetTotalVisualRows ¶
func (we *WrapEngine) GetTotalVisualRows() int
GetTotalVisualRows возвращает общее количество визуальных строк в документе.
func (*WrapEngine) InvalidateCache ¶
func (we *WrapEngine) InvalidateCache()
InvalidateCache сбрасывает кэш фрагментов.
func (*WrapEngine) InvalidateFrom ¶
func (we *WrapEngine) InvalidateFrom(logLineIdx int)
func (*WrapEngine) LogicalToVisual ¶
func (we *WrapEngine) LogicalToVisual(byteOffset int) (visualRow, visualCol int)
LogicalToVisual переводит байтовый оффсет в документе в (строка, колонка) на экране.
func (*WrapEngine) SetPointers ¶
func (we *WrapEngine) SetPointers(pt *piecetable.PieceTable, li *piecetable.LineIndex)
func (*WrapEngine) SetTabSize ¶
func (we *WrapEngine) SetTabSize(size int)
func (*WrapEngine) SetWidth ¶
func (we *WrapEngine) SetWidth(width int)
SetWidth устанавливает ширину для свертки. При изменении сбрасывает кэш.
func (*WrapEngine) ToggleWrap ¶
func (we *WrapEngine) ToggleWrap(wrap bool)
ToggleWrap включает/выключает перенос по словам.
func (*WrapEngine) VisualToLogical ¶
func (we *WrapEngine) VisualToLogical(visualRow, visualCol int) int
VisualToLogical переводит (строка, колонка) на экране в байтовый оффсет документа.