loom¶
A terminal text editor for SBCL with Emacs-style keybindings. Its direct
runtime dependencies include cl-tty-kit, cl-host-kit, cl-history-kit,
cl-prolog-kit, cl-cli, cl-regex-kit, cl-boundary-kit,
cl-concurrent-kit, and cl-json-kit.
Status: early development (0.1.x, MVP)
Buffer editing, Emacs-style movement/kill-ring/yank/undo and numeric
prefixes, window splits,
file-tree create/rename/delete, syntax highlighting, Common Lisp
evaluation, a user init.lisp, session persistence, and a minimal LSP
client, named registers, and keyboard macros are implemented in the
current source.
The file tree uses a bounded concurrent
runtime: directory work is submitted to workers, while cache updates and
rendering remain on the editor's render lane. See the
roadmap for the implemented surface and deferred
Lem/Emacs-scale features.
Where to go next¶
- Getting started -- build loom and open a file.
- API reference -- the complete public export contract;
src/package.lispremains authoritative when the package surface changes. - Architecture -- the layered design and the toolkit family it builds on.
- Roadmap -- what is implemented and what is not, yet.
- Development -- source builds, tests, coverage, and process-level checks.
The CLI accepts --help, --version, and one optional path. The default
keybindings are installed by
src/application/commands-keybindings.lisp;
the command catalogue and M-x registry live in
src/application/command-definitions.lisp
and src/application/command-registry.lisp.