[package]
name = "hjkl"
description = "Vim-modal terminal editor: standalone TUI built on the hjkl engine."
keywords = ["vim", "modal", "editor", "tui", "ratatui"]
categories = ["text-editors", "command-line-utilities"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
rust-version.workspace = true
readme = "README.md"

[[bin]]
name = "hjkl"
path = "src/main.rs"

[dependencies]
hjkl-lsp = "0.1"
crossbeam-channel = "0.5"
hjkl-buffer = "0.5"
hjkl-splash = { version = "0.2", features = ["ratatui"] }
hjkl-engine = "0.4"
hjkl-editor = "0.4"
hjkl-ratatui = "0.3"
hjkl-bonsai = "0.6"
hjkl-clipboard = "0.5"
hjkl-form = "0.3"
hjkl-picker = "0.5"
hjkl-config = "0.2"
ratatui = "0.30"
crossterm = "0.29"
clap = { version = "4", features = ["derive"] }
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
regex = "1"
git2 = { version = "0.20", default-features = false }
ignore = "0.4"
ec4rs = "1"
toml = "1.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
lsp-types = "0.97"
url = "2"
rmpv = { version = "1", features = ["with-serde"] }

[dev-dependencies]
tempfile = "3"
serde_json = "1"
nvim-rs = { version = "0.9", features = ["use_tokio"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread", "process", "io-util"] }
async-trait = "0.1"

[[example]]
name = "form_demo"
path = "examples/form_demo.rs"

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }.{ archive-format }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"

[package.metadata.deb]
maintainer = "mxaddict <mxaddict@kryptic.sh>"
copyright = "2026, mxaddict <mxaddict@kryptic.sh>"
license-file = ["../../LICENSE", "0"]
extended-description = """\
hjkl is a vim-modal terminal text editor built on the hjkl engine — \
a rope-backed buffer, vim FSM, motion grammar, ex commands, fuzzy \
picker, and tree-sitter highlighting, all running in your terminal."""
section = "editors"
priority = "optional"
assets = [
    ["target/release/hjkl", "/usr/bin/hjkl", "755"],
    ["README.md", "/usr/share/doc/hjkl/README.md", "644"],
    ["../../LICENSE", "/usr/share/doc/hjkl/copyright", "644"],
]

[package.metadata.generate-rpm]
assets = [
    { source = "target/release/hjkl", dest = "/usr/bin/hjkl", mode = "755" },
    { source = "README.md", dest = "/usr/share/doc/hjkl/README.md", mode = "644", doc = true },
    { source = "../../LICENSE", dest = "/usr/share/licenses/hjkl/LICENSE", mode = "644" },
]
# Group is largely ignored by modern dnf but keeps rpmlint quiet.
group = "Applications/Editors"
