>_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.
~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.
| Crate | Files | LOC | Size | Role |
|---|---|---|---|---|
| zmax-stdx | 7 | 2,970 | Standard-library extensions (rust-analyzer-style) | |
| zmax-core | 112 | 64,775 | Functional core editing primitives: rope, selections, transactions, syntax | |
| zmax-lsp-types | 35 | 9,930 | Language Server Protocol type definitions | |
| zmax-lsp | 6 | 4,420 | Language server client | |
| zmax-dap-types | 1 | 1,286 | Debug Adapter Protocol type definitions | |
| zmax-dap | 5 | 1,618 | Debug Adapter Protocol client | |
| zmax-event | 9 | 1,111 | Event primitives, hooks, and AsyncHook debouncing | |
| zmax-loader | 5 | 2,657 | Building, fetching, and loading external resources / grammars | |
| zmax-vcs | 8 | 1,897 | Version-control integration (diff gutters, blame) | |
| zmax-parsec | 1 | 574 | Parser-combinator utilities | |
| zmax-view | 27 | 24,464 | Imperative shell: Document, View, Editor state | |
| zmax-tui | 16 | 6,623 | TUI primitives (forked from tui-rs): surfaces, widgets, layout | |
| zmax-term | 277 | 356,254 | Terminal frontend: application loop, commands, keymap, scripting | |
| zmax-native | 1 | 3,593 | Native host bridge: the compiled-in surface zmax exposes to embedded scripting | |
| 14 crates | 510 | 482,172 | plus 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.
| Module | LOC | Purpose |
|---|---|---|
| scripting/mod.rs | 1505 | Shared scripting host: dispatch, kill ring, mark, document bridge |
| scripting/pipeline.rs | 623 | :xpipe multi-language filter chain (parse + run) |
| scripting/elisp.rs | 384 | Emacs Lisp (elisprs) — lowers to fusevm |
| scripting/viml.rs | 141 | Vimscript (vimlrs) front-end |
| scripting/viml_theme.rs | 302 | Vimscript :highlight/colorscheme bridge |
| scripting/tcl.rs | 145 | Tcl (tclrs) front-end |
| scripting/stryke.rs | 65 | stryke (strykelang) front-end |
| scripting/zsh.rs | 60 | zsh (zshrs) front-end |
| scripting/php.rs | 54 | PHP (phplang) front-end |
| scripting/r.rs | 53 | R (rlang) front-end |
| scripting/arb.rs | 49 | arb (arblang) front-end; also drives the fzf.vim pickers |
| scripting/ruby.rs | 47 | Ruby (rubylang) front-end |
| scripting/node.rs | 47 | JavaScript (node-js) front-end, output captured in-process |
| scripting/python.rs | 46 | Python (pythonrs) front-end |
| scripting/awk.rs | 18 | AWK (awkrs) front-end |
~LANGUAGE & GRAMMAR FOOTPRINT
Syntax support is configured in languages.toml and backed by vendored 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.
| Status | Count | Share | Notes |
|---|---|---|---|
| Ported | 8,972 | Fully ported feature items against a 9,924-item denominator | |
| Partial | 574 | Partially ported commands | |
| Denominator | 9,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.
| Metric | Count |
|---|---|
| #[test] functions (whole workspace) | 3,557 |
| Source files containing tests | 327 |
| 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.