generate completions

This commit is contained in:
alice pellerin
2026-04-29 21:58:23 -05:00
parent 15132d44af
commit b9db974c17
4 changed files with 40 additions and 3 deletions
Generated
+10
View File
@@ -188,6 +188,15 @@ dependencies = [
"strsim", "strsim",
] ]
[[package]]
name = "clap_complete"
version = "4.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "660c0520455b1013b9bcb0393d5f643d7e4454fb69c915b8d6d2aa0e9a45acc3"
dependencies = [
"clap",
]
[[package]] [[package]]
name = "clap_derive" name = "clap_derive"
version = "4.6.0" version = "4.6.0"
@@ -542,6 +551,7 @@ name = "hexapoda"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"clap", "clap",
"clap_complete",
"crossterm", "crossterm",
"itertools", "itertools",
"ratatui", "ratatui",
+5
View File
@@ -7,6 +7,7 @@ keywords = ["cli", "tui", "hex", "tool", "editor"]
categories = ["command-line-utilities"] categories = ["command-line-utilities"]
license = "GPL-3.0-only" license = "GPL-3.0-only"
edition = "2024" edition = "2024"
build = "build.rs"
[dependencies] [dependencies]
clap = { version = "4.6.0", features = ["derive"] } clap = { version = "4.6.0", features = ["derive"] }
@@ -15,3 +16,7 @@ itertools = "0.14.0"
ratatui = "0.30.0" ratatui = "0.30.0"
serde = { version = "1.0.228", features = ["derive"] } serde = { version = "1.0.228", features = ["derive"] }
toml = "1.1.2" toml = "1.1.2"
[build-dependencies]
clap = { version = "4.6.0", features = ["derive"] }
clap_complete = "4.6.3"
+23
View File
@@ -0,0 +1,23 @@
use clap::{CommandFactory, ValueEnum};
use clap_complete::{generate_to, Shell};
use std::env;
use std::io::Error;
include!("src/arguments.rs");
fn main() -> Result<(), Error> {
let output_folder = match env::var_os("OUT_DIR") {
None => return Ok(()),
Some(output_folder) => output_folder,
};
let mut command = Arguments::command();
for &shell in Shell::value_variants() {
generate_to(shell, &mut command, "hexapoda", &output_folder)?;
}
println!("cargo:warning=completions generated in {output_folder:?}");
println!("cargo:rerun-if-changed=src/arguments.rs");
Ok(())
}
+2 -3
View File
@@ -23,7 +23,6 @@ mod action;
mod edit_action; mod edit_action;
mod arguments; mod arguments;
mod window_size; mod window_size;
mod utilities; mod utilities;
const BYTES_PER_LINE: usize = 0x10; const BYTES_PER_LINE: usize = 0x10;
@@ -34,13 +33,13 @@ const LINES_OF_PADDING: usize = 5;
const BYTES_OF_PADDING: usize = LINES_OF_PADDING * BYTES_PER_LINE; const BYTES_OF_PADDING: usize = LINES_OF_PADDING * BYTES_PER_LINE;
// TODO: // TODO:
// - update showcase
// - `go` goto entered offset // - `go` goto entered offset
// - search // - search
// - `/` hex, `A-/` ascii // - `/` hex, `A-/` ascii
// - if non-hex-digit typed, search ascii // - if non-hex-digit typed, search ascii
// - update showcase
// - inspector translations for varint // - inspector translations for varint
// - M mark at selected offset (like Jm) // - M mark at selected offset? (like Jm)
// - diffing // - diffing
// - doesn't have to be anything fancy, just compare each byte 1:1 // - doesn't have to be anything fancy, just compare each byte 1:1
// - sync scroll ? sync selections ?? // - sync scroll ? sync selections ??