oviewer

package
v0.51.1 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 47 Imported by: 2

Documentation

Overview

Package oviewer provides a pager for terminals.

oviewer displays the contents of the file or reader etc... on the current terminal screen. After running a Run, oviewer does not return until the user finishes running. So if you want to do something in concurrent, you need to use goroutine.

There is also a simple usage example below: https://github.com/noborus/mdviewer/

package main

import (
    "github.com/noborus/ov/oviewer"
)

func main() {
    ov, err := oviewer.Open("main.go")
    if err != nil {
      panic(err)
    }
    if err := ov.Run(); err != nil {
      panic(err)
    }
}

Index

Examples

Constants

View Source
const (
	// Unspecified is the default alignment.
	Unspecified specifiedAlign = iota
	// RightAlign is the right alignment.
	RightAlign
	// LeftAlign is the left alignment.
	LeftAlign
)
View Source
const (
	// Colors256 is the index of the 256 color. 8-bit colors. 0-255.
	Colors256 = 5
	// ColorsRGB is the index of the RGB color. 24-bit colors. r:0-255 g:0-255 b:0-255.
	ColorsRGB = 2
)
View Source
const (
	DocNormal = iota
	DocHelp
	DocLog
	DocFilter
)

document type.

View Source
const (
	COLS = 80
	ROWS = 24
)

virtual terminal size.

View Source
const DefaultStatusLine = 1

DefaultStatusLine is the number of lines in the status line.

View Source
const EOFC string = "~"

EOFC is the EOF character.

View Source
const FormFeed = "\f"

FormFeed is the delimiter that separates the sections. The default delimiter that separates single output from watch.

View Source
const MaxWriteLog int = 10

MaxWriteLog is the maximum number of lines to output to the log when the debug flag is enabled.

View Source
const MinStartX = -10

MinStartX is the minimum start position of x.

View Source
const MouseFlags = tcell.MouseDragEvents

MouseFlags represents which events of the mouse should be captured. Set the mode to MouseDragEvents when the mouse is enabled in oviewer. Does not track mouse movements except when dragging.

View Source
const QuitSmallCountDown = 10

QuitSmallCountDown is the countdown to quit if the output fits on one screen. UpdateInterval(50 * time.Millisecond) * 10 = 500ms.

Variables

View Source
var (
	ClickInterval = 500 * time.Millisecond // Double/triple click detection time
	ClickDistance = 2                      // Maximum allowed movement distance (in screen coordinates/cells) for double/triple click detection
)
View Source
var (
	// MemoryLimit is a number that limits the chunks to load into memory.
	MemoryLimit int
	// MemoryLimitFile is a number that limits the chunks loading a file into memory.
	MemoryLimitFile int

	// OverStrikeStyle represents the overstrike style.
	OverStrikeStyle tcell.Style
	// OverLineStyle represents the overline underline style.
	OverLineStyle tcell.Style
	// SkipExtract is a flag to skip extracting compressed files.
	SkipExtract bool
)
View Source
var (
	// Redirect to standard output.
	//     echo "t" | ov> out
	STDOUTPIPE *os.File
	// Redirects the error output of ov --exec.
	//     ov --exec -- command 2> out
	STDERRPIPE *os.File
)

ov output destination.

View Source
var (
	// ErrOutOfRange indicates that value is out of range.
	ErrOutOfRange = errors.New("value out of range")
	// ErrNotInMemory indicates that value is not in memory.
	ErrNotInMemory = errors.New("value not in memory")
	// ErrFatalCache indicates that the cache value had a fatal error.
	ErrFatalCache = errors.New("fatal cache error")
	// ErrMissingFile indicates that the file does not exist.
	ErrMissingFile = errors.New("missing file")
	// ErrIsDirectory indicates that specify a directory instead of a file.
	ErrIsDirectory = errors.New("is a directory")
	// ErrNotFound indicates not found.
	ErrNotFound = errors.New("not found")
	// ErrNotTerminal indicates that it is not a terminal.
	ErrNotTerminal = errors.New("not a terminal")
	// ErrCancel indicates cancel.
	ErrCancel = errors.New("cancel")
	// ErrInvalidNumber indicates an invalid number.
	ErrInvalidNumber = errors.New("invalid number")
	// ErrFailedKeyBind indicates keybinding failed.
	ErrFailedKeyBind = errors.New("failed to set key bindings")
	// ErrSignalCatch indicates that the signal has been caught.
	ErrSignalCatch = errors.New("signal caught")
	// ErrAlreadyClose indicates that it is already closed.
	ErrAlreadyClose = errors.New("already closed")
	// ErrCannotClose indicates that it cannot be closed.
	ErrCannotClose = errors.New("cannot be closed")
	// ErrRequestClose indicates that the request is to close.
	ErrRequestClose = errors.New("close requested")
	// ErrNoColumn indicates that cursor specified a nonexistent column.
	ErrNoColumn = errors.New("column not found")
	// ErrNoDelimiter indicates that the line containing the delimiter could not be found.
	ErrNoDelimiter = errors.New("delimiter not found")
	// ErrNoMoreSection indicates that the section could not be found.
	ErrNoMoreSection = errors.New("no more sections")
	// ErrOverScreen indicates that the specified screen is out of range.
	ErrOverScreen = errors.New("screen position out of range")
	// ErrOutOfChunk indicates that the specified Chunk is out of range.
	ErrOutOfChunk = errors.New("chunk out of range")
	// ErrNotLoaded indicates that it cannot be loaded.
	ErrNotLoaded = errors.New("not loaded")
	// ErrEOFreached indicates that EOF has been reached.
	ErrEOFreached = errors.New("EOF reached")
	// ErrPreventReload indicates that reload is prevented.
	ErrPreventReload = errors.New("reload prevented")
	// ErrOverChunkLimit indicates that the chunk limit has been exceeded.
	ErrOverChunkLimit = errors.New("chunk limit exceeded")
	// ErrAlreadyLoaded indicates that the chunk already loaded.
	ErrAlreadyLoaded = errors.New("chunk already loaded")
	// ErrEvictedMemory indicates that it has been evicted from memory.
	ErrEvictedMemory = errors.New("evicted from memory")
	// ErrNotAlignMode indicates that it is not an align mode.
	ErrNotAlignMode = errors.New("not in align mode")
	// ErrNoColumnSelected indicates that no column is selected.
	ErrNoColumnSelected = errors.New("no column selected")
	// ErrInvalidSGR indicates that the SGR is invalid.
	ErrInvalidSGR = errors.New("invalid SGR")
	// ErrNotSupport indicates that it is not supported.
	ErrNotSupport = errors.New("not supported")
	// ErrInvalidDocumentNum indicates that the document number is invalid.
	ErrInvalidDocumentNum = errors.New("invalid document number")
	// ErrInvalidModeName indicates that the specified view mode was not found.
	ErrInvalidModeName = errors.New("view mode not found")
	// ErrInvalidRGBColor indicates that the RGB color is invalid.
	ErrInvalidRGBColor = errors.New("invalid RGB color")
	// ErrInvalidKey indicates that the key format is invalid.
	ErrInvalidKey = errors.New("invalid key format")
)
View Source
var ChunkSize = 10000

