KODESPEL(1)

NAME
kodespel - spell-checker for source code

SYNOPSIS

kodespel [-d dictionary] file [file ...]

kodespel --list-dicts

DESCRIPTION

kodespel is a spellchecker for source code. kodespel's nifty trick is that it knows how to split common programming identifiers like 'getAllStuff' or 'DoThingsNow' or 'num_objects' or 'HTTPResponse' into words, feed those to ispell(1), and interpret ispell's output.

Basic usage is to run kodespel on one or more individual files or directories:

kodespel foo.py main.go README.md

kodespel uses a collection of dictionaries to spellcheck each file. It always uses the base dictionary, which is a set of words common in source code across languages and platforms. Additionally, there is a language-specific dictionary for each language kodespel knows about. Language-specific dictionaries are automatically chosen for you.

In this example, kodespell will spellcheck each file with:

•   foo.py: dictionaries base and python

•   main.go: dictionaries base and go

•   README.md: dictionary base only (no language dictionary for Markdown)

    If run on a directory, kodespel will recurse into that directory and spellcheck every file that it recognizes:

    kodespel src/

    will search for *.py, *.c, *.h, and any other extension that kodespel has built-in support for. (Currently: Python, Perl, Go, C, C++, and Java). Unsupported files are ignored, but if you pass those filenames explicitly, they will be checked. Note: the SlackBuilds.org package of kodespel includes a sbo dictionary. It will only be used if you enable it with -d sbo.

    kodespel ships with several other common dictionaries. For example, if the program you are spellchecking uses a lot of Unix system calls, you would add the unix dictionary:

    kodespel -d unix foo.py main.go README.md

    The -d option applies to every file being checked.

    To see the list of all builtin dictionaries, run:

    kodespel --list-dicts

    Finally, you can create your own dictionaries, and use as many of them as you like. A dictionary is a plain text file with one word per line:

    $ cat myproject.dict
    nargs
    args

    You can specify your personal dictionaries with -d, just like kodespel's builtin dictionaries:

    kodespel -d unix -d myproject.dict foo.py ...

OPTIONS

-h, --help
    Show built-in help and exit.

-a, --all
    Report every single misspelling [default: --unique].

-u, --unique
    Report each misspelling only once [default].

-d dict, --dictionary=dict
    Use this dictionary. dict may be a filename or a dictionary name. Use multiple times to include multiple dictionaries.

--list-dicts
    List available dictionaries and exit.

--dump-dict
    Build custom dictionary (respecting -d options).

--make-dict=dictfile
    Write unknown words to dictfile.

-i string, --ignore=regex
    Ignore any words matching regex.

-C, --compound
    Allow compound words (e.g. getall) [default].

--no-compound
    Do not allow compound words

-W N, --wordlen=N
    Ignore words with <= N characters [default: 3].

EXIT STATUS

•   0 - success; no misspellings found.

•   1 - at least one misspelling found or there was an error reading one or more input file (including encoding errors for non-UTF8 files).

•   2 - invalid command line option(s).

FILES

/usr/share/kodespel/
    The default dictionaries are stored here.

LIMITATIONS

kodespel has no option to read from standard input. However, on Linux, you can run kodespel /dev/stdin.

kodespel can only handle UTF-8 encoding (which includes 7-bit ASCII). It will choke on files that use e.g. ISO-8859 encoding.

kodespel writes its output to stderr, not stdout. This makes it difficult to use it from a script. Try e.g:

kodespel <args> 2>&1 | <command>

Also, if you get exit status 1, you can't tell if that's an actual error or misspellings were found, without examining the actual output.

COPYRIGHT

See the file /usr/doc/kodespel-0.1.1+20220227_e0095c7/LICENSE.txt for license information.

AUTHORS

kodespel was written by Greg Ward.

This man page written (mostly copied and adapted from README.md and the --help output) for the SlackBuilds.org project by B. Watson, and is licensed under the WTFPL.

SEE ALSO

The kodespel homepage: https://pypi.org/project/kodespel/

codespell(1)