[package]
name = "hjkl-engine"
description = "Vim FSM, motion grammar, and ex commands. Pre-1.0 churn."
keywords = ["vim", "modal", "editor", "fsm"]
categories = ["text-editors"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true
homepage.workspace = true
readme = "README.md"

[features]
default = ["serde"]
serde = ["dep:serde"]

[dev-dependencies]
proptest = "1"
serde_json = "1"

[dependencies]
# ratatui + crossterm are required deps until phase 5 lands the engine-native
# Style type and the `Buffer`/`Host` trait extraction (per SPEC). Once that
# refactor ships, both will move behind feature flags so wasm/no_std consumers
# can opt out.
hjkl-buffer = { path = "../hjkl-buffer", version = "=0.0.8", features = [
  "ratatui",
] }
bitflags = "2"
ratatui = "0.29"
crossterm = { version = "0.28.1", features = ["event-stream"] }
regex = "1"
serde = { version = "1", features = ["derive"], optional = true }
thiserror = "2"

[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--cfg", "docsrs"]
