[env]
FEATURES = ""

[tasks.default]
alias = "ci"

[tasks.ci]
description = "Run continuous integration tasks"
dependencies = ["lint-style", "clippy", "check", "test"]

[tasks.lint-style]
description = "Lint code style (formatting, typos, docs)"
dependencies = ["lint-format", "lint-typos", "lint-docs"]

[tasks.lint-format]
description = "Lint code formatting"
toolchain = "nightly"
command = "cargo"
args = ["fmt", "--all", "--check"]

[tasks.format]
description = "Fix code formatting"
toolchain = "nightly"
command = "cargo"
args = ["fmt", "--all"]

[tasks.lint-typos]
description = "Run typo checks"
install_crate = { crate_name = "typos-cli", binary = "typos", test_arg = "--version" }
command = "typos"

[tasks.lint-docs]
description = "Check documentation for errors and warnings"
toolchain = "nightly"
command = "cargo"
args = [
    "rustdoc",
    "--no-default-features",
    "--",
    "-Zunstable-options",
    "--check",
    "-Dwarnings",
]

[tasks.check]
description = "Check code for errors and warnings"
command = "cargo"
args = [
  "check",
  "--all-targets",
]

[tasks.build]
description = "Compile the project"
command = "cargo"
args = [
    "build",
    "--all-targets",
]

[tasks.clippy]
description = "Run Clippy for linting"
command = "cargo"
args = [
  "clippy",
  "--all-targets",
  "--tests",
  "--benches",
  "--no-default-features",
  "--",
  "-D",
  "warnings",
]