[package]
name = "reovim-client-tui"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
description = "Reovim TUI client - terminal user interface"
repository.workspace = true
homepage.workspace = true

[features]
default = ["grpc"]
grpc = ["reovim-protocol/grpc", "dep:tonic", "dep:tokio-stream"]

[dependencies]
# v1 JSON-RPC client removed (gRPC v2 is the only supported protocol)

# Protocol types (v2 gRPC when grpc feature enabled)
reovim-protocol = { workspace = true }

# gRPC (optional, default enabled)
tonic = { workspace = true, optional = true }
tokio-stream = { version = "0.1", features = ["sync"], optional = true }

# Display driver (FrameBuffer, FrameRenderer, Style)
reovim-driver-display = { workspace = true }

# Native ClientModule implementations
reovim-tui-mod-statusline = { workspace = true }
reovim-tui-mod-hover = { workspace = true }
reovim-tui-mod-signature-help = { workspace = true }
reovim-tui-mod-landing = { workspace = true }
reovim-tui-mod-completion = { workspace = true }
reovim-tui-mod-notification = { workspace = true }
reovim-tui-mod-whichkey = { workspace = true }
reovim-tui-mod-cmdline = { workspace = true }
reovim-tui-mod-microscope = { workspace = true }
reovim-tui-mod-explorer = { workspace = true }
reovim-tui-mod-tetromino = { workspace = true }
reovim-tui-mod-line-numbers = { workspace = true }
reovim-tui-mod-fold = { workspace = true }
reovim-tui-mod-jump = { workspace = true }
reovim-tui-mod-pair = { workspace = true }
reovim-tui-mod-yank-flash = { workspace = true }
reovim-tui-mod-illuminate = { workspace = true }
reovim-tui-mod-diagnostics = { workspace = true }
reovim-tui-mod-markdown = { workspace = true }
reovim-tui-mod-bufferline = { workspace = true }

# Common client model (wire types, traits)
reovim-client-model = { workspace = true }

# Client driver contracts (CLM traits and types)
reovim-client-driver = { workspace = true }

# TUI driver (Terminal, Screen, InputReader, Cursor)
reovim-driver-tui = { workspace = true }

# Platform abstraction (dirs)
reovim-arch = { workspace = true }

# Async runtime
tokio = { workspace = true, features = ["net", "io-util", "time", "sync", "macros"] }
futures = { workspace = true }

# Terminal
crossterm = { workspace = true }

# Serialization
serde = { workspace = true }
serde_json = { workspace = true }

# CLI arguments
clap = { workspace = true }

# Timestamps
chrono = { workspace = true }

# Logging
tracing = { workspace = true }

[dev-dependencies]
tokio = { workspace = true, features = ["rt", "macros", "time"] }
reovim-testing = { workspace = true }
reovim-protocol = { workspace = true, features = ["grpc"] }
reovim-tui-mod-statusline = { workspace = true }
tempfile = "3"

[lints]
workspace = true
