# cargo-spellcheck [![crates.io](https://img.shields.io/crates/v/cargo_spellcheck.svg)](https://crates.io/crates/cargo-spellcheck) [![CI](https://ci.fff.rs/api/v1/teams/main/pipelines/cargo-spellcheck/jobs/master-validate/badge)](https://ci.fff.rs/teams/main/pipelines/cargo-spellcheck/jobs/master-validate) ![commits-since](https://img.shields.io/github/commits-since/drahnr/cargo-spellcheck/latest.svg) [![rust 1.70.0+ badge](https://img.shields.io/badge/rust-1.70.0+-93450a.svg)](https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html) Check your spelling with `hunspell` and/or `nlprule`. ## Use Cases Run `cargo spellcheck --fix` or `cargo spellcheck fix` to fix all your documentation comments in order to avoid nasty typos all over your source tree. Meant as a helper simplifying review as well as improving CI checks after a learning phase for custom/topic specific lingo. `cargo-spellcheck` is also a valuable tool to run from git commit hooks or CI/CD systems. ### Check For Spelling and/or Grammar Mistakes ```zsh cargo spellcheck check ```
error: spellcheck
   --> src/main.rs:44
    |
 44 | Fun facets shalld cause some erroris.
    |            ^^^^^^
    | - shall or shall d
    |
### Apply Suggestions Interactively ```zsh cargo spellcheck fix ```
error: spellcheck(Hunspell)
    --> /media/supersonic1t/projects/cargo-spellcheck/src/literalset.rs:291
     |
 291 |  Returns literl within the Err variant if not adjacent
     |          ^^^^^^

(13/14) Apply this suggestion [y,n,q,a,d,j,e,?]?

   lite
   litter
   litterer
   liter l
   liters
   literal
   liter
 ยป a custom replacement literal
## Installation `cargo install --locked cargo-spellcheck` The `--locked` flag is the preferred way of installing to get the tested set of dependencies. on OS X, you need to ensure that `libclang.dylib` can be found by the linker which can be achieved by setting `DYLB_FALLBACK_LIBRARY_PATH`: ``` export DYLD_FALLBACK_LIBRARY_PATH= \ "$(xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/usr/lib/" ``` In Linux, the file is `libclang.so` which can be installed via: ``` apt-get install libclang-dev ``` Afterwards, you can set the variable `LIBCLANG_PATH` via: ``` export LIBCLANG_PATH=/usr/lib/llvm-14/lib/ ``` ## Completions `cargo spellcheck completions` for autodetection of your current shell via `$SHELL`, or `cargo spellcheck completions --shell zsh` to explicitly specify your shell type. Commonly it's use like this from your shell's `.rc*` file: `source <(cargo spellcheck completions)` Note: There is a [relevant clap issue (#3508)](https://github.com/clap-rs/clap/issues/3508) that makes this fail in some cases. ## ๐ŸŽˆ Contribute! Contributions are very welcome! Generally the preferred way of doing so, is to comment in an issue that you would like to tackle the implementation/fix. This is usually followed by an initial PR where the implementation is then discussed and iteratively refined. No need to get it all correct the first time! ## Documentation - [Features and Roadmap](docs/features.md) - [Remedies for common issues](docs/remedy.md) - [Configuration](docs/configuration.md) - [Available Checkers](docs/checkers.md) - [Automation of `cargo-spellcheck`](docs/automation.md)