Resolves the parity items of docs/rewrite/notes/review-rv17-codex.md (final-Z20.md): - FreeType-only font backend is also available on Apple targets (discovery-free, embedded emoji fonts); ghostty_surface_quicklook_font returns null for every backend except plain CoreText like Zig. - The +list-fonts test keys off the font crate's selected backend (HAS_DISCOVERY), correct under feature unification and on Apple. - Inspector font: 32 px rasterized with FreeType (dear-imgui freetype) like Ghostty; a new `visual-parity.sh inspector` scenario shows 0.031% differing pixels (hover highlight) vs the original on Linux. Windows, Apple and wasm keep stb_truetype at 32 px (registered as a deliberate deviation). - Inspector DCS/APC descriptions follow Zig 0.15.2's formatting (checked by running Zig), incl. the terminal.Parser.Action prefix. - The ImGui demo window appears only in dev-profile builds, mirroring Zig's .Debug-only gate. Test Plan: - cargo test --workspace --no-fail-fast (3582 passed) - just check-macos (both, also with --features font-backend-freetype) - scripts/visual-parity.sh inspector
54 lines
1.6 KiB
TOML
54 lines
1.6 KiB
TOML
[package]
|
|
name = "ghostty-inspector"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
dear-imgui-rs = "0.19"
|
|
ghostty-font.workspace = true
|
|
ghostty-input.workspace = true
|
|
ghostty-renderer.workspace = true
|
|
ghostty-terminal.workspace = true
|
|
ghostty-vt.workspace = true
|
|
log = "0.4"
|
|
|
|
# Zig builds Dear ImGui with `-DIMGUI_ENABLE_FREETYPE` (pkg/dcimgui), so the
|
|
# inspector font is rasterized with FreeType. The `freetype` feature needs a
|
|
# system FreeType (pkg-config); other targets keep stb_truetype (see
|
|
# `docs/rewrite/DEVIANT_FIXES.md`).
|
|
[target.'cfg(not(any(windows, target_vendor = "apple", target_arch = "wasm32")))'.dependencies]
|
|
dear-imgui-rs = { version = "0.19", features = ["freetype"] }
|
|
|
|
[lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[lints.clippy]
|
|
pedantic = { level = "warn", priority = -1 }
|
|
todo = "warn"
|
|
unwrap_used = "warn"
|
|
# Porting a low-level terminal emulator involves a lot of intentional
|
|
# numeric casts and long state-machine functions; these pedantic lints are
|
|
# noise for this codebase.
|
|
cast_possible_truncation = "allow"
|
|
cast_possible_wrap = "allow"
|
|
cast_sign_loss = "allow"
|
|
cast_precision_loss = "allow"
|
|
cast_lossless = "allow"
|
|
module_name_repetitions = "allow"
|
|
too_many_lines = "allow"
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|
|
similar_names = "allow"
|
|
struct_excessive_bools = "allow"
|
|
fn_params_excessive_bools = "allow"
|
|
match_same_arms = "allow"
|
|
unreadable_literal = "allow"
|
|
many_single_char_names = "allow"
|
|
doc_markdown = "allow"
|
|
must_use_candidate = "allow"
|
|
return_self_not_must_use = "allow"
|
|
used_underscore_binding = "allow"
|
|
large_stack_arrays = "allow"
|
|
inline_always = "allow"
|