oviewer

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2020 License: MIT Imports: 26 Imported by: 3

Documentation

Overview

Package oviewer provides a pager for terminals.

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

Constants

This section is empty.

Variables

View Source
var (
	// HeaderStyle represents the style of the header.
	HeaderStyle = tcell.StyleDefault.Bold(true)
	// ColorAlternate represents alternating colors.
	ColorAlternate = tcell.ColorGray
	// OverStrikeStyle represents the overstrike style.
	OverStrikeStyle = tcell.StyleDefault.Bold(true)
	// OverLineStyle represents the overline underline style.
	OverLineStyle = tcell.StyleDefault.Underline(true)
)
View Source
var (
	// ErrOutOfRange indicates that value is out of range.
	ErrOutOfRange = errors.New("out of range")
	// ErrFatalCache indicates that the cache value had a fatal error.
	ErrFatalCache = errors.New("fatal error in cache value")
	// ErrMissingFile indicates that the file does not exist.
	ErrMissingFile = errors.New("missing filename")
	// ErrNotFound indicates not found.
	ErrNotFound = errors.New("not found")
	// ErrInvalidNumber indicates an invalid number.
	ErrInvalidNumber = errors.New("invalid number")
	// ErrFailedKeyBind indicates keybinding failed.
	ErrFailedKeyBind = errors.New("failed to set keybind")
)
View Source
var DefaultContent = content{
	// contains filtered or unexported fields
}

DefaultContent is a blank Content.

Functions

func GetKeyBinds

func GetKeyBinds(bind map[string][]string) map[string][]string

GetKeyBinds returns the current key mapping.

func KeyBindString

func KeyBindString(k KeyBind) string

KeyBindString returns keybind as a string for help.

Types

type Config

type Config struct {
	// Alternating background color.
	ColorAlternate string
	// Header color.
	ColorHeader string
	// OverStrike color.
	ColorOverStrike string
	// OverLine color.
	ColorOverLine string

	Status status

	// Mouse support disable.
	DisableMouse bool
	// AfterWrite writes the current screen on exit.
	AfterWrite bool
	// QuiteSmall Quit if the output fits on one screen.
	QuitSmall bool
	// CaseSensitive is case-sensitive if true
	CaseSensitive bool
	// Debug represents whether to enable the debug output.
	Debug bool
	// KeyBinding
	Keybind map[string][]string
}

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 Document

type Document struct {
	// fileName is the file name to display.
	FileName string
	// contains filtered or unexported fields
}

The Document structure contains the values for the logical screen.

func NewDocument

func NewDocument() (*Document, error)

NewDocument returns Document.

func NewHelp

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

NewHelp generates a document for help.

func NewLogDoc added in v0.5.0

func NewLogDoc() (*Document, error)

NewLogDoc generates a document for log.

func (*Document) BufEOF

func (m *Document) BufEOF() bool

BufEOF return true if EOF is reached.

func (*Document) BufEndNum

func (m *Document) BufEndNum() int

BufEndNum return last line number.

func (*Document) ClearCache

func (m *Document) ClearCache()

ClearCache clears the cache.

func (*Document) GetLine

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

GetLine returns one line from buffer.

func (*Document) NewCache

func (m *Document) NewCache() error

NewCache creates a new cache.

func (*Document) ReadAll

func (m *Document) ReadAll(r io.ReadCloser) error

ReadAll reads all from the reader to the buffer. It returns if beforeSize is accumulated in buffer before the end of read.

func (*Document) ReadFile

func (m *Document) ReadFile(fileName string) error

ReadFile reads file.

func (*Document) Write added in v0.5.0

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

Write matches the interface of io.Writer. Therefore, the log.Print output is displayed by logDoc.

type EventInput

type EventInput interface {
	// 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
}

EventInput is a generic interface for inputs.

type Input

type Input struct {
	EventInput EventInput

	SearchCandidate    *candidate
	GoCandidate        *candidate
	DelimiterCandidate *candidate
	TabWidthCandidate  *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 normal mode.
	Normal InputMode = iota
	// Help is Help screen mode.
	Help
	// LogDoc is Error screen mode.
	LogDoc
	// Search is a search input mode.
	Search
	// Backsearch is a backward search input mode.
	Backsearch
	// Goline is a move input mode.
	Goline
	// Header is the number of headers input mode.
	Header
	// Delimiter is a delimiter input mode.
	Delimiter
	// TabWidth is the tab number input mode.
	TabWidth
)

type KeyBind

type KeyBind map[string][]string

KeyBind is the mapping of action and key.

type Root

type Root struct {
	// tcell.Screen is the root screen.
	tcell.Screen
	// Config contains settings that determine the behavior of ov.
	Config

	// Doc contains the model of ov
	Doc *Document

	// DocList
	DocList    []*Document
	CurrentDoc int
	// contains filtered or unexported fields
}

Root structure contains information about the drawing.

func NewOviewer

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

NewOviewer return the structure of oviewer.

func Open

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

Open reads the file named of the argument and return the structure of oviewer.

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) CopySelect added in v0.6.0

func (root *Root) CopySelect()

CopySelect executes a copy select event.

func (*Root) Help

func (root *Root) Help()

Help is to switch between Help screen and normal screen.

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 event that moves to the specified line.

func (*Root) MoveTop

func (root *Root) MoveTop()

MoveTop fires the event of moving to top.

func (*Root) Paste added in v0.6.0

func (root *Root) Paste()

Paste executes the mouse paste event.

func (*Root) Quit

func (root *Root) Quit()

Quit executes a quit event.

func (*Root) Run

func (root *Root) Run() error

Run starts the terminal pager.

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(m *Document)

SetDocument fires a set document event.

func (*Root) WriteOriginal

func (root *Root) WriteOriginal()

WriteOriginal writes to the original terminal.

func (*Root) WriteQuit

func (root *Root) WriteQuit()

WriteQuit sets the write flag and executes a quit event.

Jump to

Keyboard shortcuts

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