[package] name = "microhx" version = "0.1.0" edition = "2021" rust-version = "1.75" authors = ["MicroHX Contributors"] description = "A modern modal text editor with Lua plugins, LSP, and tree-sitter" license = "MIT" repository = "https://github.com/microhx/microhx" keywords = ["editor", "vim", "helix", "lua", "tui"] categories = ["command-line-utilities", "text-editors"] [features] default = ["cli", "lua"] cli = ["dep:crossterm"] tui = ["dep:ratatui"] gui = ["dep:eframe", "dep:egui"] lua = ["dep:mlua"] [dependencies] # Core ropey = "1.6" thiserror = "2.0" anyhow = "1.0" # Async tokio = { version = "1.42", features = ["full"] } # Lua scripting (optional - requires full Rust std) mlua = { version = "0.10", optional = true, features = ["lua54", "send", "vendored", "serialize"] } # CLI/TUI crossterm = { version = "0.28", optional = true, features = ["event-stream"] } ratatui = { version = "0.29", optional = true } # GUI eframe = { version = "0.30", optional = true, default-features = false } egui = { version = "0.30", optional = true } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Utilities unicode-segmentation = "1.12" unicode-width = "0.2" dirs = "5.0" [dev-dependencies] tempfile = "3.14" pretty_assertions = "1.4" tokio-test = "0.4" [profile.release] lto = true codegen-units = 1 strip = true panic = "abort" [profile.release-static] inherits = "release" panic = "abort" [[bin]] name = "microhx" path = "src/main.rs" required-features = ["cli"] [[bin]] name = "microhx-tui" path = "src/main_tui.rs" required-features = ["tui"] [[bin]] name = "microhx-gui" path = "src/main_gui.rs" required-features = ["gui"] [lib] name = "microhx" path = "src/lib.rs"