model

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Mode

type Mode int

Mode represents the current application mode

const (
	ModeNormal Mode = iota
	ModeSearch
)

type Model

type Model struct {
	// VCD data
	VCD      *vcd.VCDFile
	Signals  []*vcd.SignalData // Sorted signal list
	Filename string

	// Viewport state
	TimeStart   uint64  // Start time of visible window
	TimeEnd     uint64  // End time of visible window
	Zoom        float64 // Zoom level (1.0 = default)
	TimePerChar uint64  // Time units per character

	// Cursor state
	CursorTime    uint64 // Current cursor position in time
	CursorVisible bool

	// Selection state
	SelectedSignal int // Index of selected signal

	// Signal visibility
	SignalVisible []bool // 各信号の表示/非表示(Signalsと同じ長さ)
	SelectMode    bool   // true: 全信号選択モード

	// Display state
	Width           int // Terminal width
	Height          int // Terminal height
	SignalPaneWidth int // Width of signal name pane

	// Mode
	Mode         Mode
	SearchQuery  string
	SearchResult []int // Indices of matching signals

	// Scroll state for signal list
	SignalScrollOffset int

	// File watching state
	WatchError     string
	ReloadError    string
	LastReloadTime time.Time
}

Model is the main application state

func NewModel

func NewModel(vcdFile *vcd.VCDFile, filename string) Model

NewModel creates a new Model with VCD data

func (*Model) DisplaySignalCount

func (m *Model) DisplaySignalCount() int

DisplaySignalCount returns the number of signals to display (depends on mode)

func (*Model) EnterSelectMode

func (m *Model) EnterSelectMode()

EnterSelectMode enters signal selection mode

func (*Model) ExitSelectMode

func (m *Model) ExitSelectMode()

ExitSelectMode exits signal selection mode

func (Model) ExtractSignalNames

func (m Model) ExtractSignalNames() []string

ExtractSignalNames extracts signal names for state preservation

func (*Model) GlobalIndexToVisible

func (m *Model) GlobalIndexToVisible(globalIdx int) int

GlobalIndexToVisible converts a global signal index to visible index (-1 if not visible)

func (*Model) GoToEnd

func (m *Model) GoToEnd()

GoToEnd moves to end time

func (*Model) GoToStart

func (m *Model) GoToStart()

GoToStart moves to time 0

func (Model) Init

func (m Model) Init() tea.Cmd

Init implements tea.Model

func (*Model) MoveSignalDown

func (m *Model) MoveSignalDown()

MoveSignalDown moves selection down

func (*Model) MoveSignalUp

func (m *Model) MoveSignalUp()

MoveSignalUp moves selection up

func (*Model) NextChange

func (m *Model) NextChange()

NextChange moves cursor to next value change of selected signal

func (*Model) PrevChange

func (m *Model) PrevChange()

PrevChange moves cursor to previous value change of selected signal

func (*Model) ResetZoom

func (m *Model) ResetZoom()

ResetZoom shows the entire waveform

func (*Model) RestoreViewState

func (m *Model) RestoreViewState(state ViewState)

RestoreViewState restores the view state after VCD reload

func (*Model) ScrollTimeLeft

func (m *Model) ScrollTimeLeft(amount uint64)

ScrollTimeLeft scrolls the time window left

func (*Model) ScrollTimeRight

func (m *Model) ScrollTimeRight(amount uint64)

ScrollTimeRight scrolls the time window right

func (*Model) Search

func (m *Model) Search(query string)

Search performs a signal name search

func (Model) SelectedSignalData

func (m Model) SelectedSignalData() *vcd.SignalData

SelectedSignalData returns the currently selected signal data

func (*Model) SetAllSignalsVisible

func (m *Model) SetAllSignalsVisible(visible bool)

SetAllSignalsVisible sets visibility for all signals

func (*Model) ToggleSelectMode

func (m *Model) ToggleSelectMode()

ToggleSelectMode toggles signal selection mode

func (*Model) ToggleSignalVisibility

func (m *Model) ToggleSignalVisibility()

ToggleSignalVisibility toggles visibility of the selected signal

func (*Model) VisibleIndexToGlobal

func (m *Model) VisibleIndexToGlobal(visibleIdx int) int

VisibleIndexToGlobal converts a visible signal index to global index

func (Model) VisibleSignalCount

func (m Model) VisibleSignalCount() int

VisibleSignalCount returns the number of signals that can be displayed

func (*Model) VisibleSignalIndices

func (m *Model) VisibleSignalIndices() []int

VisibleSignalIndices returns indices of visible signals

func (Model) WaveformWidth

func (m Model) WaveformWidth() int

WaveformWidth returns the width available for waveform display

func (*Model) ZoomIn

func (m *Model) ZoomIn()

ZoomIn increases zoom level

func (*Model) ZoomOut

func (m *Model) ZoomOut()

ZoomOut decreases zoom level

type ViewState

type ViewState struct {
	CursorTime         uint64
	SelectedSignal     int
	TimeStart          uint64
	TimeEnd            uint64
	Zoom               float64
	SignalScrollOffset int
	SelectMode         bool
	SignalVisible      []bool   // 信号可視性を保持
	SignalNames        []string // 名前でマッチング用
}

ViewState holds the current view state for restoration after reload

Jump to

Keyboard shortcuts

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