README.md

# rebar3_sheldon

A rebar plugin for spellchecking.

## Build

```sh
$ rebar3 compile
```

## Use

Add the plugin to your rebar config:

```erlang
{project_plugins, [{rebar3_sheldon, "~> 0.1.0"}]}.
```

Then just call your plugin directly in an existing application:
```sh
$ rebar3 spellcheck
===> Fetching rebar3_sheldon
===> Compiling rebar3_sheldon
$ ./rebar3 spellcheck
===> spellcheck detect warning emits:[#{filename => "src/application.erl",
                                    line => 2,
                                    reason =>
                                        #{bazinga => <<"Too bad Leonard">>,
                                          misspelled_words =>
                                              [#{candidates =>
                                                     ["commit","commot",
                                                      "comdt","comet","compt",
                                                      "comte","comdt","comet",
                                                      "compt","comte","comm",
                                                      "comm.","comma","comme",
                                                      "commo","commy","scomm"],
                                                 line_number => 1,
                                                 word => "Commt"}]},
                                    string => "Commt",type => string},
                                  #{filename => "test/shot_SUITE.erl",
                                    line => 1,
                                    reason =>
                                        #{bazinga =>
                                              <<"I'm exceedingly smart. I graduated college at fourteen. While my brother was getting an STD, I was getting a Ph.D. Penicillin can't take this away.">>,
                                          misspelled_words =>
                                              [#{candidates =>
                                                     ["speeling","speiling",
                                                      "spelding","spelling",
                                                      "sperling","spieling",
                                                      "apeling","pealing",
                                                      "peeling","pelting",
                                                      "perling","petling",
                                                      "sealing","seeling",
                                                      "selfing","seling",
                                                      "selling","setling",
                                                      "sapling","sipling",
                                                      "spiling","spaeing",
                                                      "spewing"],
                                                 line_number => 1,
                                                 word => "Speling"}]},
                                    string => "Speling",type => string}]
```

## Config
Example:
```erlang
{spellcheck, [
    {files, ["src/*.erl", "src/*/*.erl", "include/*.hrl"]},
    {ignore, ["src/*_ignore.erl"]},
    {ignore_regex, "[_@./#&+-=*]"},
    {options, #{dummy => option}}
]}.
```