Cspell spell checking¶
|Maintainer:||Masatake YAMATO <firstname.lastname@example.org>|
make cspellreports unknown words. After verifying the reported words are correct you should add them to files under dictfiles directory.
cspelltarget assumes the names used in ctags source code are correctly spelled. Such names can be added semi-automatically; use
make dictstargets. It updates files prefixed with GENERATED- under dictfiles.
- Either semi-automatically generated or adding by manually, files under dictfiles directory should be installed to Universal-ctags git repository.
make cspellmakes and users SPELL_CHECKING.TMP at the top of source code directory as temporary working space.
cspelltarget depends on GNU aspell library. If the library is linked to,
An example session:
$ make cspell ./misc/gen-repoinfo > main/repoinfo.h CC main/ctags-repoinfo.o CCLD ctags /bin/sh misc/cspell checking bda36b226cfc0f492908bc5779268c353e615623...unknown words orignal dictfile checking 61a71ef37df9fd9ebb0d3e8a941effd643662cda...ok checking b08c956e155d47a8e689cfede2501ab48890c889...ok checking c07a6e94140e1d5cfeaf3cb42d2fc28bd0e92e51...ok ... checking 201e5e774fef84527802113969998bd71b14466d...ok Makefile:6510: recipe for target 'cspell' failed make: *** [cspell] Error 1
Here cspell reports “orignal” and “dictfile” as unknown words.
“orignal” should be “original”. So you should make a fixup commit for bda36b with “git commit –fixup=bda36b”. Then you may want to do “git rebase -i –autosquash master”.
“dictfile” may be a name used in source code files. Ideally
make dicts picks up the name and puts to one of GENERATED-
dictionaries. However, it is not implemented yet. What you can
do now is adding it to one of dictionaries under dictfiles
directory. After do “git add” the directory file and make
a fixup commit.
There are cases that you want to add a misspelled word intentionally to source tree: to test cases(Units and Tmain) and to documentations.
About test cases, make a file named dictfile under the directory of target test case, and put the words line by line. You can find an example in Units/simple-ctags-aspell.d/dictfile of Universal-ctags source tree.
For documentations, there is no good way. Suggestions are welcome.
“CSPELL:” prefix line is a temporary solution. A line started from
“CSPELL:” in a commit log is treated specially by
make cspell when
spell-checking the commit; whitespace separated words in the line are
added to a temporary dictionary.
commit 8efb57fa1c9d7b9b7ba01f49963d7d7779609f21 Author: Masatake YAMATO <email@example.com> Date: Mon Jun 5 23:08:51 2017 +0900 docs(man): fix styles of definition list CSPELL: xno xyes Signed-off-by: Masatake YAMATO <firstname.lastname@example.org>
Here “xno” and “xyes” are added to a dictionary temporary used during spell-checking the commit, “8efb57”; “xno” and “xyes” are never reported as unknown words. The temporary dictionary is used only for this commit.