line

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 13, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DiffMeta

type DiffMeta struct {
	LineKind string // header-old, header-new, hunk, add, remove, context
}

DiffMeta holds diff line metadata.

type FFmpegMeta

type FFmpegMeta struct {
	Frame      int
	Fps        string
	Bitrate    string
	Speed      string
	OutTime    string
	OutTimeUs  int64
	TotalSize  int64
	DupFrames  int
	DropFrames int

	BlockCount int
	Percent    float64
	Ended      bool
	Frozen     bool
}

FFmpegMeta holds the coalesced state of an ffmpeg -progress stream. A single LogLine with TypeFFmpegProgress represents the whole stream — subsequent key=value blocks mutate this meta in place instead of producing new lines, so the progress bar fills up on one row rather than spamming the log.

Ended is set when a `progress=end` block arrives. Frozen is set when the stream is abandoned (non-ffmpeg line arrives before end) — in both cases the line becomes immutable and is treated as any other log entry.

type GoTestMeta

type GoTestMeta struct {
	Action   string // RUN, PAUSE, CONT, NAME, PASS, FAIL, SKIP
	TestName string
	Duration string
	IsPass   bool
	IsFail   bool
	IsSkip   bool
}

GoTestMeta holds parsed Go test metadata.

type JSONMeta

type JSONMeta struct {
	Value   interface{}
	Summary string
	Keys    []string // ordered keys for objects (preserves original order)
	RawJSON []byte   // original JSON bytes (for preserving nested key order)
	Prefix  string   // non-empty for multiline JSON with text before the opening brace
	// Level is the value of the top-level "level" string field if present,
	// lowercased and normalized — used to color the level value inline (red
	// for error, yellow for warn) and to flag the line in the minimap.
	Level string
}

JSONMeta holds parsed JSON metadata.

type LineStub

type LineStub struct {
	RawLen      int
	Type        LineType
	GroupID     int
	GroupHead   bool
	Expandable  bool
	Expanded    bool
	FromStderr  bool
	HasSegments bool // len(Segments) > 0
	HasChildren bool // Children != nil && len(Children) > 0
}

LineStub holds lightweight per-line metadata that stays in memory even when the full LogLine is offloaded to disk. Enough for isHiddenGroupMember, visualRowsForLine fast path, and hot-zone decisions.

func MakeStub

func MakeStub(l *LogLine) LineStub

MakeStub creates a LineStub from a LogLine's current state.

type LineType

type LineType int

LineType classifies a log line.

const (
	TypePlain LineType = iota
	TypeJSON
	TypeTable
	TypeDiff
	TypeGoTestMarker
	TypeGoTestResult
	TypeWarning
	TypeKubeResource
	TypeFFmpegProgress
)

type LogLine

type LogLine struct {
	Raw        string
	Type       LineType
	Segments   []Segment
	Expandable bool
	Expanded   bool
	Children   []*LogLine
	Depth      int
	GroupID    int
	GroupHead  bool
	FromStderr bool
	Meta       interface{}
}

LogLine represents a single line of log output with parsed metadata.

type Segment

type Segment struct {
	Text  string
	Style string // style key referencing styles definitions
}

Segment represents a styled span within a single line.

type Source

type Source int

Source indicates where a line originated.

const (
	SourceStdin  Source = iota // pipe mode
	SourceStdout               // wrapper mode — child's stdout
	SourceStderr               // wrapper mode — child's stderr
)

type TabGap

type TabGap struct {
	Start int
	End   int
}

TabGap marks a single tab's expansion in an expanded line. Start is the first column of the expansion; End is the column where non-whitespace content resumes. Used to carry authoritative column-separator positions from the parser to the renderer when tabs were the original delimiter.

type TableGroupState

type TableGroupState struct {
	ColWidths []int
}

TableGroupState is shared across every row in a tab-delimited table group. ColWidths[i] is the maximum content width observed for cell i across all rows fed so far; the renderer pads each cell to that width so columns align vertically even when individual fields vary in length. Lives on the parser's TableTracker and is pointed to by each row's TableMeta, so new rows that widen a column automatically reflow every previously-rendered row on the next View() tick.

type TableMeta

type TableMeta struct {
	Columns    []int // column start positions
	IsHeader   bool
	TabGaps    []TabGap         // authoritative gap regions when the source used tabs; nil when detected purely from multi-space gaps
	GroupState *TableGroupState // shared max-width tracker for tab-delimited groups; nil for legacy (space-gap) tables
}

TableMeta holds table column metadata.

type WarningMeta

type WarningMeta struct {
	Level string // Warning, Error, FATAL, INFO, DEBUG
}

WarningMeta holds warning/error prefix metadata.

Jump to

Keyboard shortcuts

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