// ZMAX — ENGINEERING REPORT

A modal IDE in Rust that ports the command and keybinding surface of the other terminal editors.

>_EXECUTIVE SUMMARY

A structural snapshot of the zmax v0.4.74 Cargo workspace — module map, dependency footprint, scripting embeds, and test inventory. zmax is a modal IDE; the workspace ships 13 first-party crates plus an xtask build helper, with zmax-term as the default member (the terminal binary). All figures below are counted directly from the Rust source tree (Edition 2021, MSRV 1.90, license MPL-2.0), not estimated.

14
Library / Binary Crates
510
Rust Source Files
482,172
Lines of Rust in Crate src
3,557
#[test] Functions
327
Files Containing Tests
361
Configured Languages
313
Tree-sitter Grammars
8,972
Ported Feature Items

~MODULE MAP

One row per workspace crate, in dependency order from core primitives up to the terminal frontend. Files and LOC count *.rs under each crate's src/; the bar tracks each crate's share of the largest crate. zmax-term is the largest crate by far (~42% of crate LOC); its commands.rs holds the keybinding-mapped actions and keymap.rs links them to key combinations.

CrateFilesLOCSizeRole
zmax-stdx72,970
Standard-library extensions (rust-analyzer-style)
zmax-core11264,775
Functional core editing primitives: rope, selections, transactions, syntax
zmax-lsp-types359,930
Language Server Protocol type definitions
zmax-lsp64,420
Language server client
zmax-dap-types11,286
Debug Adapter Protocol type definitions
zmax-dap51,618
Debug Adapter Protocol client
zmax-event91,111
Event primitives, hooks, and AsyncHook debouncing
zmax-loader52,657
Building, fetching, and loading external resources / grammars
zmax-vcs81,897
Version-control integration (diff gutters, blame)
zmax-parsec1574
Parser-combinator utilities
zmax-view2724,464
Imperative shell: Document, View, Editor state
zmax-tui166,623
TUI primitives (forked from tui-rs): surfaces, widgets, layout
zmax-term277356,254
Terminal frontend: application loop, commands, keymap, scripting
zmax-native13,593
Native host bridge: the compiled-in surface zmax exposes to embedded scripting
14 crates510482,172plus xtask build tooling

The workspace total of ~509.2k lines includes integration tests, benchmarks, and the xtask helper beyond the per-crate src/ figures above.


~SCRIPTING EMBEDS

zmax embeds twelve scripting front-ends under zmax-term/src/commands/scripting/ — elisp, vimscript, awk, zsh, stryke, ruby, php, python, node, arb, tcl and r — each a pure-Rust crate compiled into the binary with no external process and no FFI between them. Per project design, every interpreter lowers to a shared fusevm bytecode VM rather than carrying its own VM/JIT.

ModuleLOCPurpose
scripting/mod.rs1505Shared scripting host: dispatch, kill ring, mark, document bridge
scripting/pipeline.rs623:xpipe multi-language filter chain (parse + run)
scripting/elisp.rs384Emacs Lisp (elisprs) — lowers to fusevm
scripting/viml.rs141Vimscript (vimlrs) front-end
scripting/viml_theme.rs302Vimscript :highlight/colorscheme bridge
scripting/tcl.rs145Tcl (tclrs) front-end
scripting/stryke.rs65stryke (strykelang) front-end
scripting/zsh.rs60zsh (zshrs) front-end
scripting/php.rs54PHP (phplang) front-end
scripting/r.rs53R (rlang) front-end
scripting/arb.rs49arb (arblang) front-end; also drives the fzf.vim pickers
scripting/ruby.rs47Ruby (rubylang) front-end
scripting/node.rs47JavaScript (node-js) front-end, output captured in-process
scripting/python.rs46Python (pythonrs) front-end
scripting/awk.rs18AWK (awkrs) front-end

~LANGUAGE & GRAMMAR FOOTPRINT

Syntax support is configured in languages.toml and backed by vendored tree-sitter grammar sources.

361
[[language]] Entries
313
Tree-sitter Grammar Sources

~PORT COVERAGE

Coverage of vim/neovim, emacs, spacemacs, kakoune, vis, sam, ed, nvi, vile, mg, nano, micro, mcedit, ne and dte commands ported into zmax, derived in the auto-generated port report. Full evidence and re-derived numerator live in the linked reports.

StatusCountShareNotes
Ported8,972
90.4%
Fully ported feature items against a 9,924-item denominator
Partial574
5.8%
Partially ported commands
Denominator9,924
Total feature surface considered

Command Surface

The port spans 2,510 static commands, 3,122 typable commands, and 4,606 default keybindings. See the port_report.html for the full re-derived numerator and evidence.

Keybinding Coverage

The keybinding_report.html isolates the key-press subset of the port report: which bindings are ported, partial, or pending.


~TEST INVENTORY & BUILD STATUS

Counts are derived statically from the source tree. No build or test run was executed for this report, so pass/fail status is not asserted here — only the test surface is enumerated. Reproduce locally with cargo test --workspace.

MetricCount
#[test] functions (whole workspace)3,557
Source files containing tests327
Integration test files — zmax-term/tests/6
Integration test files — zmax-tui/tests/6
Integration test files — zmax-core/tests/1
Integration test files — zmax-stdx/tests/1

Fixture Suites

Additional fixture-based suites live under the top-level tests/ directory (tests/indent and tests/query).

Integration Profile

The workspace defines an integration Cargo profile that compiles zmax-core, zmax-tui, and zmax-term at opt-level = 2 for faster integration runs.


~RELATED REPORTS

The port and keybinding reports are auto-generated by scripts/gen_port_report.py. Figures in this report were counted from the v0.4.74 source tree.

Documentation Home

index.html — landing page and project doc index.

Port Report

port_report.html — Emacs/Vim/Spacemacs feature coverage: 8,972 ported (90.4%) and 574 partial against a 9,924-item denominator, over a surface of 2,510 static commands, 3,122 typable commands, and 4,606 default keybindings.

Keybinding Coverage

keybinding_report.html — the key-press subset of the port report.

Architecture & Vision

architecture.md — narrative of how the crates fit together. vision.md — goals and direction.