A filter as an abstract class, letting you provide a filter instead of
an op
, automatically providing a good .toString
for debugging, and
providing a reasonable "place" inside the inheriting class/object to put
state or helpers or other logic associated with the filter.
The way you configure your terminal behavior; a trivial wrapper around a
function, though you should provide a good .toString
method to make
debugging easier.
A truly-lazy implementation of scala.Stream
Prints stuff to an ad-hoc logging file when running the repl or terminal in development mode
Prints stuff to an ad-hoc logging file when running the repl or terminal in development mode
Very handy for the common case where you're debugging terminal interactions
and cannot use println
because it will stomp all over your already messed
up terminal state and block debugging. With Debug, you can have a
separate terminal open tailing the log file and log as verbosely as you
want without affecting the primary terminal you're using to interact with
Ammonite.
A collection of helpers that to simpify the common case of building filters
One place to assign all the esotic control key input snippets to easy-to-remember names
The core logic around a terminal; it defines the base filters
API
through which anything (including basic cursor-navigation and typing)
interacts with the terminal.
The core logic around a terminal; it defines the base filters
API
through which anything (including basic cursor-navigation and typing)
interacts with the terminal.
Maintains basic invariants, such as "cursor should always be within the buffer", and "ansi terminal should reflect most up to date TermState"
The way you configure your terminal behavior; a trivial wrapper around a function, though you should provide a good
.toString
method to make debugging easier. The TermInfo and TermAction types are its interface to the terminal.Filters are composed sequentially: if a filter returns
None
the next filter is tried, while if a filter returnsSome
that ends the cascade. While yourop
function interacts with the terminal purely through immutable case classes, the Filter itself is free to maintain its own state and mutate it whenever, even when returningNone
to continue the cascade.