ChunkSize is the unit of number of lines to split the file.

View Source
var DefaultContent = content{
	// contains filtered or unexported fields
}

DefaultContent is a blank Content.

View Source
var DefaultEditor string

DefaultEditor is the fallback editor to use if no other editor is specified.

View Source
var EOFContent = content{
	// contains filtered or unexported fields
}

EOFContent is EOFC only.

View Source
var Shrink string = "…"

Shrink is a character that represents a shrunk column.

View Source
var ShrinkContent = content{
	// contains filtered or unexported fields
}

ShrinkContent is a content that represents a shrunk column.

View Source
var SpaceContent = content{
	// contains filtered or unexported fields
}

SpaceContent is a space character.

View Source
var UpdateInterval = 50 * time.Millisecond

UpdateInterval is the update interval that calls eventUpdate().

Functions

func ContentsToStr added in v0.9.5

func ContentsToStr(lc contents) (string, widthPos)

ContentsToStr returns a converted string and byte position, as well as the content position conversion table.

func DuplicateKeyBind added in v0.39.0

func DuplicateKeyBind(k KeyBind) string

DuplicateKeyBind returns a string representing duplicate key bindings.

func KeyBindString

func KeyBindString(k KeyBind) string

KeyBindString returns keybind as a string for help.

func ListViewMode added in v0.40.0

func ListViewMode(config Config) []string

ListViewMode returns the list of view modes.

func NewChunk added in v0.15.0

func NewChunk(start int64) *chunk

NewChunk returns chunk.

func NewStore added in v0.30.0

func NewStore() *store

NewStore returns store.

func RangeStyle added in v0.9.0

func RangeStyle(lc contents, start int, end int, s OVStyle)

RangeStyle applies the style to the specified range. Apply style to contents.

func RawStrToContents added in v0.37.0

func RawStrToContents(str string, tabWidth int) contents

RawStrToContents converts a single-line string into a one line of contents. Does not interpret escape sequences. 1 Content matches the characters displayed on the screen.

func SetShrinkContent added in v0.37.0

func SetShrinkContent(shrink string)

SetShrinkContent sets the shrink character.

func SetTcellNewScreen added in v0.43.0

func SetTcellNewScreen(f func() (tcell.Screen, error))

SetTcellNewScreen sets the function to create a new tcell screen. This is used for testing purposes to replace the tcell.NewScreen function. It allows for mocking the screen creation in tests.

func StrToContents added in v0.9.5

func StrToContents(str string, tabWidth int) contents

StrToContents converts a single-line string into a one line of contents. Parse escape sequences, etc. 1 Content matches the characters displayed on the screen.

func ToTcellStyle added in v0.10.0

func ToTcellStyle(s OVStyle) tcell.Style

ToTcellStyle convert from OVStyle to tcell style.

Types

type ClickState added in v0.44.0

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

ClickState holds the state for click detection.

type ClickType added in v0.44.0

type ClickType int

ClickType represents the type of mouse click.

const (
	ClickSingle ClickType = iota
	ClickDouble
	ClickTriple
	ClickExpired // Time expired, should reset state
)

type Command added in v0.20.0

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

Command is the structure of the command.

func NewCommand added in v0.20.0

func NewCommand(args ...string) *Command

NewCommand return the structure of Command.

func (*Command) Exec added in v0.20.0

func (command *Command) Exec() (*Root, error)

Exec return the structure of oviewer.

func (*Command) Reload added in v0.20.0

func (command *Command) Reload() *bufio.Reader

Reload restarts the command.

func (*Command) Wait added in v0.20.0

func (command *Command) Wait()

Wait waits for the command to exit. Wait does not actually `wait` because it is Waiting in the goroutine at the start.

type Compressed added in v0.8.9

type Compressed int

Compressed represents the type of compression.

const (
	// UNCOMPRESSED is an uncompressed format.
	UNCOMPRESSED Compressed = iota
	// GZIP is gzip compressed format.
	GZIP
	// BZIP2 is bzip2 compressed format.
	BZIP2
	// ZSTD is zstd compressed format.
	ZSTD
	// LZ4 is lz4 compressed format.
	LZ4
	// XZ is xz compressed format.
	XZ
)

func (Compressed) String added in v0.8.9

func (c Compressed) String() string

String returns the string representation of the compressed format.

type Config

type Config struct {
	// KeyBinding
	Keybind map[string][]string
	// Mode represents the operation of the customized mode.
	Mode map[string]General
	// ViewMode represents the view mode.
	// ViewMode sets several settings together and can be easily switched.
	ViewMode string
	// Default keybindings. Disabled if the default keybinding is "disable".
	DefaultKeyBind string

	// Prompt is the prompt setting.
	Prompt PromptConfig
	// MinStartX is the minimum value of the start position.
	MinStartX int
	// SidebarMode represents the sidebar mode.
	SidebarMode string
	// SidebarWidth is the width of the sidebar as a string (e.g., "30%", "10").
	SidebarWidth string
	// StyleOverStrike is a style that applies to overstrike.
	StyleOverStrike OVStyle
	// StyleOverLine is a style that applies to overstrike underlines.
	StyleOverLine OVStyle

	// GeneralConfig is the general setting.
	General General
	// helpConfig is the help setting.
	HelpDoc General
	// LogConfig is the log setting.
	LogDoc General
	// BeforeWriteOriginal specifies the number of lines before the current position.
	// 0 is the top of the current screen
	BeforeWriteOriginal int
	// AfterWriteOriginal specifies the number of lines after the current position.
	// 0 specifies the bottom of the screen.
	AfterWriteOriginal int
	// MemoryLimit is a number that limits chunk loading.
	MemoryLimit int
	// MemoryLimitFile is a number that limits the chunks loading a file into memory.
	MemoryLimitFile int
	// DisableMouse indicates whether mouse support is disabled.
	DisableMouse bool

	// IsWriteOnExit indicates whether to write the current screen on exit.
	IsWriteOnExit bool
	// IsWriteOriginal indicates whether the current screen should be written on quit.
	IsWriteOriginal bool
	// QuitSmall indicates whether to quit if the output fits on one screen.
	QuitSmall bool
	// QuitSmallFilter indicates whether to quit if the output fits on one screen and a filter is applied.
	QuitSmallFilter bool
	// CaseSensitive is case-sensitive if true.
	CaseSensitive bool
	// SmartCaseSensitive indicates whether lowercase search should ignore case.
	SmartCaseSensitive bool
	// RegexpSearch indicates whether to use regular expression search.
	RegexpSearch bool
	// Incsearch indicates whether to use incremental search.
	Incsearch bool
	// NotifyEOF specifies the number of times to notify EOF.
	NotifyEOF int

	// ReadWaitTime is the time to wait for reading before starting a search.
	ReadWaitTime time.Duration

	// ClipboardMethod specifies the method to use for copying to the clipboard.
	// Supported values:
	// - "OSC52": Uses the OSC52 escape sequence for clipboard operations. This requires terminal support.
	// - "default": Uses the default clipboard method provided by the system or application.
	// In fact, all other settings are default except for OSC52. In the future, “auto” will be added.
	ClipboardMethod string

	// Editor is the editor command to use for editing files.
	Editor string
	// ShrinkChar specifies the character to display when the column is shrunk.
	ShrinkChar string
	// DisableColumnCycle indicates whether to disable column cycling.
	DisableColumnCycle bool
	// DisableStickYFollow indicates whether to disable sticky follow mode.
	DisableStickyFollow bool
	// SetTerminalTitle indicates whether to set the terminal title to display filename.
	SetTerminalTitle bool
	// Debug indicates whether to enable debug output.
	Debug bool
	// contains filtered or unexported fields
}

