rat

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2021 License: MIT Imports: 22 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ConfigDir string
)

Functions

func AddChildPager

func AddChildPager(parent, child Pager, creatingKeys string)

func AddEventHandler added in v0.1.0

func AddEventHandler(keyStr string, handler func())

func Close

func Close()

func Confirm

func Confirm(message string, callback func())

func ConfirmExec

func ConfirmExec(cmd string, ctx Context, callback func())

func ContextEnvironment added in v0.1.0

func ContextEnvironment(ctx Context) []string

func Exec

func Exec(cmd string, ctx Context)

func Init

func Init() error

func KeyEventFromString

func KeyEventFromString(str string) keyEvent

func KeyEventFromTBEvent

func KeyEventFromTBEvent(tbev *termbox.Event) keyEvent

func KeySequenceFromString added in v0.1.0

func KeySequenceFromString(str string) []keyEvent

TODO: Rewrite to allow commas in here

func LoadConfig

func LoadConfig(rd io.Reader)

func PopPager

func PopPager()

func PushPager

func PushPager(p Pager)

func Quit

func Quit()

func RegisterMode

func RegisterMode(name string, mode Mode)

func Run

func Run()

func SetAnnotatorsDir added in v0.0.2

func SetAnnotatorsDir(dir string)

Types

type Annotation

type Annotation interface {
	Start() int
	End() int
	Class() string
	Val() string
}

func NewAnnotation

func NewAnnotation(start, end int, class string, val string) Annotation

type Annotations added in v0.0.2

type Annotations interface {
	Add(Annotation)
	Intersecting(Region) []Annotation
	Len() int
}

func NewAnnotations added in v0.0.2

func NewAnnotations() Annotations

type Annotator

type Annotator interface {
	Annotate(io.Reader) <-chan Annotation
}

func NewExternalAnnotator added in v0.0.2

func NewExternalAnnotator(cmd, class string, ctx Context) Annotator

func NewMatchAnnotator added in v0.0.2

func NewMatchAnnotator(cmd, class string, ctx Context) Annotator

func NewRegexAnnotator added in v0.0.2

func NewRegexAnnotator(regex, class string) Annotator

type Box

type Box interface {
	Left() int
	Top() int
	Width() int
	Height() int
	DrawStyledRune(x, y int, sr StyledRune)
	DrawStyledRunes(x, y int, runes []StyledRune)
	Fill(sr StyledRune)
}

func NewBox

func NewBox(left, top, width, height int) Box

type Buffer

type Buffer interface {
	sync.Locker
	AnnotateWith(Annotator)
	AnnotationsForLine(line int) []Annotation
	NumAnnotations() int
	NumLines() int
	StyledLines(start int, numLines int) [][]StyledRune
	io.Closer
}

func NewBuffer

func NewBuffer(rd io.Reader) Buffer

type Configurer

type Configurer interface {
	Process(rd io.Reader)
}

func NewConfigurer

func NewConfigurer() Configurer

type ConfirmPrompt

type ConfirmPrompt interface {
	Widget
	Confirm(message string, callback func())
	Clear()
}

func NewConfirmPrompt

func NewConfirmPrompt() ConfirmPrompt

type Context

type Context map[string]string

func MergeContext

func MergeContext(orig, extra Context) Context

func NewContextFromAnnotations added in v0.1.0

func NewContextFromAnnotations(annotations []Annotation) Context

type EventHandler added in v0.1.0

type EventHandler interface {
	Supports(Context) bool
	Call(Context)
	Specificity() int
}

func NewCtxEventHandler added in v0.1.0

func NewCtxEventHandler(req []string, h func(Context)) EventHandler

func NewEventHandler added in v0.1.0

func NewEventHandler(h func()) EventHandler

type HandlerRegistry added in v0.1.0

type HandlerRegistry interface {
	Add([]keyEvent, EventHandler)
	Find([]keyEvent) EventHandler
	FindCtx([]keyEvent, Context) EventHandler
}

