Skip to content

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, cl-date-kit, cl-json-kit, cl-log-kit, cl-process-kit, cl-vcs-kit, and cl-resilience-kit.

nix run github:nerima-lisp/loom

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, a minimal LSP client with diagnostics, completion, and definition navigation, 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 -- selected editor APIs and the public feature APIs. Core exports are defined in src/package-exports.lisp, and feature exports in each packages/feature/<name>/src/package.lisp.
  • 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, registered lifecycle options, and loom [+LINE[:COL]] FILE....