Config represents the settings of ov.

func NewConfig added in v0.5.0

func NewConfig() Config

NewConfig return the structure of Config with default values.

type Converter added in v0.37.0

type Converter interface {
	// contains filtered or unexported methods
}

Converter is an interface for converting escape sequences, etc.

type Document

type Document struct {

	// FileName is the file name to display.
	FileName string
	// Caption is an additional caption to display after the file name.
	Caption string

	// RunTimeSettings contains RunTimeSettings settings.
	RunTimeSettings

	// CFormat is a compressed format.
	CFormat Compressed

	// WatchMode indicates if watch mode is enabled.
	WatchMode bool

	// General is the General settings.
	General General
	// contains filtered or unexported fields
}

Document represents a document with various properties and methods for handling file operations, caching, synchronization, and display settings.

func NewDocument

func NewDocument() (*Document, error)

NewDocument creates and initializes a new Document with default settings. It returns a pointer to the Document and an error if the cache initialization fails.

func NewHelp

func NewHelp(k KeyBind) (*Document, error)

NewHelp generates a document for help.

func OpenDocument added in v0.10.1

func OpenDocument(fileName string) (*Document, error)

OpenDocument opens a file specified by fileName and returns a Document. If the fileName is "-", it reads from stdin. It returns an error if the file cannot be opened, is a directory, or if there are issues initializing the Document.

func STDINDocument added in v0.10.1

func STDINDocument() (*Document, error)

STDINDocument creates and returns a Document that reads from stdin. It returns a pointer to the Document and an error if the Document initialization fails.

func (*Document) BackSearch added in v0.20.0

func (m *Document) BackSearch(ctx context.Context, searcher Searcher, chunkNum int, line int) (int, error)

BackSearch searches backward from the specified line.

func (*Document) BackSearchChunk added in v0.34.0

func (m *Document) BackSearchChunk(ctx context.Context, searcher Searcher, chunkNum int, line int) (int, error)

BackSearchChunk searches backward from the specified line.

func (*Document) BackSearchChunkNonMatch added in v0.34.0

func (m *Document) BackSearchChunkNonMatch(ctx context.Context, searcher Searcher, chunkNum int, line int) (int, error)

BackSearchChunkNonMatch returns unmatched line number.

func (*Document) BackSearchLine added in v0.10.1

func (m *Document) BackSearchLine(ctx context.Context, searcher Searcher, lineNum int) (int, error)

BackSearchLine does a backward search on the document and returns a matching line number.

func (*Document) BufEOF

func (m *Document) BufEOF() bool

BufEOF checks if the end of the file (EOF) has been reached in the document buffer. Returns: - A boolean value: true if EOF is reached, false otherwise.

func (*Document) BufEndNum

func (m *Document) BufEndNum() int

BufEndNum return last line number.

func (*Document) BufStartNum added in v0.30.0

func (m *Document) BufStartNum() int

BufStartNum returns the starting line number of the buffer.

func (*Document) ClearCache

func (m *Document) ClearCache()

ClearCache clears the LRU cache of the document. It does not take any parameters and does not return any values.

func (*Document) ControlFile added in v0.20.0

func (m *Document) ControlFile(file *os.File) error

ControlFile controls file read and loads in chunks. ControlFile can be reloaded by file name.

func (*Document) ControlLog added in v0.20.0

func (m *Document) ControlLog() error

ControlLog controls log. ControlLog is only supported reload.

func (*Document) ControlReader added in v0.20.0

func (m *Document) ControlReader(r io.Reader, reload func() *bufio.Reader) error

ControlReader is the controller for io.Reader. Assuming call from Exec. reload executes the argument function.

func (*Document) CurrentLN added in v0.10.0

func (m *Document) CurrentLN() int

CurrentLN returns the currently displayed line number.

func (*Document) Export added in v0.10.0

func (m *Document) Export(w io.Writer, start int, end int) error

Export exports the document in the specified range.

func (*Document) ExportPlain added in v0.42.0

func (m *Document) ExportPlain(w io.Writer, start int, end int) error

ExportPlain exports the document in the specified range without ANSI escape sequences.

func (*Document) GetLine deprecated

func (m *Document) GetLine(n int) string

GetLine returns one line from buffer.

Deprecated: Use Document.LineStr instead.

func (*Document) Line added in v0.20.0

func (m *Document) Line(n int) ([]byte, error)

Line returns one line from buffer.

func (*Document) LineStr added in v0.31.0

func (m *Document) LineStr(n int) (string, error)

LineStr returns one line from buffer.

func (*Document) LineString deprecated added in v0.20.0

func (m *Document) LineString(n int) string

LineString returns one line from the buffer as a string.

Deprecated: This method is deprecated because it does not return an error and may silently ignore failures. Please use Document.LineStr instead, which returns both the string and an error for better error handling.

func (*Document) NewCache

func (m *Document) NewCache() error

NewCache initializes a new LRU cache for the Document. It returns an error if the cache cannot be created.

func (*Document) Search added in v0.20.0

func (m *Document) Search(ctx context.Context, searcher Searcher, chunkNum int, lineNum int) (int, error)

Search searches for the search term and moves to the nearest matching line.

func (*Document) SearchChunk added in v0.34.0

func (m *Document) SearchChunk(ctx context.Context, searcher Searcher, chunkNum int, lineNum int) (int, error)

SearchChunk searches forward from the specified line.

func (*Document) SearchChunkNonMatch added in v0.34.0

func (m *Document) SearchChunkNonMatch(ctx context.Context, searcher Searcher, chunkNum int, lineNum int) (int, error)

SearchChunkNonMatch returns unmatched line number.

func (*Document) SearchLine added in v0.10.1

func (m *Document) SearchLine(ctx context.Context, searcher Searcher, lineNum int) (int, error)

