# crate-ci/typos config. https://github.com/crate-ci/typos
#
# Word-level allowlist for false positives the default dictionary flags.
# Project-specific tokens (`ratatui`, `swink`) and common -able/-eable variants
# are kept here rather than per-file ignores so the rule applies everywhere.

[default]
extend-ignore-identifiers-re = [
    # Short identifiers (≤3 chars) cause too many false positives in test
    # fixtures and abbreviations. Skip them entirely.
    "^[a-zA-Z]{1,3}$",
    # Hex digests / hashes (e.g. SHA prefixes in tests).
    "^[0-9a-fA-F]{6,}$",
]

[default.extend-words]
# Library / project names
ratatui = "ratatui"
swink = "swink"

# Variant English spellings the typos default dictionary doesn't recognise
clonable = "clonable"
migrateable = "migrateable"
togglable = "togglable"
unparseable = "unparseable"

[files]
extend-exclude = [
    "Cargo.lock",
    "target/",
    # Test fixtures contain intentional partial-word strings like "hel"+"lo"
    # to exercise streaming token boundaries; not worth allowlisting per-line.
    "**/tests/fixtures/**",
    "**/snapshots/**",
]
