acme

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2024 License: MIT Imports: 18 Imported by: 186

Documentation

Overview

Package acme is a simple interface for interacting with acme windows.

Many of the functions in this package take a format string and optional parameters. In the documentation, the notation format, ... denotes the result of formatting the string and arguments using fmt.Sprintf.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoExit

func AutoExit(exit bool)

AutoExit sets whether to call os.Exit the next time the last managed acme window is deleted. If there are no acme windows at the time of the call, the exit does not happen until one is created and then deleted.

func DeleteAll

func DeleteAll()

DeleteAll deletes all windows.

func Err

func Err(src, msg string)

Err finds or creates a window appropriate for showing errors related to a window titled src and then prints msg to that window. It adds a final newline to msg if needed.

func Errf

func Errf(src, format string, args ...interface{})

Errf is like Err but accepts a printf-style formatting.

Types

type Event

type Event struct {
	// The two event characters, indicating origin and type of action
	C1, C2 rune

	// The character addresses of the action.
	// If the original event had an empty selection (OrigQ0=OrigQ1)
	// and was accompanied by an expansion (the 2 bit is set in Flag),
	// then Q0 and Q1 will indicate the expansion rather than the
	// original event.
	Q0, Q1 int

	// The Q0 and Q1 of the original event, even if it was expanded.
	// If there was no expansion, OrigQ0=Q0 and OrigQ1=Q1.
	OrigQ0, OrigQ1 int

	// The flag bits.
	Flag int

	// The number of bytes in the optional text.
	Nb int

	// The number of characters (UTF-8 sequences) in the optional text.
	Nr int

	// The optional text itself, encoded in UTF-8.
	Text []byte

	// The chorded argument, if present (the 8 bit is set in the flag).
	Arg []byte

	// The chorded location, if present (the 8 bit is set in the flag).
	Loc []byte
}

An Event represents an event originating in a particular window. The fields correspond to the fields in acme's event messages. See http://swtch.com/plan9port/man/man4/acme.html for details.

type EventHandler

type EventHandler interface {
	Execute(cmd string) bool
	Look(arg string) bool
}

type LogEvent

type LogEvent struct {
	ID   int
	Op   string
	Name string
}

A LogEvent is a single event in the acme log file.

type LogReader

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

A LogReader provides read access to the acme log file.

func Log

func Log() (*LogReader, error)

Log returns a reader reading the acme/log file.

func (*LogReader) Close

func (r *LogReader) Close() error

func (*LogReader) Read

func (r *LogReader) Read() (LogEvent, error)

Read reads an event from the acme log file.

type Win

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

A Win represents a single acme window and its control files.

func New

func New() (*Win, error)

New creates a new window.

func Open

func Open(id int, ctl *client.Fid) (*Win, error)

Open connects to the existing window with the given id. If ctl is non-nil, Open uses it as the window's control file and takes ownership of it.

func Show

func Show(name string) *Win

Show looks and causes acme to show the window with the given name, returning that window. If this process has not created a window with the given name (or if any such window has since been deleted), Show returns nil.

func (*Win) Addr

func (w *Win) Addr(format string, args ...interface{}) error

Addr writes format, ... to the window's addr file.

func (w *Win) Blink() (stop func())

Blink starts the window tag blinking and returns a function that stops it. When stop returns, the blinking is over and the window state is clean.

func (*Win) Clear

func (w *Win) Clear()

Clear clears the window body.

func (*Win) CloseFiles

func (w *Win) CloseFiles()

CloseFiles closes all the open files associated with the window w. (These file descriptors are cached across calls to Ctl, etc.)

func (*Win) Ctl

func (w *Win) Ctl(format string, args ...interface{}) error

Ctl writes the command format, ... to the window's ctl file.

func (*Win) Del

func (w *Win) Del(sure bool) error

Winctl deletes the window, writing `del' (or, if sure is true, `delete') to the ctl file.

func (*Win) Err

func (w *Win) Err(msg string)

Err finds or creates a window appropriate for showing errors related to w and then prints msg to that window. It adds a final newline to msg if needed.

func (*Win) Errf

func (w *Win) Errf(format string, args ...interface{})

func (*Win) EventChan

func (w *Win) EventChan() <-chan *Event

EventChan returns a channel on which events can be read. The first call to EventChan allocates a channel and starts a new goroutine that loops calling ReadEvent and sending the result into the channel. Subsequent calls return the same channel. Clients should not call ReadEvent after calling EventChan.

func (*Win) EventLoop

func (w *Win) EventLoop(h EventHandler)

func (*Win) Font

func (w *Win) Font() (tab int, font *draw.Font, err error)

Font returns the window's current tab width (in zeros) and font.

func (*Win) Fprintf

func (w *Win) Fprintf(file, format string, args ...interface{}) error

func (*Win) ID

func (w *Win) ID() int

func (*Win) Info added in v0.0.5

func (w *Win) Info() (WinInfo, error)

func (*Win) Name

func (w *Win) Name(format string, args ...interface{}) error

func (*Win) OpenEvent

func (w *Win) OpenEvent() error

func (*Win) PrintTabbed

func (w *Win) PrintTabbed(text string)

PrintTabbed prints tab-separated columnated text to body, replacing single tabs with runs of tabs as needed to align columns.

func (*Win) Read

func (w *Win) Read(file string, b []byte) (n int, err error)

func (*Win) ReadAddr

func (w *Win) ReadAddr() (q0, q1 int, err error)

func (*Win) ReadAll

func (w *Win) ReadAll(file string) ([]byte, error)

ReadAll

func (*Win) ReadEvent

func (w *Win) ReadEvent() (e *Event, err error)

ReadEvent reads the next event from the window's event file.

func (*Win) Seek

func (w *Win) Seek(file string, offset int64, whence int) (int64, error)

func (*Win) Selection

func (w *Win) Selection() string

func (*Win) SetErrorPrefix

func (w *Win) SetErrorPrefix(p string)

func (*Win) Sort

func (w *Win) Sort(less func(x, y string) bool) error

Sort sorts the lines in the current address range according to the comparison function.

func (*Win) Write

func (w *Win) Write(file string, b []byte) (n int, err error)

func (*Win) WriteEvent

func (w *Win) WriteEvent(e *Event) error

WriteEvent writes an event back to the window's event file, indicating to acme that the event should be handled internally.

type WinInfo

type WinInfo struct {
	ID int
	// TagLen holds the length of the tag in runes.
	TagLen int
	// TagLen holds the length of the body in runes.
	BodyLen    int
	IsDir      bool
	IsModified bool

	// Name holds the filename of the window.
	Name string

	// Tag holds the rest of the tag after the filename.
	Tag string

	// The Size and History fields can only be non-nil
	// when WinInfo has been obtained by calling
	// the Win.Info method, because that information
	// isn't available as part of the index file.
	Size *WinSizeInfo
}

func Windows

func Windows() ([]WinInfo, error)

Windows returns a list of the existing acme windows.

type WinSizeInfo added in v0.0.5

type WinSizeInfo struct {
	Width    int
	Font     string
	TabWidth int
}

Directories

Path Synopsis
Dict module
Watch runs a command each time any file in the current directory is written.
Watch runs a command each time any file in the current directory is written.
Acmego watches acme for .go files being written.
Acmego watches acme for .go files being written.
Editinacme can be used as $EDITOR in a Unix environment.
Editinacme can be used as $EDITOR in a Unix environment.

Jump to

Keyboard shortcuts

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