codespell
*********

Fix common misspellings in text files. It's designed primarily for checking
misspelled words in source code, but it can be used with other files as well.

Information
===========

Mailing list:
	codespell@googlegroups.com

Repository:
	git@github.com:lucasdemarchi/codespell.git
	https://github.com/lucasdemarchi/codespell.git

Releases:
	https://github.com/lucasdemarchi/codespell/releases

Usage
=====

Check usage with codespell -h. There are a few command line options. We ship
a dictionary that is an improved version of the one available at
http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
after applying them in projects like Linux Kernel, EFL, oFono among others.
You can provide your own version of the directory, but patches for
new/different entries are very welcome.

Dictionary format
=================

The format of the dictionary was influenced by the one it originally came from,
i.e. from wikipedia. The difference is how multiple options are treated and
that the last argument is the reason why a certain entry could not be applied
directly, but instead be manually inspected. E.g:

1) Simple entry: one wrong word / one suggestion

calulated->calculated

2) Entry with more than one suggested fix

fiel->feel, field, file, phial,

Note the last comma! You need to use it, otherwise the last suggestion will be
discarded. When there are more than one suggestion, automatically fix is not
possible and the best we can do is to give the user the file and line where the
error occurred as well as the suggestions

3) Entry with one word, but with automatically fix disabled

clas->class, disabled because of name clash in c++

Note that there isn't a comma in the end of the line. The last argument is
treated as the reason why a suggestion can not be automatically applied.
