Start of the full Rust rewrite of Ghostty 1.3.1 (reference source in
../ghostty). Sets up a workspace whose crates mirror Ghostty's Zig modules
(vt, unicode, datastruct, os, input, config, terminal, font, renderer,
termio, core, apprt-gtk) so porting work can proceed in parallel per crate.
Also adds:
- docs/rewrite/{ARCHITECTURE,PLAN,STATUS,AGENT_GUIDE}.md: crate map, core
design decisions (safe Rust, slab-based PageList, logical capacity
accounting), phased plan, progress tracker, and porting rules.
- Workspace clippy config relaxing pedantic lints that are pure noise for
low-level terminal code (casts, long functions).
- Shared vt types needed by several work packages up front: kitty
keyboard flags (kitty/key.rs) and the CSI separator bitset (SepList).
Test Plan:
- cargo test -p ghostty-vt (3 tests pass)
- cargo clippy -p ghostty-vt --all-targets -- -D warnings
15 lines
570 B
Bash
Executable File
15 lines
570 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Compare number of Zig tests vs Rust tests per area.
|
|
set -euo pipefail
|
|
ZIG=/pantheon/pfs/git/rust/ghostty-rewrite/ghostty/src
|
|
RS=$(cd "$(dirname "$0")/.." && pwd)/crates
|
|
printf "%-12s %6s\n" area zig_tests
|
|
for d in terminal font renderer input config termio cli os datastruct unicode apprt; do
|
|
printf "%-12s %6s\n" "$d" "$(grep -rh '^test "' "$ZIG/$d" | wc -l)"
|
|
done
|
|
echo
|
|
printf "%-22s %6s\n" crate rust_tests
|
|
for c in "$RS"/*/; do
|
|
printf "%-22s %6s\n" "$(basename "$c")" "$(grep -rhE '^\s*#\[(test|gtk::test)\]' "$c" 2>/dev/null | wc -l)"
|
|
done
|