GitHub Action
Check Spelling
Everyone makes typos. This includes people writing documentation and comments, but it also includes programmers naming variables, functions, APIs, classes, and filenames.
Often, programmers will use InitialCapitalization
, camelCase
,
ALL_CAPS
, or IDLCase
when naming their things. When they do this, it makes
it much harder for naive spelling tools to recognize misspellings, and as such,
with a really high false-positive rate, people don't tend to enable spell checking
at all.
This repository's tools are capable of tolerating all of those variations. Specifically, w understands enough about how programmers name things that it can split the above conventions into word-like things for checking against a dictionary.
Input | Seen | Reported | Explanation |
---|---|---|---|
InitialCapitalization |
Initial Capitalization |
`` | Both words are in the dictionary |
camelCase |
camel Case |
`` | Both words are in the dictionary |
ALL_CAPS |
ALL CAPS |
`` | Both words are in the dictionary |
IDLCase |
IDL Case |
IDL |
The first word isn't in the dictionary, but the second is |
Generally, check-spelling wants to minimize the expect.txt
(or similar file(s)) so that it's easier for someone to open the file up and complain that something in it shouldn't be there.
The enemy of that goal is repetition or near repetition. The longer the file, the more likely a reader's eyes will glaze over before they spot something that shouldn't be there.
about.txt
IKEA was started July 28, 1943.
Corresponding expect.txt
:
IKEA
Explanation: IKEA
isn't in the dictionary.
This doesn't mean that it would be ok to write Ikea
or ikea
.
Ikea
is definitely wrong (and outside of domain names, ikea
is probably also wrong).
file.txt
Microsoft shipped Windows in 1985.
Corresponding expect.txt
:
Microsoft
Explanation: Microsoft
isn't in the dictionary.
file.js
// Microsoft shipped Windows in 1985.
MICROSOFT_WINDOWS_RELEASE_DATE="November 20, 1985"
Corresponding expect.txt
:
Microsoft
Explanation: Microsoft
isn't in the dictionary, but there's a reasonable expectation that in some programming language a proper noun will need to be written in uppercase in order to be used as constant (or similar).
This doesn't mean that a project has decided to allow microsoft
,
in a documentation oriented project microsoft
would be wrong.
file.js
// http://microsoft.com/ie
MICROSOFT_IE_RELEASE_DATE="August 16, 1995"
Corresponding expect.txt
:
microsoft
Explanation: microsoft
isn't in the dictionary, and there's a reasonable expectation that in some cases it will have to be written as Microsoft
(because in English the first word of a sentence will have its first letter capitalized) or as MICROSOFT
(because programmers tend to write things in uppercase for constants).
Just copy the spell-check-this
.github/workflows/spelling.yml
into your .github/workflows
in your project.
See the documentation for Configuration information.
When check-spelling runs and encounters something that isn't ideal,
it may output a message including an event code,
at the end of the message (unrecognized-spelling)
.
You should be able to look up the code in
https://docs.check-spelling.dev/Event-descriptions.
For unrecognized-spelling
,
that's:
https://docs.check-spelling.dev/Event-descriptions#unrecognized-spelling.
As of v0.0.22, you can use non English dictionaries with the help of Hunspell.
There is a wiki containing evolving information. It's open to public editing (and is occasionally defaced/spammed).
Read about running check-spelling locally.
I do test development on a prerelease branch.
Features and the behavior of this branch are not guaranteed to be stable as they're under semi-active development.