SearchLine searches the document and returns the matching line number.

func (*Document) WaitEOF added in v0.38.0

func (m *Document) WaitEOF()

WaitEOF waits for EOF.

func (*Document) WaitEOFWithTimeout added in v0.41.0

func (m *Document) WaitEOFWithTimeout(timeout time.Duration)

WaitEOFWithTimeout waits for EOF with a timeout. Parameters: - timeout: the duration to wait before timing out.

type Eventer added in v0.13.0

type Eventer interface {
	// Mode returns the input mode.
	Mode() InputMode
	// Prompt returns the prompt string in the input field.
	Prompt() string
	// Confirm returns the event when the input is confirmed.
	Confirm(i string) tcell.Event
	// Up returns strings when the up key is pressed during input.
	Up(i string) string
	// Down returns strings when the down key is pressed during input.
	Down(i string) string
}

Eventer is a generic interface for inputs.

type General added in v0.40.0

type General struct {
	// Converter is the converter name.
	Converter *string
	// Align is the alignment.
	Align *bool
	// Raw is the raw setting.
	Raw *bool
	// Caption is an additional caption to display after the file name.
	Caption *string
	// ColumnDelimiter is a column delimiter.
	ColumnDelimiter *string
	// SectionDelimiter is a section delimiter.
	SectionDelimiter *string
	// Specified string for jumpTarget.
	JumpTarget *string
	// MultiColorWords specifies words to color separated by spaces.
	MultiColorWords *[]string

	// TabWidth is tab stop num.
	TabWidth *int
	// Header is number of header lines to be fixed.
	Header *int
	// VerticalHeader is the number of vertical header lines.
	VerticalHeader *int
	// HeaderColumn is the number of columns from the left to be fixed.
	// If 0 is specified, no columns are fixed.
	HeaderColumn *int
	// SkipLines is the rows to skip.
	SkipLines *int
	// WatchInterval is the watch interval (seconds).
	WatchInterval *int
	// MarkStyleWidth is width to apply the style of the marked line.
	MarkStyleWidth *int
	// SectionStartPosition is a section start position.
	SectionStartPosition *int
	// SectionHeaderNum is the number of lines in the section header.
	SectionHeaderNum *int
	// HScrollWidth is the horizontal scroll width as a string (e.g., "80%", "40").
	HScrollWidth *string
	// HScrollWidthNum is the horizontal scroll width as an integer (number of columns).
	HScrollWidthNum *int
	// VScrollLines is the number of lines to scroll with the mouse wheel.
	VScrollLines *int
	// RulerType is the ruler type (0: none, 1: relative, 2: absolute).
	RulerType *RulerType
	// AlternateRows alternately style rows.
	AlternateRows *bool
	// ColumnMode is column mode.
	ColumnMode *bool
	// ColumnWidth is column width mode.
	ColumnWidth *bool
	// ColumnRainbow is column rainbow.
	ColumnRainbow *bool
	// LineNumMode displays line numbers.
	LineNumMode *bool
	// Wrap is Wrap mode.
	WrapMode *bool
	// FollowMode is the follow mode.
	FollowMode *bool
	// FollowAll is a follow mode for all documents.
	FollowAll *bool
	// FollowSection is a follow mode that uses section instead of line.
	FollowSection *bool
	// FollowName is the mode to follow files by name.
	FollowName *bool
	// PlainMode is whether to enable the original character decoration.
	PlainMode *bool
	// SectionHeader is whether to display the section header.
	SectionHeader *bool
	// HideOtherSection is whether to hide other sections.
	HideOtherSection *bool
	// StatusLine indicates whether to hide the status line.
	StatusLine *bool
	// PromptConfig holds settings related to the command prompt.
	Prompt PromptConfig
	// Style is the style setting for general appearance and formatting.
	Style StyleConfig
}

General is the general configuration.

func (*General) SetAlign added in v0.43.0

func (g *General) SetAlign(align bool)

SetAlign sets the alignment.

func (*General) SetAlternateRows added in v0.43.0

func (g *General) SetAlternateRows(alternate bool)

SetAlternateRows sets the alternate row style.

func (*General) SetCaption added in v0.43.0

func (g *General) SetCaption(caption string)

SetCaption sets the caption.

func (*General) SetColumnDelimiter added in v0.43.0

func (g *General) SetColumnDelimiter(delim string)

SetColumnDelimiter sets the column delimiter.

func (*General) SetColumnMode added in v0.43.0

func (g *General) SetColumnMode(mode bool)

SetColumnMode sets the column mode.

func (*General) SetColumnRainbow added in v0.43.0

func (g *General) SetColumnRainbow(rainbow bool)

SetColumnRainbow sets the column rainbow mode.

func (*General) SetColumnWidth added in v0.43.0

func (g *General) SetColumnWidth(width bool)

SetColumnWidth sets the column width mode.

func (*General) SetConverter added in v0.43.0

func (g *General) SetConverter(converter string)

SetConverter sets the converter name.

func (*General) SetFollowAll added in v0.43.0

func (g *General) SetFollowAll(followAll bool)

SetFollowAll sets the follow mode for all documents.

func (*General) SetFollowMode added in v0.43.0

func (g *General) SetFollowMode(follow bool)

SetFollowMode sets the follow mode.

func (*General) SetFollowName added in v0.43.0

func (g *General) SetFollowName(followName bool)

SetFollowName sets the follow mode by file name.

func (*General) SetFollowSection added in v0.43.0

func (g *General) SetFollowSection(followSection bool)

SetFollowSection sets the follow mode by section.

func (*General) SetHScrollWidth added in v0.43.0

func (g *General) SetHScrollWidth(width string)

SetHScrollWidth sets the horizontal scroll width as a string.

func (*General) SetHScrollWidthNum added in v0.43.0

func (g *General) SetHScrollWidthNum(num int)

SetHScrollWidthNum sets the horizontal scroll width as an integer.

func (*General) SetHeader added in v0.43.0

func (g *General) SetHeader(header int)

SetHeader sets the number of header lines to be fixed.

func (*General) SetHeaderColumn added in v0.43.0

func (g *General) SetHeaderColumn(headerColumn int)

SetHeaderColumn sets the number of header columns to be fixed.

func (*General) SetHideOtherSection added in v0.43.0

func (g *General) SetHideOtherSection(hide bool)

SetHideOtherSection sets whether to hide other sections.

func (*General) SetJumpTarget added in v0.43.0

func (g *General) SetJumpTarget(target string)

SetJumpTarget sets the jump target string.

func (*General) SetLineNumMode added in v0.43.0

func (g *General) SetLineNumMode(lineNum bool)

SetLineNumMode sets the line number display mode.

func (*General) SetMarkStyleWidth added in v0.43.0

func (g *General) SetMarkStyleWidth(width int)

SetMarkStyleWidth sets the width for the marked line style.

func (*General) SetMultiColorWords added in v0.43.0

