a small library for creating UX elements in ansi-compatible terminals, using antsy, in typescript
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Robey ba7f7f85c6 0.8.18 2 months ago
src big EditBox event refactoring 2 months ago
tests big EditBox event refactoring 2 months ago
.gitignore cleanup old crap 9 months ago
LICENSE.txt change package name 8 months ago
README.md describe the newer elements like form and the code editor 3 months ago
package-lock.json 0.8.18 2 months ago
package.json 0.8.18 2 months ago
tsconfig.json move everything around to match a more modern src/test layout 8 months ago

README.md

microfugue

a small library for creating UX elements in ansi-compatible terminals, using antsy.

  • EditBox: a text editor which supports most basic unix line-editing control codes, and hooks for syntax highlighting and validation. it can be used as a multi-line editor where "enter" inserts new lines, or as a "readline" style command editor, where "enter" commits a line to the command history, and an AsyncIterator provides the command lines.

  • LogView: renders an antsy Canvas full of lines of RichText. lines are appended at the bottom. can be limited to storing a limited number of historical lines. lines are optionally word-wrapped.

  • RichText: text model consisting of (possibly nested) spans of text with a color attribute. can parse a simple format like "this is {f00:red}" or you can generate the spans yourself.

  • ScrollView: fills an antsy Region with the contents of a Canvas (like LogView) that can be scrolled vertically.

  • StatusBar: displays a one-line status bar, where the left and right half can be updated independently.

  • Form: a layout of input elements (text, buttons, checkboxes, selection lists, and edit boxes) with validation and navigation. a left column labels each row, and each row can be a single element, or a packed line of elements (like three buttons).

to-do

  • shift-arrow, etc to mark text in an edit box (mwuhaha)
  • C-c, C-v, C-x, C-z in an edit box