edit

package
v0.0.0-...-70c1726 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2017 License: BSD-2-Clause Imports: 34 Imported by: 0

Documentation

Overview

Package edit implements a command line editor.

Index

Constants

View Source
const (
	S_IWOTH = 0x2 // Writable by other
	S_IXGRP = 0x8 // Executable by group
	S_IXOTH = 0x1 // Executable by other
)

Weirdly, permission masks for group and other are missing on platforms other than linux, darwin and netbsd. So we replicate some of them here.

View Source
const PreviewBytes = 64 * 1024

PreviewBytes is the maximum number of bytes to preview a file.

Variables

View Source
var (
	// ErrCompleterMustBeFn is thrown if the user has put a non-function entry
	// in $edit:completer, and that entry needs to be used for completion.
	// TODO(xiaq): Detect the type violation when the user modifies
	// $edit:completer.
	ErrCompleterMustBeFn = errors.New("completer must be fn")
	// ErrCompleterArgMustBeString is thrown when a builtin argument completer
	// is called with non-string arguments.
	ErrCompleterArgMustBeString = errors.New("arguments to arg completers must be string")
	// ErrTooFewArguments is thrown when a builtin argument completer is called
	// with too few arguments.
	ErrTooFewArguments = errors.New("too few arguments")
)
View Source
var (
	ErrNotRegular   = errors.New("no preview for non-regular file")
	ErrNotValidUTF8 = errors.New("no preview for non-utf8 file")
)

Errors displayed in the preview area.

View Source
var ErrStoreOffline = errors.New("store offline")

ErrStoreOffline is thrown when an operation requires the storage backend, but it is offline.

View Source
var PinnedScore = math.Inf(1)

PinnedScore is a special value of Score in storedefs.Dir to represent that the directory is pinned.

Functions

func CommandHistory

func CommandHistory(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

func InsertAtDot

func InsertAtDot(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

func NarrowRead

func NarrowRead(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

func ReplaceInput

func ReplaceInput(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

func Wordify

func Wordify(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

Types

type BindingTable

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

BindingTable adapts a binding table to eval.IndexSetter, so that it can be manipulated in elvish script.

func (BindingTable) IndexOne

func (bt BindingTable) IndexOne(idx eval.Value) eval.Value

IndexOne returns the value with the specified map key. The map key is first converted into an internal Key struct.

func (BindingTable) IndexSet

func (bt BindingTable) IndexSet(idx, v eval.Value)

IndexSet sets the value with the specified map key. The map key is first converted into an internal Key struct. The set value must be a callable one, otherwise an error is thrown.

func (BindingTable) Kind

func (BindingTable) Kind() string

Kind returns "map".

func (BindingTable) Repr

func (bt BindingTable) Repr(indent int) string

Repr returns the representation of the binding table as if it were an ordinary map.

type BuiltinFn

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

BuiltinFn records an editor builtin.

func (*BuiltinFn) Call

func (bf *BuiltinFn) Call(ec *eval.EvalCtx, args []eval.Value, opts map[string]eval.Value)

Call calls a builtin function.

func (*BuiltinFn) Kind

func (*BuiltinFn) Kind() string

Kind returns "fn".

func (*BuiltinFn) Repr

func (bf *BuiltinFn) Repr(int) string

Repr returns the representation of a builtin function as a variable name.

type CursorOnModeLiner

type CursorOnModeLiner interface {
	CursorOnModeLine() bool
}

CursorOnModeLiner is an optional interface that modes can implement. If a mode does and the method returns true, the cursor is placed on the modeline when that mode is active.

type Editor

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

Editor keeps the status of the line editor.

func NewEditor

func NewEditor(in *os.File, out *os.File, sigs chan os.Signal, ev *eval.Evaler, daemon *api.Client) *Editor

NewEditor creates an Editor.

func (*Editor) Active

func (ed *Editor) Active() bool

Active returns the activeness of the Editor.

func (*Editor) ActiveMutex

func (ed *Editor) ActiveMutex() *sync.Mutex

ActiveMutex returns a mutex that must be used when changing the activeness of the Editor.

func (*Editor) CallFn

func (ed *Editor) CallFn(fn eval.CallableValue, args ...eval.Value)

CallFn calls an Fn, displaying its outputs and possible errors as editor notifications. It is the preferred way to call a Fn while the editor is active.

func (*Editor) Notify

func (ed *Editor) Notify(format string, args ...interface{})

Notify adds one notification entry. It is concurrency-safe.

func (*Editor) ReadLine

func (ed *Editor) ReadLine() (line string, err error)

ReadLine reads a line interactively.

type History

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

History implements the $le:history variable. It is list-like.

func (History) IndexOne

func (hv History) IndexOne(idx eval.Value) eval.Value

func (History) Iterate

func (hv History) Iterate(f func(eval.Value) bool)

func (History) Kind

func (hv History) Kind() string

func (History) Len

func (hv History) Len() int

func (History) Repr

func (hv History) Repr(int) string

type ListRenderer

type ListRenderer interface {
	// ListRender renders the listing under the given constraint of width and
	// maximum height. It returns a rendered buffer.
	ListRender(width, maxHeight int) *buffer
}

ListRenderer is a mode with a listing that handles the rendering itself. NOTE(xiaq): This interface is being deprecated in favor of Lister.

type Lister

type Lister interface {
	List(maxHeight int) renderer
}

Lister is a mode with a listing.

type Mode

type Mode interface {
	ModeLine() renderer
	Binding(ui.Key) eval.CallableValue
}

Mode is an editor mode.

type Placeholderer

type Placeholderer interface {
	Placeholder() string
}

type Pos

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

Pos is the position within a buffer.

type Writer

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

Writer renders the editor UI.

Notes

Bugs

  • after calling extendRight, the widths of some lines can exceed b.width.

Directories

Path Synopsis
Package history provides utilities for the command history.
Package history provides utilities for the command history.
Package ui contains types that may be used by different editor frontends.
Package ui contains types that may be used by different editor frontends.

Jump to

Keyboard shortcuts

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