func (g *General) SetMultiColorWords(words []string)

SetMultiColorWords sets the multi-color words.

func (*General) SetPlainMode added in v0.43.0

func (g *General) SetPlainMode(plain bool)

SetPlainMode sets the plain mode for character decoration.

func (*General) SetRaw added in v0.43.0

func (g *General) SetRaw(raw bool)

SetRaw sets the raw mode.

func (*General) SetRulerType added in v0.43.0

func (g *General) SetRulerType(rtype RulerType)

SetRulerType sets the ruler type.

func (*General) SetSectionDelimiter added in v0.43.0

func (g *General) SetSectionDelimiter(delim string)

SetSectionDelimiter sets the section delimiter.

func (*General) SetSectionHeader added in v0.43.0

func (g *General) SetSectionHeader(sectionHeader bool)

SetSectionHeader sets whether to display the section header.

func (*General) SetSectionHeaderNum added in v0.43.0

func (g *General) SetSectionHeaderNum(num int)

SetSectionHeaderNum sets the number of lines in the section header.

func (*General) SetSectionStartPosition added in v0.43.0

func (g *General) SetSectionStartPosition(pos int)

SetSectionStartPosition sets the section start position.

func (*General) SetSkipLines added in v0.43.0

func (g *General) SetSkipLines(skipLines int)

SetSkipLines sets the number of lines to skip.

func (*General) SetStatusLine added in v0.43.0

func (g *General) SetStatusLine(status bool)

SetStatusLine sets the status line visibility.

func (*General) SetTabWidth added in v0.43.0

func (g *General) SetTabWidth(tabWidth int)

SetTabWidth sets the tab stop number.

func (*General) SetVScrollLines added in v0.44.0

func (g *General) SetVScrollLines(num int)

func (*General) SetVerticalHeader added in v0.43.0

func (g *General) SetVerticalHeader(verticalHeader int)

SetVerticalHeader sets the number of vertical header lines.

func (*General) SetWatchInterval added in v0.43.0

func (g *General) SetWatchInterval(interval int)

SetWatchInterval sets the watch interval in seconds.

func (*General) SetWrapMode added in v0.43.0

func (g *General) SetWrapMode(wrap bool)

SetWrapMode sets the wrap mode.

type Group added in v0.51.0

type Group int
const (
	GroupAll     Group = -1
	GroupGeneral Group = iota
	GroupMoving
	GroupSidebar
	GroupDocList
	GroupMark
	GroupSearch
	GroupChange
	GroupChangeInput
	GroupColumn
	GroupSection
	GroupClose
	GroupTyping
)

func (Group) String added in v0.51.0

func (g Group) String() string

type Input

type Input struct {
	Event Eventer

	// Candidate is prepared when the history is used as an input candidate.
	// Header and SkipLines use numbers up and down instead of candidate.
	Candidate map[InputMode]*candidate
	// contains filtered or unexported fields
}

Input represents the status of various inputs. Retain each input list to save the input history.

func NewInput

func NewInput() *Input

NewInput returns all the various inputs.

type InputMode

type InputMode int

InputMode represents the state of the input.

const (
	// Normal is the default mode where no special input handling is active.
	Normal InputMode = iota
	// ViewMode is for view selection.
	ViewMode
	// Search is for searching.
	Search
	// Backsearch is for backward searching.
	Backsearch
	// Filter is for filtering.
	Filter
	// MarkByPattern is for marking by pattern.
	MarkByPattern
	// Goline is for moving to a specific line.
	Goline
	// Header is for setting the number of headers.
	Header
	// Delimiter is for setting the delimiter.
	Delimiter
	// TabWidth is for setting the tab width.
	TabWidth
	// Watch is for setting the watch interval.
	Watch
	// SkipLines is for setting the number of lines to skip.
	SkipLines
	// WriteBA is for setting the number of ranges to write at quit.
	WriteBA
	// SectionDelimiter is for setting the section delimiter.
	SectionDelimiter
	// SectionStart is for setting the section start position.
	SectionStart
	// MultiColor is for multi-word coloring.
	MultiColor
	// JumpTarget is for setting the position to display the search results.
	JumpTarget
	// SaveBuffer is for saving the buffer.
	SaveBuffer
	// SectionNum is for setting the section number.
	SectionNum
	// ConvertType is for setting the convert type.
	ConvertType
	// VerticalHeader is for setting the number of vertical headers.
	VerticalHeader
	// HeaderColumn is for setting the number of vertical header columns.
	HeaderColumn
	// MarkNum is for setting the mark number.
	MarkNum
)

type KeyBind

type KeyBind map[string][]string

KeyBind represents a mapping from action names to their associated key sequences.

func GetKeyBinds

func GetKeyBinds(config Config) KeyBind

GetKeyBinds returns the current key mapping based on the provided configuration. If the default key bindings are not disabled in the configuration, it initializes the key bindings with the default values and then overwrites them with any custom key bindings specified in the configuration file.

Parameters:

  • config: The configuration object that contains the key binding settings.

Returns:

  • KeyBind: A map where the keys are action names and the values are slices of strings representing the keys assigned to those actions.

func (KeyBind) GetKeyBindDescriptions added in v0.51.0

func (k KeyBind) GetKeyBindDescriptions(group Group) [][]string

func (KeyBind) String added in v0.14.0

func (k KeyBind) String() string

String returns keybind as a string for help.

type KeyBindDescription added in v0.51.0

type KeyBindDescription struct {
	Group       Group
	Action      string
	Description string
}

type LineC added in v0.15.0

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

LineC is one line of information. Contains content, string, location information.

type LineNumber added in v0.15.0

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

LineNumber is Number of logical lines and number of wrapping lines on the screen.

type LogDocument added in v0.34.0

type LogDocument struct {
	*Document
	// contains filtered or unexported fields
}

LogDocument is a document for log.

func NewLogDoc added in v0.5.0

func NewLogDoc() (*LogDocument, error)

NewLogDoc generates a document for log. NewLogDoc makes LogDoc the output destination of go's standard logger.

func (*LogDocument) Write added in v0.34.0

func (logDoc *LogDocument) Write(p []byte) (int, error)

Write matches the interface of io.Writer(so package log is possible). Therefore, the log.Print output is displayed by logDoc.

type MatchedLine added in v0.51.0

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

type MatchedLineList added in v0.51.0

type MatchedLineList []MatchedLine

type MouseSelectState added in v0.44.0

type MouseSelectState int

MouseSelectState represents the state of mouse selection.

const (
	SelectNone   MouseSelectState = iota // no selection
	SelectActive                         // selecting
	SelectCopied                         // selection copied
)

type OVPromptConfig added in v0.31.0

type OVPromptConfig struct {
	// Normal is the normal prompt setting.
	Normal OVPromptConfigNormal
	Input  OVPromptConfigInput
}

OVPromptConfig is the prompt setting.