func NewHandlerRegistry added in v0.1.0

func NewHandlerRegistry() HandlerRegistry

type Highlight added in v0.0.2

type Highlight interface {
	TermStyle
}

type Highlights added in v0.0.2

type Highlights interface {
	Start(int, TermStyle)
	End(int)
	AtPoint(int) Highlight
	Len() int
}

func NewHighlights added in v0.0.2

func NewHighlights() Highlights

type Line added in v0.0.2

type Line interface {
	Start() int
	End() int
	SetEnd(int)
}

func NewLine added in v0.0.2

func NewLine(start, end int) Line

type Mode

type Mode interface {
	RegisterAnnotator(func(Context) Annotator)
	RegisterEventHandler(func(Context) func(Pager))
	InitAnnotators(Context) func() []Annotator
	AddEventHandlers(Context) func(Pager)
}

func NewMode

func NewMode() Mode

type Pager

type Pager interface {
	Widget
	AddEventHandler(keyStr string, handler EventHandler)
	Reload()
	CursorUp()
	CursorDown()
	CursorFirstLine()
	CursorLastLine()
	ScrollUp()
	ScrollDown()
	PageUp()
	PageDown()
}

func NewCmdPager

func NewCmdPager(modeNames string, cmd string, ctx Context) Pager

func NewReadPager added in v0.1.0

func NewReadPager(rd io.Reader, title string, modeNames string, ctx Context) Pager

type PagerStack

type PagerStack interface {
	Widget
	Show(int)
	Last() Pager
	Push(p Pager)
	Pop()
	Size() int
	AddChild(parent Pager, child Pager, creatingKeys string)
	PushAsChild(Pager, string)
	ParentCursorUp()
	ParentCursorDown()
}

func NewPagerStack

func NewPagerStack() PagerStack

type Region added in v0.0.2

type Region interface {
	Start() int
	End() int
}

type ShellCommand added in v0.0.2

type ShellCommand interface {
	io.ReadCloser
}

func NewShellCommand added in v0.0.2

func NewShellCommand(c string, ctx Context) (ShellCommand, error)

type Stream added in v0.0.2

type Stream interface {
	io.WriteCloser
	Bytes() []byte
	NewReader() StreamReader
}

func NewStream added in v0.0.2

func NewStream() Stream

type StreamReader added in v0.0.2

type StreamReader interface {
	io.Reader
}

type StyledRune

type StyledRune interface {
	Rune() rune
	TermStyle
}

func NewStyledRune

func NewStyledRune(ch rune, ts TermStyle) StyledRune

func StyledRunesFromString

func StyledRunesFromString(str string, ts TermStyle) []StyledRune

type TermStyle added in v0.0.2

type TermStyle interface {
	Fg() termbox.Attribute
	Bg() termbox.Attribute
}

type TermStyles added in v0.0.2

type TermStyles interface {
	Get(termbox.Attribute, termbox.Attribute) TermStyle
	Default() TermStyle
}

func NewTermStyles added in v0.0.2

func NewTermStyles() TermStyles

type Token added in v0.0.2

type Token interface {
	Type() TokenType
	Val() []byte
	TermStyle() TermStyle
}

type TokenReader added in v0.0.2

type TokenReader interface {
	ReadToken() (Token, error)
}

func NewScanner added in v0.0.2

func NewScanner(rd io.Reader) TokenReader

type TokenType added in v0.0.2

type TokenType uint8
const (
	TokNone TokenType = iota
	TokText
	TokTermStyle
	TokNewLine
)

type Widget

type Widget interface {
	SetBox(Box)
	GetBox() Box
	Render()
	HandleEvent([]keyEvent) bool
	Destroy()
}

type WidgetStack

type WidgetStack interface {
	Widget
	Push(w Widget)
	Pop() Widget
	Size() int
}

func NewWidgetStack

func NewWidgetStack() WidgetStack

Jump to

Keyboard shortcuts

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