/vscode-spell-checker

A simple source code spell checker for code

Primary LanguageTypeScriptMIT LicenseMIT

vscode-spell-checker

Build & Test Actions Status Integration Tests Actions Status Lint Actions Status

A simple source code spell checker for multiple programming languages.

For the readme on the plugin: README.

Contributions

Building the extension

  1. npm install
  2. Launch vscode: code Spell Checker.code-workspace
  3. Run the extension from vscode:
    1. Debug Tab
    2. Choose Launch Extension configuration.
    3. F5

* Requires Node >= 12

Debugging the Client

  1. Launch vscode: code packages/client
  2. Run the extension from vscode: F5

Debugging the Server

  1. Launch vscode for the server: code packages/_server
  2. Launch the client as specified above.
  3. Attach to the server: F5 or Debug -> Attach Server

Sometimes the ports get stuck. You can see if they are being used with:

netstat -anp tcp | grep 60048

Use the following command to find the process id (PID):

lsof -i tcp:60048

If anything shows up, then the port is still locked.

Packages

  • client - the actual extension running in VS Code.
  • _server - the extension server that processes spell checker requests
  • _settingsViewer - a webapp that provides a visual interface to the configuration files.
  • _integrationTests - a test suite that launches the extension in VS Code.

Dictionaries / Word List

Improvements to existing word lists and new word lists are welcome.

All dictionaries are being migrated to cspell-dicts. Some dictionaries are still located at cspell/dictionaries.

Format for Dictionary Word lists

The simplest format is one word per line.

apple
banana
orange
grape
pineapple

For programming languages, a word list might look like this:

ZipArchive::addGlob
ZipArchive::addPattern
ZipArchive::close
ZipArchive::deleteIndex
ZipArchive::deleteName
ZipArchive::extractTo

The word list complier will convert camelCase and snake_case words into a simple word list. This is both for speed and predictability.

ZipArchive::deleteIndex

becomes:

zip
archive
delete
index

Spaces between words in the word list have a special meaning.

New Delhi
New York
Los Angeles

becomes in the compiled dictionary:

new delhi
new
delhi
new york
york
los angeles
los
angeles

Spaces in the compiled dictionary have a special meaning. They tell the suggestion algorithm to suggest: 'newYork', 'new_york', 'new york', etc. for 'newyork'.

Locals

The default language is English: "cSpell.language": "en"

cSpell currently has English locals: en-US and en-GB.

Example words differences: behaviour (en-GB) vs behavior (en-US)