func NewOVPromptConfig added in v0.42.0

func NewOVPromptConfig() OVPromptConfig

NewOVPromptConfig returns the structure of OVPromptConfig with default values.

type OVPromptConfigInput added in v0.42.0

type OVPromptConfigInput struct {
	CursorType int
}

OVPromptConfigInput is the input prompt setting.

type OVPromptConfigNormal added in v0.31.0

type OVPromptConfigNormal struct {
	// ShowFilename controls whether to display filename.
	ShowFilename bool
	// InvertColor controls whether the text is colored and inverted.
	InvertColor bool
	// ProcessOfCount controls whether to display the progress of the count.
	ProcessOfCount bool
	// CursorType controls the type of cursor to display.
	CursorType int
}

OVPromptConfigNormal is the normal prompt setting.

type OVStyle added in v0.11.0

type OVStyle struct {
	// Background is a color name string.
	Background string
	// Foreground is a color name string.
	Foreground string
	// UnderlineColor is a underline color name string.
	UnderlineColor string
	// UnderlineStyle is a underline style.
	UnderlineStyle string
	// VerticalAlignType is a vertical align type.
	VerticalAlignType int
	// If true, add blink.
	Blink bool
	// If true, add bold.
	Bold bool
	// If true, add dim.
	Dim bool
	// If true, add italic.
	Italic bool
	// If true, add reverse.
	Reverse bool
	// If true, add underline.
	Underline bool
	// If true, add strike through.
	StrikeThrough bool
	// If true, add overline (not yet supported).
	OverLine bool
	// If true, sub blink.
	UnBlink bool
	// If true, sub bold.
	UnBold bool
	// If true, sub dim.
	UnDim bool
	// If true, sub italic.
	UnItalic bool
	// If true, sub reverse.
	UnReverse bool
	// If true, sub underline.
	UnUnderline bool
	// If true, sub strike through.
	UnStrikeThrough bool
	// if true, sub overline (not yet supported).
	UnOverLine bool
	// If true, reset all styles.
	Reset bool
}

OVStyle represents a style in addition to the original style.

type PromptConfig added in v0.42.0

type PromptConfig struct {
	// Normal is the normal prompt setting.
	Normal PromptConfigNormal
	Input  PromptConfigInput
}

PromptConfig is the prompt setting.

type PromptConfigInput added in v0.42.0

type PromptConfigInput struct {
	CursorType *int
}

PromptConfigInput is the input prompt setting.

type PromptConfigNormal added in v0.42.0

type PromptConfigNormal struct {
	// ShowFilename controls whether to display filename.
	ShowFilename *bool
	// InvertColor controls whether the text is colored and inverted.
	InvertColor *bool
	// ProcessOfCount controls whether to display the progress of the count.
	ProcessOfCount *bool
	// CursorType controls the type of cursor to display.
	CursorType *int
}

PromptConfigNormal is the normal prompt setting.

type Root

type Root struct {
	// tcell.Screen is the root screen.
	Screen tcell.Screen

	// Doc is the current document.
	Doc *Document

	// Pattern is the search pattern.
	Pattern string
	// OnExit is output on exit.
	OnExit []string

	// Original string.
	OriginStr string

	// DocList is the list of documents.
	DocList []*Document

	// Config is the configuration of ov.
	Config Config
	// Original position at the start of search.
	OriginPos int

	// CurrentDoc is the index of the current document.
	CurrentDoc int

	// FollowAll is a follow mode for all documents.
	FollowAll bool

	// SidebarItems is the items to display in the sidebar.
	SidebarItems []SidebarItem
	// SidebarHelpItems is the help items to display in the sidebar.
	SidebarHelpItems []SidebarItem
	// contains filtered or unexported fields
}

Root is the root structure of the oviewer.

func ExecCommand deprecated added in v0.8.9

func ExecCommand(cmd *exec.Cmd) (*Root, error)

ExecCommand return the structure of oviewer. ExecCommand executes the command and opens stdout/stderr as document.

Deprecated: use NewCommand and [Exec] instead.

Example
package main

import (
	"os/exec"

	"github.com/noborus/ov/oviewer"
)

func main() {
	command := exec.Command("ls", "-alF")
	ov, err := oviewer.ExecCommand(command)
	if err != nil {
		panic(err)
	}
	if err := ov.Run(); err != nil {
		panic(err)
	}
}

func NewOviewer

func NewOviewer(docs ...*Document) (*Root, error)

NewOviewer return the structure of oviewer. NewOviewer requires one or more documents.

Example
package main

import (
	"bytes"

	"github.com/noborus/ov/oviewer"
)

func main() {
	doc, err := oviewer.NewDocument()
	if err != nil {
		panic(err)
	}
	s := "Hello, World!"
	if err := doc.ControlReader(bytes.NewBufferString(s), nil); err != nil {
		panic(err)
	}

	ov, err := oviewer.NewOviewer(doc)
	if err != nil {
		panic(err)
	}
	if err := ov.Run(); err != nil {
		panic(err)
	}
}

func NewRoot added in v0.9.0

func NewRoot(r io.Reader) (*Root, error)

NewRoot returns the structure of the oviewer. NewRoot is a simplified version that can be used externally.

Example
package main

import (
	"strings"

	"github.com/noborus/ov/oviewer"
)

func main() {
	r := strings.NewReader(strings.Repeat("north\n", 99))
	ov, err := oviewer.NewRoot(r)
	if err != nil {
		panic(err)
	}
	if err := ov.Run(); err != nil {
		panic(err)
	}
}

func Open

func Open(fileNames ...string) (*Root, error)

Open reads the file named of the argument and return the structure of oviewer. If there is no file name, create Root from standard input. If there is only one file name, create Root from that file, but return an error if the open is an error. If there is more than one file name, create Root from multiple files.

Example
package main

import (
	"github.com/noborus/ov/oviewer"
)

func main() {
	ov, err := oviewer.Open("example_test.go")
	if err != nil {
		panic(err)
	}
	if err := ov.Run(); err != nil {
		panic(err)
	}
}

func (*Root) AddDocument added in v0.8.0

func (root *Root) AddDocument(m *Document)

AddDocument fires the eventAddDocument event.

func (*Root) BackSearch

func (root *Root) BackSearch(str string)

BackSearch fires a backward search event. This is for calling Search from the outside. Normally, the event is executed from Confirm.

func (*Root) Cancel added in v0.6.2

func (root *Root) Cancel(context.Context)

Cancel follow mode and follow all mode.

func (*Root) Close added in v0.9.0

func (root *Root) Close()

Close closes the oviewer.

func (*Root) CloseAllFilter added in v0.34.0

func (root *Root) CloseAllFilter()

CloseAllFilter fires the eventCloseAllFilter event.

func (*Root) CloseDocument added in v0.8.0

func (root *Root) CloseDocument(_ *Document)

CloseDocument fires the eventCloseDocument event.

