{"id":13496506,"url":"https://github.com/streetsidesoftware/vscode-spell-checker","last_synced_at":"2026-02-08T19:20:00.582Z","repository":{"id":37502528,"uuid":"58924886","full_name":"streetsidesoftware/vscode-spell-checker","owner":"streetsidesoftware","description":"A simple source code spell checker for code","archived":false,"fork":false,"pushed_at":"2025-05-12T11:54:49.000Z","size":32578,"stargazers_count":1518,"open_issues_count":194,"forks_count":135,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-12T12:38:58.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://streetsidesoftware.github.io/vscode-spell-checker/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/streetsidesoftware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["streetsidesoftware"],"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://streetsidesoftware.com/sponsor/"]}},"created_at":"2016-05-16T10:42:22.000Z","updated_at":"2025-05-12T11:32:54.000Z","dependencies_parsed_at":"2023-07-12T14:00:18.592Z","dependency_job_id":"5eab8013-c8b3-486c-9525-bc1fdf35793a","html_url":"https://github.com/streetsidesoftware/vscode-spell-checker","commit_stats":{"total_commits":3149,"total_committers":65,"mean_commits":48.44615384615385,"dds":0.5296919657033978,"last_synced_commit":"3e6de0f369834344b70d350819d2cd18c2930090"},"previous_names":["jason-rev/vscode-spell-checker"],"tags_count":375,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streetsidesoftware%2Fvscode-spell-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streetsidesoftware%2Fvscode-spell-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streetsidesoftware%2Fvscode-spell-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streetsidesoftware%2Fvscode-spell-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streetsidesoftware","download_url":"https://codeload.github.com/streetsidesoftware/vscode-spell-checker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069220,"owners_count":22009513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:01:49.362Z","updated_at":"2026-02-08T19:20:00.537Z","avatar_url":"https://github.com/streetsidesoftware.png","language":"TypeScript","funding_links":["https://github.com/sponsors/streetsidesoftware","https://streetsidesoftware.com/sponsor/","https://patreon.com/streetsidesoftware","https://www.paypal.com/donate/?hosted_button_id=26LNBP2Q6MKCY","https://opencollective.com/code-spell-checker"],"categories":["TypeScript","others"],"sub_categories":[],"readme":"# Spelling Checker for Visual Studio Code\n\nA basic spell checker that works well with code and documents.\n\nThe goal of this spell checker is to help catch common spelling errors while keeping the number of false positives low.\n\n## Support Further Development\n\n- [![GitHub Sponsors](https://img.shields.io/badge/-black?style=social\u0026logo=githubsponsors\u0026label=GitHub%20Sponsor%3A%20Street%20Side%20Software)](https://github.com/sponsors/streetsidesoftware)\n- [![Patreon](https://img.shields.io/badge/-black?style=social\u0026logo=patreon\u0026label=Patreon%3A%20Street%20Side%20Software)](https://patreon.com/streetsidesoftware)\n- [![PayPal](https://img.shields.io/badge/-black?style=social\u0026logo=paypal\u0026label=PayPal%20Donate%3A%20Street%20Side%20Software)](https://www.paypal.com/donate/?hosted_button_id=26LNBP2Q6MKCY)\n- [![Open Collective](https://img.shields.io/badge/-black?style=social\u0026logo=opencollective\u0026label=Open%20Collective%3A%20Code%20Spell%20Checker)](https://opencollective.com/code-spell-checker)\n\n## Functionality\n\nLoad a TypeScript, JavaScript, Text, etc. file. Words not in the dictionary files will have\na squiggly underline.\n\n### Example\n\n![Example](https://raw.githubusercontent.com/streetsidesoftware/vscode-spell-checker/main/images/example.gif)\n\n## Suggestions\n\n![Example](https://raw.githubusercontent.com/streetsidesoftware/vscode-spell-checker/main/images/suggestions.gif)\n\nTo see the list of suggestions:\n\nAfter positioning the cursor in the word, any of the following should display the list of suggestions:\n\n- Click on the 💡 (lightbulb) in the left hand margin.\n- [`Quick Fix`](https://code.visualstudio.com/docs/getstarted/keybindings#_rich-languages-editing) Editor action command:\n    - Mac: `⌘`+`.` or `Cmd`+`.`\n    - PC: `Ctrl`+`.`\n\n## Install\n\nOpen up VS Code and hit `F1` and type `ext` select install and type `code-spell-checker` hit enter and reload window to enable.\n\n## Supported Languages\n\n- English (US)\n- English (GB) - turn on by changing `\"cSpell.language\": \"en\"` to `\"cSpell.language\": \"en-GB\"`\n\n## Add-On Dictionaries\n\n\u003c!--- cspell:disable ---\u003e\n\n\u003c!--- @@inject: https://github.com/streetsidesoftware/vscode-cspell-dict-extensions/blob/main/static/generated/marketplace_language_extensions.md ---\u003e\n\n### Language Dictionaries\n\n- [Ancient Greek](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-ancient-greek) - Ancient Greek dictionary extension for VS Code.\n- [Arabic](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-arabic) - Arabic dictionary extension for VS Code.\n- [Australian English](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-australian-english) - Australian English dictionary extension for VS Code.\n- [Austrian German](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-austrian-german) - Austrian German dictionary extension for VS Code.\n- [Basque](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-basque) - Basque dictionary extension for VS Code.\n- [British English](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-british-english) - British English dictionary extension for VS Code.\n- [Bulgarian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-bulgarian) - Bulgarian dictionary extension for VS Code.\n- [Canadian English](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-canadian-english) - Canadian English dictionary extension for VS Code.\n- [Catalan](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-catalan) - Catalan dictionary extension for VS Code.\n- [Croatian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-croatian) - Croatian dictionary extension for VS Code.\n- [Czech](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-czech) - Czech dictionary extension for VS Code.\n- [Danish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-danish) - Danish dictionary extension for VS Code.\n- [Dutch](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-dutch) - Dutch / Nederlands dictionary extension for VS Code.\n- [Esperanto](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-esperanto) - Esperanto dictionary extension for VS Code.\n- [Estonian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-estonian) - Estonian dictionary extension for VS Code.\n- [Finnish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-finnish) - Finnish dictionary extension for VS Code.\n- [French](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-french) - French dictionary extension for VS Code.\n- [French Réforme 90](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-french-reforme) - French Réforme 90 dictionary extension for VS Code.\n- [Galician](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-galician) - Galician dictionary extension for VS Code.\n- [German](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-german) - German dictionary extension for VS Code.\n- [Greek](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-greek) - Greek dictionary extension for VS Code.\n- [Hebrew](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-hebrew) - Hebrew dictionary extension for VS Code.\n- [Hungarian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-hungarian) - Hungarian dictionary extension for VS Code.\n- [Indonesian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-indonesian) - Indonesian dictionary extension for VS Code.\n- [Italian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-italian) - Italian dictionary extension for VS Code.\n- [Latin](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-latin) - Latin dictionary extension for VS Code.\n- [Latvian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-latvian) - Latvian dictionary extension for VS Code.\n- [Lithuanian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-lithuanian) - Lithuanian dictionary extension for VS Code.\n- [Macedonian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-macedonian) - Macedonian dictionary extension for VS Code.\n- [Mongolian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-mongolian) - Mongolian dictionary extension for VS Code.\n- [Norwegian Bokmål](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-norwegian-bokmal) - Norwegian Bokmål dictionary extension for VS Code.\n- [Persian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-persian) - Persian dictionary extension for VS Code.\n- [Polish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-polish) - Polish dictionary extension for VS Code.\n- [Portuguese](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-portuguese) - Portuguese dictionary extension for VS Code.\n- [Brazilian Portuguese](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-portuguese-brazilian) - Brazilian Portuguese dictionary extension for VS Code.\n- [Romanian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-romanian) - Romanian dictionary extension for VS Code.\n- [Russian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-russian) - Russian dictionary extension for VS Code.\n- [Serbian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-serbian) - Serbian dictionary extension for VS Code.\n- [Slovak](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-slovak) - Slovak dictionary extension for VS Code.\n- [Slovenian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-slovenian) - Slovenian dictionary extension for VS Code.\n- [Spanish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-spanish) - Spanish Add-On for Code Spell Checker\n- [Swedish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-swedish) - Swedish dictionary extension for VS Code.\n- [Swiss German](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-swiss-german) - Swiss German dictionary extension for VS Code.\n- [Turkish](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-turkish) - Turkish dictionary extension for VS Code.\n- [Ukrainian](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-ukrainian) - Ukrainian dictionary extension for VS Code.\n- [Vietnamese](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-vietnamese) - Vietnamese dictionary extension for VS Code.\n\n### Technical Dictionaries\n\n- [Medical Terms](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-medical-terms) - Medical Terms Add-On for Code Spell Checker\n- [Scientific Terms](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-scientific-terms) - Scientific Terms dictionary extension for VS Code.\n- [Win32](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-win32) - Win32 dictionary extension for VS Code.\n\n\u003c!--- @@inject-end: https://github.com/streetsidesoftware/vscode-cspell-dict-extensions/blob/main/static/generated/marketplace_language_extensions.md ---\u003e\n\n\u003c!--- cspell:enable ---\u003e\n\n## Enabled File Types\n\n- AsciiDoc\n- C, C++\n- C#\n- css, less, scss\n- Dart\n- Elixir\n- Go\n- Html\n- Java\n- JavaScript\n- JSON / JSONC\n- LaTeX\n- Markdown\n- PHP\n- PowerShell\n- Pug / Jade\n- Python\n- reStructuredText\n- Ruby\n- Rust\n- Scala\n- Text\n- TypeScript\n- YAML\n- SQL\n\n### Enable / Disable File Types\n\nTo _Enable_ or _Disable_ spell checking for a file type:\n\n1. Click on the Spell Checker status in the status bar:\n\n \u003cimg width=\"57\" alt=\"Spell Checker Status Bar\" src=\"https://user-images.githubusercontent.com/3740137/177296936-54d5a88c-a596-4178-bd91-0be06161e1fc.png\" /\u003e\n\n2. On the Info screen, click the checkbox.\n\n \u003cimg width=\"710\" alt=\"Spell Checker Information Window\" src=\"https://user-images.githubusercontent.com/3740137/177297717-88da81d8-9a8c-4907-9424-66e013899318.png\" /\u003e\n\n## How it works with camelCase\n\nThe concept is simple, split camelCase words before checking them against a list of known English words.\n\n- camelCase -\u003e camel case\n- HTMLInput -\u003e html input -- Notice that the `I` is associated with `Input` and not `HTML`\n- snake_case_words -\u003e snake case words\n- camel2snake -\u003e camel snake -- (the 2 is ignored)\n\n### Special case with ALL CAPS words\n\nThere are a few special cases to help with common spelling practices for ALL CAPS words.\n\nTrailing `s`, `ing`, `ies`, `es`, `ed` are kept with the previous word.\n\n- CURLs -\u003e curls -- trailing `s`\n- CURLedRequest -\u003e curled request -- trailing `ed`\n\n## Things to note\n\n- This spellchecker is case insensitive. It will not catch errors like english which should be English.\n- The spellchecker uses a local word dictionary. It does not send anything outside your machine.\n- The words in the dictionary can and do contain errors.\n- There are missing words.\n- Only words longer than 3 characters are checked. \"jsj\" is not checked, while \"jsja\" is checked and will be marked as incorrect because it does not exist in any of the dictionaries.\n- All symbols and punctuation are ignored.\n\n## In Document Settings\n\nIt is possible to add spell check settings into your source code.\nThis is to help with file specific issues that may not be applicable to the entire project.\n\nAll settings are prefixed with `cSpell:` or `spell-checker:`.\n\n- `disable` -- turn off the spell checker for a section of code.\n- `enable` -- turn the spell checker back on after it has been turned off.\n- `ignore` -- specify a list of words to be ignored.\n- `words` -- specify a list of words to be considered correct and will appear in the suggestions list.\n- `locale` -- set locale (example: `cSpell:locale fr,en` to use French and English languages)\n- `ignoreRegExp` -- Any text matching the regular expression will NOT be checked for spelling.\n- `includeRegExp` -- Only text matching the collection of includeRegExp will be checked.\n- `enableCompoundWords` / `disableCompoundWords` -- Allow / disallow words like: \"stringlength\".\n\n### Enable / Disable checking sections of code\n\nIt is possible to disable / enable the spell checker by adding comments to your code.\n\n#### Disable Checking\n\n- `cSpell:disable`\n- `spell-checker: disable`\n- `spellchecker: disable`\n- `cspell: disable-line`\n- `cspell: disable-next-line`\n\n\u003c!--- cSpell:enable --\u003e\n\n#### Enable Checking\n\n- `cSpell:enable`\n- `spell-checker: enable`\n- `spellchecker: enable`\n\n#### JavaScript Example\n\n```javascript\n// cSpell:disable\nconst wackyWord = ['zaallano', 'wooorrdd', 'zzooommmmmmmm'];\n/* cSpell:enable */\n\n// Nest disable / enable is not Supported\n\n// spell-checker:disable\n// It is now disabled.\n\nvar liep = 1;\n\n/* cspell:disable */\n// It is still disabled\n\n// cSpell:enable\n// It is now enabled\n\nconst str = 'goededag'; // \u003c- will be flagged as an error.\n\n// spell-checker:enable \u003c- doesn't do anything\n\n// cSPELL:DISABLE \u003c-- also works.\n\n// if there isn't an enable, spelling is disabled till the end of the file.\nconst str = 'goedemorgen'; // \u003c- will NOT be flagged as an error.\n```\n\n\u003c!--- cSpell:enable --\u003e\n\n#### Markdown Example\n\n```markdown\n\u003c!--- cSpell:disable ---\u003e\n\nThis text is not checked.\n\n\u003c!--- cSpell:enable ---\u003e\n\nThis text is checked.\n```\n\n### Ignore\n\nIgnore allows you the specify a list of words you want to ignore within the document.\n\n```javascript\n// cSpell:ignore zaallano, wooorrdd\n// cSpell:ignore zzooommmmmmmm\nconst wackyWord = ['zaallano', 'wooorrdd', 'zzooommmmmmmm'];\n```\n\n**Note:** words defined with `ignore` will be ignored for the entire file.\n\n### Words\n\nThe words list allows you to add words that will be considered correct and will be used as suggestions.\n\n```javascript\n// cSpell:words woorxs sweeetbeat\nconst companyName = 'woorxs sweeetbeat';\n```\n\n**Note:** words defined with `words` will be used for the entire file.\n\n### Enable / Disable compound words\n\nIn some programming language it is common to glue words together.\n\n```c\n// cSpell:enableCompoundWords\nchar * errormessage;  // Is ok with cSpell:enableCompoundWords\nint    errornumber;   // Is also ok.\n```\n\n**Note:** Compound word checking cannot be turned on / off in the same file.\nThe last setting in the file determines the value for the entire file.\n\n### Excluding and Including Text to be checked.\n\nBy default, the entire document is checked for spelling.\n`cSpell:disable`/`cSpell:enable` above allows you to block off sections of the document.\n`ignoreRegExp` and `includeRegExp` give you the ability to ignore or include patterns of text.\nBy default the flags `gim` are added if no flags are given.\n\nThe spell checker works in the following way:\n\n1. Find all text matching `includeRegExp`\n1. Remove any text matching `excludeRegExp`\n1. Check the remaining text.\n\n#### Exclude Example\n\n```javascript\n// cSpell:ignoreRegExp 0x[0-9a-f]+     -- will ignore c style hex numbers\n// cSpell:ignoreRegExp /0x[0-9A-F]+/g  -- will ignore upper case c style hex numbers.\n// cSpell:ignoreRegExp g{5} h{5}       -- will only match ggggg, but not hhhhh or 'ggggg hhhhh'\n// cSpell:ignoreRegExp g{5}|h{5}       -- will match both ggggg and hhhhh\n// cSpell:ignoreRegExp /g{5} h{5}/     -- will match 'ggggg hhhhh'\n/* cSpell:ignoreRegExp /n{5}/          -- will NOT work as expected because of the ending comment -\u003e */\n/*\n   cSpell:ignoreRegExp /q{5}/          -- will match qqqqq just fine but NOT QQQQQ\n*/\n// cSpell:ignoreRegExp /[^\\s]{40,}/    -- will ignore long strings with no spaces.\n// cSpell:ignoreRegExp Email           -- this will ignore email like patterns -- see Predefined RegExp expressions\nvar encodedImage = 'HR+cPzr7XGAOJNurPL0G8I2kU0UhKcqFssoKvFTR7z0T3VJfK37vS025uKroHfJ9nA6WWbHZ/ASn...';\nvar email1 = 'emailaddress@myfancynewcompany.com';\nvar email2 = '\u003cemailaddress@myfancynewcompany.com\u003e';\n```\n\n**Note:** ignoreRegExp and includeRegExp are applied to the entire file. They do not start and stop.\n\n#### Include Example\n\nIn general you should not need to use `includeRegExp`. But if you are mixing languages then it could come in helpful.\n\n```Python\n# cSpell:includeRegExp #.*\n# cSpell:includeRegExp /([\"]{3}|[']{3})[^\\1]*?\\1/g\n# only comments and block strings will be checked for spelling.\ndef sum_it(self, seq):\n    \"\"\"This is checked for spelling\"\"\"\n    variabele = 0\n    alinea = 'this is not checked'\n    for num in seq:\n        # The local state of 'value' will be retained between iterations\n        variabele += num\n        yield variabele\n```\n\n## Predefined RegExp expressions\n\n### Exclude patterns\n\n- `Urls`\u003csup\u003e1\u003c/sup\u003e -- Matches urls\n- `HexValues` -- Matches common hex format like `#aaa`, `0xfeef`, `\\u0134`\n- `EscapeCharacters`\u003csup\u003e1\u003c/sup\u003e -- matches special characters: `\\n`, `\\t` etc.\n- `Base64`\u003csup\u003e1\u003c/sup\u003e -- matches base64 blocks of text longer than 40 characters.\n- `Email` -- matches most email addresses.\n\n### Include Patterns\n\n- `Everything`\u003csup\u003e1\u003c/sup\u003e -- By default we match an entire document and remove the excludes.\n- `string` -- This matches common string formats like '...', \"...\", and \\`...\\`\n- `CStyleComment` -- These are C Style comments /\\* \\*/ and //\n- `PhpHereDoc` -- This matches PHPHereDoc strings.\n\n\u003csup\u003e1.\u003c/sup\u003e These patterns are part of the default include/exclude list for every file.\n\n## Customization\n\nThe spell checker configuration can be controlled via VS Code preferences or `cspell.json` configuration file.\n\nOrder of precedence:\n\n1. Workspace Folder `cspell.json`\n1. Workspace Folder `.vscode/cspell.json`\n1. VS Code Preferences `cSpell` section.\n\n### Adding words to the Workspace Dictionary\n\nYou have the option to add you own words to the workspace dictionary. The easiest, is to put your cursor\non the word you wish to add, when you lightbulb shows up, hit `Ctrl+.` (windows) / `Cmd+.` (Mac). You will get a list\nof suggestions and the option to add the word.\n\nYou can also type in a word you want to add to the dictionary: `F1` `add word` -- select `Add Word to Dictionary` and type in the word you wish to add.\n\n### cspell.json\n\nWords added to the dictionary are placed in the `cspell.json` file in the _workspace_ folder.\nNote, the settings in `cspell.json` will override the equivalent cSpell settings in VS Code's `settings.json`.\n\n#### Example _cspell.json_ file\n\n```javascript\n// cSpell Settings\n{\n    // Version of the setting file.  Always 0.2\n    \"version\": \"0.2\",\n    // language - current active spelling language\n    \"language\": \"en\",\n    // words - list of words to be always considered correct\n    \"words\": [\n        \"mkdirp\",\n        \"tsmerge\",\n        \"githubusercontent\",\n        \"streetsidesoftware\",\n        \"vsmarketplacebadge\",\n        \"visualstudio\"\n    ],\n    // flagWords - list of words to be always considered incorrect\n    // This is useful for offensive words and common spelling errors.\n    // For example \"hte\" should be \"the\"\n    \"flagWords\": [\n        \"hte\"\n    ]\n}\n```\n\n### VS Code Configuration Settings\n\n```javascript\n    //-------- Code Spell Checker Configuration --------\n    // The Language locale to use when spell checking. \"en\", \"en-US\" and \"en-GB\" are currently supported by default.\n    \"cSpell.language\": \"en\",\n\n    // Controls the maximum number of spelling errors per document.\n    \"cSpell.maxNumberOfProblems\": 100,\n\n    // Controls the number of suggestions shown.\n    \"cSpell.numSuggestions\": 8,\n\n    // The minimum length of a word before checking it against a dictionary.\n    \"cSpell.minWordLength\": 4,\n\n    // Specify file types to spell check.\n    \"cSpell.enabledLanguageIds\": [\n        \"csharp\",\n        \"go\",\n        \"javascript\",\n        \"javascriptreact\",\n        \"markdown\",\n        \"php\",\n        \"plaintext\",\n        \"typescript\",\n        \"typescriptreact\",\n        \"yaml\",\n        \"sql\"\n    ],\n\n    // Enable / Disable the spell checker.\n    \"cSpell.enabled\": true,\n\n    // Words to add to dictionary for a workspace.\n    \"cSpell.words\": [],\n\n    // Enable / Disable compound words like 'errormessage'\n    \"cSpell.allowCompoundWords\": false,\n\n    // Words to be ignored and not suggested.\n    \"cSpell.ignoreWords\": [\"behaviour\"],\n\n    // User words to add to dictionary.  Should only be in the user settings.\n    \"cSpell.userWords\": [],\n\n    // Specify paths/files to ignore.\n    \"cSpell.ignorePaths\": [\n        \"node_modules\",        // this will ignore anything the node_modules directory\n        \"**/node_modules\",     // the same for this one\n        \"**/node_modules/**\",  // the same for this one\n        \"node_modules/**\",     // Doesn't currently work due to how the current working directory is determined.\n        \"vscode-extension\",    //\n        \".git\",                // Ignore the .git directory\n        \"*.dll\",               // Ignore all .dll files.\n        \"**/*.dll\"             // Ignore all .dll files\n    ],\n\n    // flagWords - list of words to be always considered incorrect\n    // This is useful for offensive words and common spelling errors.\n    // For example \"hte\" should be \"the\"`\n    \"cSpell.flagWords\": [\"hte\"],\n\n    // Set the delay before spell checking the document. Default is 50.\n    \"cSpell.spellCheckDelayMs\": 50,\n\n    // Set Diagnostic Reporting Level\n    //   Error - Report Spelling Issues as Errors\n    //   Warning - Report Spelling Issues as Warnings\n    //   Information - Report Spelling Issues as Information (default)\n    //   Hint - Report Spelling Issues as Hints, will not show up in Problems\n    \"cSpell.diagnosticLevel\": \"Information\",\n```\n\n## Dictionaries\n\nThe spell checker includes a set of default dictionaries.\n\n### General Dictionaries\n\n- **wordsEn** - Derived from Hunspell US English words.\n- **wordsEnGb** - Derived from Hunspell GB English words.\n- **companies** - List of well known companies\n- **softwareTerms** - Software Terms and concepts like \"coroutine\", \"debounce\", \"tree\", etc.\n- **misc** - Terms that do not belong in the other dictionaries.\n\n### Programming Language Dictionaries\n\n- **typescript** - keywords for Typescript and Javascript\n- **node** - terms related to using nodejs.\n- **php** - _php_ keywords and library methods\n- **go** - _go_ keywords and library methods\n- **python** - _python_ keywords\n- **powershell** - _powershell_ keywords\n- **html** - _html_ related keywords\n- **css** - _css_, _less_, and _scss_ related keywords\n\n### Miscellaneous Dictionaries\n\n- **fonts** - long list of fonts - to assist with _css_\n\nBased upon the programming language, different dictionaries will be loaded.\n\nHere are some of the default rules:\n\n- `\"*\"` matches any programming language / file type.\n- `\"locale\"` is used to filter based upon the `\"cSpell.language\"` setting.\n\n```javascript\n{\n\"cSpell.languageSettings\": [\n  { \"languageId\": '*',      \"locale\": 'en',    \"dictionaries\": ['wordsEn'] },\n  { \"languageId\": '*',      \"locale\": 'en-US', \"dictionaries\": ['wordsEn'] },\n  { \"languageId\": '*',      \"locale\": 'en-GB', \"dictionaries\": ['wordsEnGb'] },\n  { \"languageId\": '*',                         \"dictionaries\": ['companies', 'softwareTerms', 'misc'] },\n  { \"languageId\": \"python\",                    \"dictionaries\": [\"python\"]},\n  { \"languageId\": \"go\",                        \"dictionaries\": [\"go\"] },\n  { \"languageId\": \"javascript\",                \"dictionaries\": [\"typescript\", \"node\"] },\n  { \"languageId\": \"javascriptreact\",           \"dictionaries\": [\"typescript\", \"node\"] },\n  { \"languageId\": \"typescript\",                \"dictionaries\": [\"typescript\", \"node\"] },\n  { \"languageId\": \"typescriptreact\",           \"dictionaries\": [\"typescript\", \"node\"] },\n  { \"languageId\": \"html\",                      \"dictionaries\": [\"html\", \"fonts\", \"typescript\", \"css\"] },\n  { \"languageId\": \"php\",                       \"dictionaries\": [\"php\", \"html\", \"fonts\", \"css\", \"typescript\"] },\n  { \"languageId\": \"css\",                       \"dictionaries\": [\"fonts\", \"css\"] },\n  { \"languageId\": \"less\",                      \"dictionaries\": [\"fonts\", \"css\"] },\n  { \"languageId\": \"scss\",                      \"dictionaries\": [\"fonts\", \"css\"] },\n];\n}\n```\n\n### How to add your own Dictionaries\n\n#### `cSpell.customDictionaries`\n\n````ts\ninterface Settings {\n    'cSpell.customDictionaries': {\n        [name: string]: CustomDictionary;\n    };\n}\n\ninterface CustomDictionary {\n    /**\n     * @title Name of Dictionary\n     * The reference name of the dictionary.\n     *\n     *\n     * Example: `My Words` or `custom`\n     *\n     *\n     * If they name matches a pre-defined dictionary, it will override the pre-defined dictionary.\n     * If you use: `typescript` it will replace the built-in TypeScript dictionary.\n     */\n    name?: DictionaryId;\n\n    /**\n     * @title Description of the Dictionary\n     * Optional: A human readable description.\n     */\n    description?: string;\n\n    /**\n     * @title Path to Dictionary Text File\n     * Define the path to the dictionary text file.\n     *\n     *\n     * **Note:** if path is `undefined` the `name`d dictionary is expected to be found\n     * in the `dictionaryDefinitions`.\n     *\n     *\n     * File Format: Each line in the file is considered a dictionary entry.\n     * Case is preserved while leading and trailing space is removed.\n     * The path should be absolute, or relative to the workspace.\n     *\n     * **Example:** relative to User's folder\n     *\n     * ```\n     * ~/dictionaries/custom_dictionary.txt\n     * ```\n     *\n     * **Example:** relative to the `client` folder in a multi-root workspace\n     *\n     * ```\n     * ${workspaceFolder:client}/build/custom_dictionary.txt\n     * ```\n     *\n     * **Example:** relative to the current workspace folder in a single-root workspace\n     *\n     * **Note:** this might no as expected in a multi-root workspace since it is based upon the relative\n     * workspace for the currently open file.\n     *\n     * ```\n     * ${workspaceFolder}/build/custom_dictionary.txt\n     * ```\n     *\n     * **Example:** relative to the workspace folder in a single-root workspace or the first folder in\n     * a multi-root workspace\n     *\n     * ```\n     * ./build/custom_dictionary.txt\n     * ```\n     */\n    path?: FsPath;\n\n    /**\n     * @title Add Words to Dictionary\n     * Indicate if this custom dictionary should be used to store added words.\n     * @default true\n     */\n    addWords?: boolean;\n\n    /**\n     * @title Scope of dictionary\n     * Options are\n     * - `user` - words that apply to all projects and workspaces\n     * - `workspace` - words that apply to the entire workspace\n     * - `folder` - words that apply to only a workspace folder\n     */\n    scope?: CustomDictionaryScope | CustomDictionaryScope[];\n}\n````\n\n#### Global Dictionary\n\nTo add a global dictionary, you will need change your user settings.\n\n##### Define the Dictionary\n\nIn your user settings, you will need to tell the spell checker where to find your word list.\n\nExample adding medical terms, so words like _acanthopterygious_ can be found.\n\n**VS Code Settings**\n\n```js\n\"cSpell.customDictionaries\": {\n  \"myWords\": {\n    \"name\": \"myWords\",\n    \"path\": \"~/my-words.txt\",\n    \"scope\": \"user\",\n    \"addWords\": true\n  }\n}\n```\n\n**Explained:** In this example, we have told the spell checker where to find our personal dictionary called `myWords`.\n\n- `name` - this is the name of the dictionary, all references to this dictionary is done by the name.\n- `path` - this the path to the dictionary file. Since it is in the user settings, we have to use absolute paths or paths relative to the user directory by using `~/`.\n- `scope` - (Optional) this is used to \"scope\" a dictionary to `user`, `workspace`, or `folder`. Scope is used to help communicate the intended use of the dictionary.\n- `addWords` - (Optional) default - `true` - is used to show / hide the dictionary as a possible target for adding words.\n\n#### Project / Workspace Dictionary using `cspell.json`\n\nTo add a dictionary at the project level should be defined in a `cspell.json` file so it can be used with the `cspell` command line tool.\nThis file can be either at the project root or in the .vscode directory.\n\nExample adding medical terms, where the terms are checked into the project and we only want to use it for .md files.\n\n```javascript\n{\n    \"dictionaryDefinitions\": [\n        { \"name\": \"medicalTerms\", \"path\": \"./dictionaries/medicalterms-en.txt\"},\n        { \"name\": \"cities\", \"path\": \"./dictionaries/cities.txt\"}\n    ],\n    \"dictionaries\": [\n        \"cities\"\n    ],\n    \"languageSettings\": [\n        { \"languageId\": \"markdown\", \"dictionaries\": [\"medicalTerms\"] },\n        { \"languageId\": \"plaintext\", \"dictionaries\": [\"medicalTerms\"] }\n    ]\n}\n```\n\n**Explained:** In this example, two dictionaries were defined: _cities_ and _medicalTerms_.\nThe paths are relative to the location of the _cSpell.json_ file. This allows for dictionaries to be checked into the project.\n\nThe _cities_ dictionary is used for every file type, because it was added to the list to _dictionaries_.\nThe _medicalTerms_ dictionary is only used when editing _markdown_ or _plaintext_ files.\n\n**DictionaryDefinition**\n\n```ts\ninterface DictionaryDefinition {\n    /**\n     * This is the name of a dictionary.\n     *\n     * Name Format:\n     * - Must contain at least 1 number or letter.\n     * - Spaces are allowed.\n     * - Leading and trailing space will be removed.\n     * - Names ARE case-sensitive.\n     * - Must not contain `*`, `!`, `;`, `,`, `{`, `}`, `[`, `]`, `~`.\n     */\n    name: DictionaryId;\n    /** Optional description. */\n    description?: string;\n    /** Path to custom dictionary text file. */\n    path: CustomDictionaryPath;\n    /**\n     * Defines the scope for when words will be added to the dictionary.\n     * Scope values: `user`, `workspace`, `folder`.\n     */\n    scope?: CustomDictionaryScope | CustomDictionaryScope[];\n    /**\n     * When `true`, let's the spell checker know that words can be added to this dictionary.\n     */\n    addWords: boolean;\n}\n```\n\n#### Project / Workspace Dictionary using VS Code Settings\n\n**VS Code Settings**\n\n```js\n\"cSpell.customDictionaries\": {\n  \"project-words\": {\n    \"name\": \"project-words\",\n    \"path\": \"${workspaceRoot}/project-words.txt\",\n    \"description\": \"Words used in this project\",\n    \"addWords\": true\n  },\n  \"medicalTerms\": {\n    \"name\": \"medicalTerms\",\n    \"path\": \"/Users/guest/projects/cSpell-WordLists/dictionaries/medicalterms-en.txt\",\n    \"addWords\": false // Do not add words to this dictionary\n  },\n  \"companyTerms\": {\n    \"name\": \"companyTerms\",\n    \"path\": \"${workspaceFolder}/../company/terms.txt\"\n    // \"addWords\": true -- is implied\n  },\n  \"custom\": true, // Enable the `custom` dictionary\n  \"internal-terms\": false // Disable the `internal-terms` dictionary\n}\n```\n\n## FAQ\n\nSee: [FAQ](https://github.com/streetsidesoftware/vscode-spell-checker/blob/main/FAQ.md)\n\n\u003c!---\n    These are at the bottom because the VSCode Marketplace leaves a bit space at the top\n\n    cSpell:ignore jsja goededag alek wheerd behaviour tsmerge QQQQQ\n    cSpell:disableCompoundWords\n    cSpell:includeRegExp Everything\n    cSpell:ignore hte variabele alinea\n    cSpell:ignore mkdirp githubusercontent streetsidesoftware vsmarketplacebadge visualstudio lightbulb stringlength\n    cSpell:ignore errormessage errornumber medicalterms acanthopterygious\n    cSpell:words Verdana\n    cSpell:locale en\n--\u003e\n\n\u003c!--- @@inject: ./static/footer.md ---\u003e\n\n\u003cbr/\u003e\n\n---\n\n\u003cp align=\"center\"\u003eBrought to you by \u003ca href=\"https://streetsidesoftware.com\" title=\"Street Side Software\"\u003e\u003cimg width=\"16\" alt=\"Street Side Software Logo\" src=\"https://i.imgur.com/CyduuVY.png\" /\u003e Street Side Software\u003c/a\u003e\u003c/p\u003e\n\n\u003c!--- @@inject-end: ./static/footer.md ---\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreetsidesoftware%2Fvscode-spell-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreetsidesoftware%2Fvscode-spell-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreetsidesoftware%2Fvscode-spell-checker/lists"}