1
0
Fork
You've already forked quote
0
A streamlined, fast modal code editor with Kakoune/Helix selection -> action model. Supports Scheme, Zig and Markdown (tree-sitter). Built in Zig, on storykit for text editing and dvui for rendering.
  • Zig 95.4%
  • Tree-sitter Query 2.2%
  • Scheme 1.3%
  • Python 0.8%
  • Shell 0.3%
2026年07月06日 23:15:55 +02:00
examples formatSize: use dot decimal separator (1.40 MB) 2026年06月27日 12:16:24 +02:00
scripts dev: restore path manifest (reverse merge leak) + scripts/sync-dev 2026年07月06日 23:07:34 +02:00
src git gutter: bounded per-edit diff — marks stay live during paste storms 2026年07月06日 09:37:22 +02:00
tests copy: read the gap buffer directly — no per-block layout (450x) 2026年07月06日 09:01:15 +02:00
tools Fix dead keys on macOS via forked sokol with NSTextInputClient 2026年03月15日 09:51:19 +01:00
vendor Add full markdown inline parsing with extensions (wiki links, tags) 2026年03月15日 00:59:25 +01:00
.gitattributes dev: restore path manifest (reverse merge leak) + scripts/sync-dev 2026年07月06日 23:07:34 +02:00
.gitignore Untrack .claude/ — Claude Code session state 2026年05月11日 16:04:01 +02:00
build.zig grep: live workspace search backed by comb (regex, smart-case, streaming) 2026年07月02日 15:29:17 +02:00
build.zig.zon Merge branch 'dev' 2026年07月06日 23:15:55 +02:00
CLAUDE.md Highlight composition + plain language + NFC fix 2026年05月03日 20:53:54 +02:00
context.md dev: restore path manifest (reverse merge leak) + scripts/sync-dev 2026年07月06日 23:07:34 +02:00
DESIGN.md grep: live workspace search backed by comb (regex, smart-case, streaming) 2026年07月02日 15:29:17 +02:00
LICENSE Migrate to Zig 0.16 2026年05月01日 18:43:25 +02:00
README.md readme: quote is a standalone editor app first, embeddable second 2026年07月06日 23:15:07 +02:00
TODO.md grep: live workspace search backed by comb (regex, smart-case, streaming) 2026年07月02日 15:29:17 +02:00

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 user init.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 $PATHquote 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, and tree-sitter-markdown (vendored in vendor/)

License

MIT — see LICENSE.