- Zig 95.4%
- Tree-sitter Query 2.2%
- Scheme 1.3%
- Python 0.8%
- Shell 0.3%
quote
A Scheme/Lisp and s-expression code editor component, built in Zig.
It is a standalone editor app, but is also designed to be embedded
inside applications such as game engines and tools that already
have a dvui window.
Status: pre-1.0. The editor is usable day-to-day for Scheme/Markdown work; paredit, multi-cursor, and the engine-integration phase (REPL panel, hot-reload, value inspection) are still in progress. See DESIGN.md for the full feature map and current phase.
Highlights
- Modal editing in the Helix/Kakoune lineage — normal mode for movement and selection, insert mode for typing.
- Tree-sitter–driven syntax highlighting + AST-aware indent for Scheme, Zig, JSON, and Markdown
- Scheme-aware paredit basics (auto-pair, skip-close, strict delete) and structural navigation
- Helix-style fuzzy file picker, buffer picker, command palette, live workspace grep (results re-search as you type), outline picker, theme picker
- Git-aware gutter: added/modified/removed bars, live against HEAD
- Scheme-defined keybindings, themes, and command-palette commands
(
src/keybindings.scm,src/themes.scm,src/commands.scm), layered with a userinit.scm - Multi-buffer editing with split-view, jumplist, dot-repeat, selection undo/redo, count-prefixed motions
- macOS app bundle (
zig build bundle)
Build
Requires Zig 0.16.0 or newer. Earlier toolchains will fail at manifest validation.
main is self-contained: every dependency is pinned by url+hash, so a
plain clone builds with no sibling checkouts. (The dev branch instead
uses ../sibling path dependencies for fast local iteration — as a
consumer you want main.)
zig build # debug build → zig-out/bin/quote
zig build run # build + run
zig build test # full test suite (~30 s warm; fuzz + perf canaries)
zig build bundle -Doptimize=ReleaseFast # macOS Quote.app
zig build install-user -Doptimize=ReleaseFast # bundle + install to ~/Applications & ~/.local/bin/quote
After install-user, Quote.app is in ~/Applications (clickable from
Finder) and quote is on $PATH — quote path/to/file.md opens the
file in the running Quote.app (or starts it). No sudo, no system-wide
writes. If ~/.local/bin isn't on your $PATH, the install step
prints the line to add to your shell rc.
build.zig.zon pins every dependency to an exact commit;
scripts/pin-deps (run on main) bumps the pins to the sibling
repos' pushed heads.
Dependencies
Zig package manager pulls these via build.zig.zon:
- storykit — text editing core (gap buffer, styling, layout, undo)
- dvui — immediate-mode GUI (our fork of david-vanderson/dvui tracking the Zig 0.16 work)
- dvui-sokol — sokol backend for dvui (windowing, Metal, clipboard, native dialogs, std.Io runtime)
- sokol-zig — sokol bindings fork (carries an NSTextInputClient patch for dead-key composition)
- sokey — keyboard-layout-aware key translation
- sift + sift-matcher — threaded fuzzy-match engine + fzf-style matcher (file/buffer pickers)
- zpicker — headless picker state (query, selection, scroll)
- comb — content-search engine (regex/literal over a gitignore-aware walk) behind the live grep
- plumbuz — in-Zig git library (HEAD blobs + line diff for the gutter, gitignore for the walks)
- zscheme — Scheme VM for REPL/completion/integration tests
- inputmap — modal input mapping
- zentry — file watching
- tree-sitter +
tree-sitter-scheme,
tree-sitter-json,tree-sitter-zig, andtree-sitter-markdown(vendored invendor/)
License
MIT — see LICENSE.