diff options
| author | rottedfm <rottedfm@proton.me> | 2026-08-19 11:24:55 -0400 |
|---|---|---|
| committer | rottedfm <rottedfm@proton.me> | 2026-08-19 11:24:55 -0400 |
| commit | 8e16347b0eb329e84892af8ece36886324c95f62 (patch) | |
| tree | be1267972b5de2f1ae592577dfabce67f1fe6e87 /Cargo.toml | |
| parent | c6ae4660d1cc2414b22c492c5e819d009c8187c2 (diff) | |
| parent | ea0bd36167b684c0accdb5ce2b2e21b8d84aeb25 (diff) | |
Establishes the first working baseline: moji <file> opens a file into a
ropey rope and edits it with Helix selection-first modal editing, under a
DO-178C DAL-C requirements and traceability process.
Prior to this, main tracked four files and src/main.rs was still
println!("Hello, world!") — there was no buildable state to build on.
Verified on a fresh clone of the branch with no untracked files:
cargo build; clippy --all-targets -D warnings clean; 294 tests passing;
scripts/check-trace.sh reports 98/98 requirements traced in both
directions.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'Cargo.toml')
| -rw-r--r-- | Cargo.toml | 89 |
1 files changed, 87 insertions, 2 deletions
@@ -1,6 +1,91 @@ [package] -name = "mojibake" -version = "0.1.0" +# The crate is `mojibake-editor` because `mojibake` was already taken on +# crates.io by an unrelated encoder. The binary is `moji` and the library +# target is `mojibake`, so neither the command nor `use mojibake::…` carries +# the suffix. +name = "mojibake-editor" +version = "0.0.1" edition = "2024" +# Let-chains (`if let ... && let ...`) are the binding constraint; they +# stabilised in 1.88. Edition 2024 alone would only need 1.85. +rust-version = "1.88" +description = "文字化け — a terminal text editor with Helix-style modal editing" +authors = ["rottedfm <rottedfm@proton.me>"] +license = "BSD-2-Clause" +readme = "README.md" +build = "build.rs" +repository = "https://git.mojibake.wiki/repos/mojibake" +keywords = ["editor", "terminal", "tui", "modal", "helix"] +categories = ["text-editors", "command-line-utilities"] + +# Development-only files that need not ship in a published tarball. +exclude = [".envrc", ".gitmessage", "scripts/"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +name = "mojibake" +path = "src/lib.rs" + +[[bin]] +name = "moji" +path = "src/main.rs" [dependencies] +better-panic = "0.3.0" +clap = { version = "4.6.1", features = [ + "derive", + "cargo", + "wrap_help", + "unicode", + "string", + "unstable-styles", +] } +color-eyre = "0.6.5" +# default-features = false drops json5/yaml/ini from the dependency tree entirely; +# TOML is the only configuration format mojibake accepts. See MJB-HLR-014. +config = { version = "0.15.25", default-features = false, features = ["toml"] } +crossterm = { version = "0.29.0", features = ["serde", "event-stream"] } +directories = "6.0.0" +encoding_rs = "0.8" +encoding_rs_io = "0.1" +futures = "0.3.32" +human-panic = "2.0.8" +libc = "0.2.186" +ratatui = { version = "0.30.2", features = ["serde", "macros"] } +# Byte-indexed by design: `metric_chars` is deliberately NOT enabled. +# +# Pinned with `=` rather than the default caret requirement. This is a +# pre-release under a DAL-C classification, and a caret requirement would +# silently accept a later beta whose behaviour has not been verified against +# our requirements. See docs/reviews/library-selection.md (MJB-DR-006). +ropey = "=2.0.0-beta.1" +serde = { version = "1.0.228", features = ["derive"] } +signal-hook = "0.4.4" +strip-ansi-escapes = "0.2.1" +strum = { version = "0.28.0", features = ["derive"] } +thiserror = "2" +tokio = { version = "1.52.3", features = ["full"] } +tokio-util = "0.7.18" +toml = "1.1" +tracing = "0.1.44" +tracing-error = "0.2.1" +tracing-subscriber = { version = "0.3.23", features = ["env-filter", "serde"] } +unicode-segmentation = "1.13" +unicode-width = "0.2" + +[dev-dependencies] +pretty_assertions = "1.4.1" +tempfile = "3" + +[build-dependencies] +anyhow = "1.0.103" +gix = { version = "0.86", default-features = false, features = ["max-performance-safe"] } +vergen-gix = { version = "10.0.1", features = ["build", "cargo"] } + +# Read the optimization guideline for more details: https://ratatui.rs/recipes/apps/release-your-app/#optimizations +[profile.release] +codegen-units = 1 +lto = true +opt-level = "s" +strip = true |
