# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.90"
name = "television"
version = "0.14.1"
authors = ["Alexandre Pasmantier <alex.pasmant@gmail.com>"]
build = "build.rs"
exclude = [
    "website",
    ".github",
    "apt",
    "website",
    "assets",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A portable and hackable fuzzy finder for the terminal"
homepage = "https://github.com/alexpasmantier/television"
readme = "README.md"
keywords = [
    "search",
    "fuzzy",
    "preview",
    "tui",
    "terminal",
]
categories = [
    "command-line-utilities",
    "command-line-interface",
    "concurrency",
    "development-tools",
]
license = "MIT"
repository = "https://github.com/alexpasmantier/television"

[package.metadata.deb]
maintainer = "Alexandre Pasmantier <alex.pasmant@gmail.com>"
copyright = "Copyright 2025 Alexandre Pasmantier <alex.pasmant@gmail.com>"
extended-description = """
Television is a portable and hackable fuzzy finder for the terminal.

It lets you search in real time through any kind of data source (called "channels") such as:

    files and directories
    code
    notes
    processes
    git repositories
    environment variables
    docker containers
    ...and much more


with support for previewing results, customizable actions and keybindings, and integration with your favorite
shell and editor.
"""
section = "utils"
priority = "optional"
depends = "$auto"
assets = [
    [
    "target/release/tv",
    "usr/bin/",
    "755",
],
    { source = "man/tv.1", dest = "usr/share/man/man1/", mode = "644" },
]

[lib]
name = "television"
path = "television/lib.rs"

[[bin]]
name = "tv"
path = "television/main.rs"
bench = false

[[test]]
name = "app"
path = "tests/app.rs"

[[test]]
name = "channels"
path = "tests/channels.rs"

[[test]]
name = "command_line"
path = "tests/command_line.rs"

[[test]]
name = "configuration"
path = "tests/configuration.rs"

[[test]]
name = "remote_control"
path = "tests/remote_control.rs"

[[test]]
name = "subcommands"
path = "tests/subcommands.rs"

[[bench]]
name = "main"
path = "benches/main.rs"
harness = false

[dependencies.ansi-to-tui]
version = "7.0"

[dependencies.anyhow]
version = "1.0"

[dependencies.base64]
version = "0.22"

[dependencies.better-panic]
version = "0.3"

[dependencies.clap]
version = "4.5"
features = [
    "derive",
    "cargo",
    "string",
]

[dependencies.clap_complete]
version = "4.5"

[dependencies.colored]
version = "3.0"

[dependencies.devicons]
version = "0.6"

[dependencies.directories]
version = "6.0"

[dependencies.fast-strip-ansi]
version = "0.11"

[dependencies.human-panic]
version = "2.0"

[dependencies.lazy-regex]
version = "3.4"
features = ["lite"]
default-features = false

[dependencies.nucleo]
version = "0.5"

[dependencies.parking_lot]
version = "0.12"

[dependencies.ratatui]
version = "0.29"
features = [
    "serde",
    "macros",
]

[dependencies.rayon]
version = "1.11"

[dependencies.rustc-hash]
version = "2.1"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_with]
version = "3.13"

[dependencies.signal-hook]
version = "0.3"

[dependencies.smallvec]
version = "1.15"

[dependencies.string_pipeline]
version = "0.13"

[dependencies.tokio]
version = "1.48"
features = ["full"]

[dependencies.toml]
version = "0.8"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dependencies.unicode-width]
version = "0.2"

[dependencies.ureq]
version = "3.0"

[dependencies.walkdir]
version = "2.5"

[dependencies.which]
version = "8.0"

[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]

[dev-dependencies.portable-pty]
version = "0.9.0"

[dev-dependencies.tempfile]
version = "3.16.0"

[dev-dependencies.vt100]
version = "0.15"

[build-dependencies.clap]
version = "4.5"
features = [
    "derive",
    "cargo",
]

[build-dependencies.clap_mangen]
version = "0.2.26"

[target.'cfg(not(target_os = "macos"))'.dependencies.crossterm]
version = "0.28"
features = ["serde"]

[target.'cfg(target_os = "macos")'.dependencies.crossterm]
version = "0.28.1"
features = [
    "serde",
    "use-dev-tty",
]

[target."cfg(windows)".dependencies.clipboard-win]
version = "5.4.0"

[target."cfg(windows)".dependencies.winapi-util]
version = "0.1.9"

[lints.clippy]
cast_precision_loss = "allow"
float_cmp = "allow"
from_iter_instead_of_collect = "allow"
implicit_hasher = "allow"
map_unwrap_or = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
similar_names = "allow"
too_many_lines = "allow"
uninlined_format_args = "allow"
wildcard_imports = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -1

[profile.deb]
debug = 0
inherits = "release"

[profile.profiling]
debug = 2
inherits = "release"

[profile.release]
lto = "fat"
codegen-units = 1

[profile.staging]
opt-level = 3
lto = false
inherits = "release"