func (*Root) CopySelect added in v0.6.0

func (root *Root) CopySelect(context.Context)

CopySelect fires the eventCopySelect event.

func (*Root) DocumentLen added in v0.9.0

func (root *Root) DocumentLen() int

DocumentLen returns the number of Docs.

func (*Root) ExpandColumn added in v0.37.0

func (root *Root) ExpandColumn(_ context.Context, cursor int) error

ExpandColumn expands the specified column.

func (*Root) Filter added in v0.34.0

func (root *Root) Filter(str string, nonMatch bool)

Filter fires the filter event.

func (*Root) MoveBottom

func (root *Root) MoveBottom()

MoveBottom fires the event of moving to bottom.

func (*Root) MoveLine

func (root *Root) MoveLine(num int)

MoveLine fires an eventGoto event that moves to the specified line.

func (*Root) MoveTop

func (root *Root) MoveTop()

MoveTop fires the event of moving to top.

func (*Root) OutputOnExit added in v0.40.0

func (root *Root) OutputOnExit()

OutputOnExit outputs to the terminal when exiting.

func (*Root) Paste added in v0.6.0

func (root *Root) Paste(context.Context)

Paste fires the eventPaste event.

func (*Root) Quit

func (root *Root) Quit(context.Context)

Quit fires the eventAppQuit event.

func (*Root) Reload added in v0.10.0

func (root *Root) Reload(context.Context)

Reload fires the eventReload event.

func (*Root) Run

func (root *Root) Run() error

Run starts the terminal pager.

func (*Root) ScreenContent added in v0.40.0

func (root *Root) ScreenContent() []string

ScreenContent returns the screen content.

func (*Root) Search

func (root *Root) Search(str string)

Search fires a forward search event. This is for calling Search from the outside. Normally, the event is executed from Confirm.

func (*Root) SetConfig

func (root *Root) SetConfig(config Config)

SetConfig sets config.

func (*Root) SetDocument

func (root *Root) SetDocument(docNum int) error

SetDocument fires the eventDocument event.

func (*Root) SetKeyHandler added in v0.9.6

func (root *Root) SetKeyHandler(ctx context.Context, name string, keys []string, handler func(context.Context)) error

SetKeyHandler assigns a new key handler.

func (*Root) SetWatcher added in v0.8.9

func (root *Root) SetWatcher(watcher *fsnotify.Watcher)

SetWatcher sets file monitoring.

func (*Root) ShrinkColumn added in v0.37.0

func (root *Root) ShrinkColumn(_ context.Context, cursor int) error

ShrinkColumn shrinks the specified column.

func (*Root) StrLeftStatus added in v0.50.0

func (root *Root) StrLeftStatus(numVisible bool) string

StrLeftStatus returns the left status string.

func (*Root) Suspend added in v0.9.5

func (root *Root) Suspend()

Suspend fires the eventAppSuspend event.

func (*Root) TailSync added in v0.8.0

func (root *Root) TailSync(ctx context.Context)

TailSync move to tail and sync.

func (*Root) ViewSync added in v0.8.0

func (root *Root) ViewSync(context.Context)

ViewSync redraws the whole thing.

func (*Root) WriteCurrentScreen added in v0.40.0

func (root *Root) WriteCurrentScreen()

WriteCurrentScreen writes to the current screen.

func (*Root) WriteLog added in v0.7.1

func (root *Root) WriteLog()

WriteLog write to the log terminal.

func (*Root) WriteOriginal

func (root *Root) WriteOriginal()

WriteOriginal writes to the original terminal.

func (*Root) WriteQuit

func (root *Root) WriteQuit(ctx context.Context)

WriteQuit sets the write flag and executes a quit event.

type RulerType added in v0.39.0

type RulerType int

RulerType is the type of ruler.

const (
	// RulerNone is no ruler.
	RulerNone RulerType = iota
	// RulerRelative is a relative ruler.
	RulerRelative
	// RulerAbsolute is an absolute ruler.
	RulerAbsolute
)

func (RulerType) String added in v0.39.0

func (r RulerType) String() string

String returns the string representation of the ruler type.

type RunTimeSettings added in v0.40.0

type RunTimeSettings struct {
	// Converter is the converter name.
	Converter string
	// Caption is an additional caption to display after the file name.
	Caption string
	// ColumnDelimiterReg is a compiled regular expression of ColumnDelimiter.
	ColumnDelimiterReg *regexp.Regexp
	// ColumnDelimiter is a column delimiter.
	ColumnDelimiter string
	// SectionDelimiterReg is a section delimiter.
	SectionDelimiterReg *regexp.Regexp
	// SectionDelimiter is a section delimiter.
	SectionDelimiter string
	// Specified string for jumpTarget.
	JumpTarget string
	// MultiColorWords specifies words to color separated by spaces.
	MultiColorWords []string

	// TabWidth is tab stop num.
	TabWidth int
	// Header is number of header lines to be fixed.
	Header int
	// VerticalHeader is the number of vertical header lines.
	VerticalHeader int
	// HeaderColumn is the number of columns from the left to be fixed.
	// If 0 is specified, no columns are fixed.
	HeaderColumn int
	// SkipLines is the rows to skip.
	SkipLines int
	// WatchInterval is the watch interval (seconds).
	WatchInterval int
	// MarkStyleWidth is width to apply the style of the marked line.
	MarkStyleWidth int
	// SectionStartPosition is a section start position.
	SectionStartPosition int
	// SectionHeaderNum is the number of lines in the section header.
	SectionHeaderNum int
	// HScrollWidth is the horizontal scroll width.
	HScrollWidth string
	// HScrollWidthNum is the horizontal scroll width.
	HScrollWidthNum int
	// VScrollLines is the number of lines to scroll with the mouse wheel.
	VScrollLines int
	// RulerType is the ruler type (0: none, 1: relative, 2: absolute).
	RulerType RulerType
	// AlternateRows alternately style rows.
	AlternateRows bool
	// ColumnMode is column mode.
	ColumnMode bool
	// ColumnWidth is column width mode.
	ColumnWidth bool
	// ColumnRainbow is column rainbow.
	ColumnRainbow bool
	// LineNumMode displays line numbers.
	LineNumMode bool
	// Wrap is Wrap mode.
	WrapMode bool
	// FollowMode is the follow mode.
	FollowMode bool
	// FollowAll is a follow mode for all documents.
	FollowAll bool
	// FollowSection is a follow mode that uses section instead of line.
	FollowSection bool
	// FollowName is the mode to follow files by name.
	FollowName bool
	// PlainMode is whether to enable the original character decoration.
	PlainMode bool
	// SectionHeader is whether to display the section header.
	SectionHeader bool
	// HideOtherSection is whether to hide other sections.
	HideOtherSection bool
	// StatusLine is whether to hide the status line.
	StatusLine bool

	// PromptConfig is the prompt configuration.
	OVPromptConfig
	// Style is the style of the document.
	Style Style
}

RunTimeSettings structure contains the RunTimeSettings of the display. RunTimeSettings contains values that determine the behavior of each document.

func NewRunTimeSettings added in v0.40.0

func NewRunTimeSettings() RunTimeSettings

NewRunTimeSettings returns the structure of RunTimeSettings with default values.

type SCR added in v0.15.0

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

SCR contains the screen information.

type Searcher added in v0.10.1

type Searcher interface {
	// Match searches for bytes.
	Match(target []byte) bool
	// MatchString searches for strings.
	MatchString(target string) bool
	// FindAll searches for strings and returns the index of the match.
	FindAll(target string) [][]int
	// String returns the search word.
	String() string
}

Searcher interface provides a match method that determines if the search word matches the argument string.

func NewSearcher added in v0.10.1

func NewSearcher(word string, searchReg *regexp.Regexp, caseSensitive bool, regexpSearch bool) Searcher

NewSearcher returns the Searcher interface suitable for the search term.

type SidebarItem added in v0.51.0

type SidebarItem struct {
	Label     string   // Always-visible label (e.g., index, description)
	Contents  contents // Contents to display
	IsCurrent bool
}

SidebarItem represents an item to display in the sidebar.

type SidebarMode added in v0.51.0

type SidebarMode int
const (
	// SidebarModeNone is no sidebar.
	SidebarModeNone SidebarMode = iota
	// SidebarModeHelp is the help sidebar.
	SidebarModeHelp
	// SidebarModeMarks is the mark list sidebar.
	SidebarModeMarks
	// SidebarModeDocList is the document list sidebar.
	SidebarModeDocList
	// SidebarModeSections is the section list sidebar.
	SidebarModeSections

	// SidebarModeEnd is the end of sidebar modes.
	SidebarModeEnd
)

sidebarMode represents the mode of the sidebar.

func (SidebarMode) String added in v0.51.0

func (s SidebarMode) String() string

String returns the string representation of the SidebarMode.

type Style added in v0.40.0

type Style struct {
	// ColumnRainbow is the style that applies to the column rainbow color highlight.
	ColumnRainbow []OVStyle
	// MultiColorHighlight is the style that applies to the multi color highlight.
	MultiColorHighlight []OVStyle
	// Header is the style that applies to the header.
	Header OVStyle
	// Body is the style that applies to the body.
	Body OVStyle
	// LineNumber is a style that applies line number.
	LineNumber OVStyle
	// SearchHighlight is the style that applies to the search highlight.
	SearchHighlight OVStyle
	// ColumnHighlight is the style that applies to the column highlight.
	ColumnHighlight OVStyle
	// MarkLine is a style that marked line.
	MarkLine OVStyle
	// SectionLine is a style that section delimiter line.
	SectionLine OVStyle
	// VerticalHeader is a style that applies to the vertical header.
	VerticalHeader OVStyle
	// JumpTargetLine is the line that displays the search results.
	JumpTargetLine OVStyle
	// Alternate is a style that applies line by line.
	Alternate OVStyle
	// Ruler is a style that applies to the ruler.
	Ruler OVStyle
	// HeaderBorder is the style that applies to the boundary line of the header.
	// The boundary line of the header refers to the visual separator between the header and the rest of the content.
	HeaderBorder OVStyle
	// SectionHeaderBorder is the style that applies to the boundary line of the section header.
	// The boundary line of the section header is the line that separates different sections in the header.
	SectionHeaderBorder OVStyle
	// VerticalHeaderBorder is the style that applies to the boundary character of the vertical header.
	// The boundary character of the vertical header refers to the visual separator that delineates the vertical header from the rest of the content.
	VerticalHeaderBorder OVStyle
	// LeftStatus is the style that applies to the left status line.
	LeftStatus OVStyle
	// RightStatus is the style that applies to the right status line.
	RightStatus OVStyle
	// SelectActive is the style that applies to the text being selected (during mouse drag).
	SelectActive OVStyle
	// SelectCopied is the style that applies to the text that has been copied to clipboard.
	SelectCopied OVStyle
	// PauseLine is the style that applies to the line where follow mode is paused.
	PauseLine OVStyle
}

Style structure contains the style settings of the display.

func NewHelpStyle added in v0.42.0

func NewHelpStyle() Style

NewHelpStyle returns a Style for the help document.

func NewLogStyle added in v0.42.0

func NewLogStyle() Style

NewLogStyle generates a style for log documents.

func NewStyle added in v0.40.0

func NewStyle() Style

NewStyle returns the structure of Style with default values.

type StyleConfig added in v0.40.0

type StyleConfig struct {
	// ColumnRainbow is the style that applies to the column rainbow color highlight.
	ColumnRainbow *[]OVStyle
	// MultiColorHighlight is the style that applies to the multi color highlight.
	MultiColorHighlight *[]OVStyle
	// Header is the style that applies to the header.
	Header *OVStyle
	// Body is the style that applies to the body.
	Body *OVStyle
	// LineNumber is a style that applies line number.
	LineNumber *OVStyle
	// SearchHighlight is the style that applies to the search highlight.
	SearchHighlight *OVStyle
	// ColumnHighlight is the style that applies to the column highlight.
	ColumnHighlight *OVStyle
	// MarkLine is a style that marked line.
	MarkLine *OVStyle
	// SectionLine is a style that section delimiter line.
	SectionLine *OVStyle
	// VerticalHeader is a style that applies to the vertical header.
	VerticalHeader *OVStyle
	// JumpTargetLine is the line that displays the search results.
	JumpTargetLine *OVStyle
	// Alternate is a style that applies line by line.
	Alternate *OVStyle
	// Ruler is a style that applies to the ruler.
	Ruler *OVStyle
	// HeaderBorder is the style that applies to the boundary line of the header.
	// The boundary line of the header refers to the visual separator between the header and the rest of the content.
	HeaderBorder *OVStyle
	// SectionHeaderBorder is the style that applies to the boundary line of the section header.
	// The boundary line of the section header is the line that separates different sections in the header.
	SectionHeaderBorder *OVStyle
	// VerticalHeaderBorder is the style that applies to the boundary character of the vertical header.
	// The boundary character of the vertical header refers to the visual separator that delineates the vertical header from the rest of the content.
	VerticalHeaderBorder *OVStyle
	// LeftStatus is the style that applies to the left side of the status line.
	LeftStatus *OVStyle
	// RightStatus is the style that applies to the right side of the status line.
	RightStatus *OVStyle
	// SelectActive is the style that applies to the text being selected (during mouse drag).
	SelectActive *OVStyle
	// SelectCopied is the style that applies to the text that has been copied to clipboard.
	SelectCopied *OVStyle
	// PauseLine is the style that applies to the line where follow mode is paused.
	PauseLine *OVStyle
}

StyleConfig is the style setting.

Jump to

Keyboard shortcuts

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