Configuration
CSpell’s behavior can be controlled through a config file.
By default it looks for any of the following files:
.cspell.json
cspell.json
.cSpell.json
cSpell.json
cspell.config.js
cspell.config.cjs
cspell.config.json
cspell.config.yaml
cspell.config.yml
cspell.yaml
cspell.yml
package.json
Or you can specify a path to a config file with the --config <path>
argument on the command line.
cspell.json
Example cspell.json
file
// cSpell Settings
{
// Version of the setting file. Always 0.2
"version": "0.2",
// language - current active spelling language
"language": "en",
// words - list of words to be always considered correct
"words": [
"mkdirp",
"tsmerge",
"githubusercontent",
"streetsidesoftware",
"vsmarketplacebadge",
"visualstudio"
],
// flagWords - list of words to be always considered incorrect
// This is useful for offensive words and common spelling errors.
// For example "hte" should be "the"
"flagWords": [
"hte"
]
}
cspell.json sections
version
- currently always 0.2 - controls how the settings in the configuration file behave.language
- this specifies the language locale to use in choosing the general dictionary. For example:"language": "en-GB"
tells cspell to use British English instead of US English.words
- a list of words to be considered correct.flagWords
- a list of words to be always considered incorrectignoreWords
- a list of words to be ignored (even if they are in the flagWords).-
ignorePaths
- a list of globs to specify which files are to be ignored.Example
"ignorePaths": ["node_modules/**"]
will cause cspell to ignore anything in the
node_modules
directory. maxNumberOfProblems
- defaults to 100 per file.minWordLength
- defaults to 4 - the minimum length of a word before it is checked.allowCompoundWords
- defaults to false; set to true to allow compound words by default.dictionaries
- list of the names of the dictionaries to use. See Dictionaries.-
dictionaryDefinitions
- this list defines any custom dictionaries to use. This is how you can include other languages like Spanish.Example
"language": "en", // Dictionaries "spanish", "ruby", and "corp-terms" will always be checked. // Including "spanish" in the list of dictionaries means both Spanish and English // words will be considered correct. "dictionaries": ["spanish", "ruby", "corp-terms", "fonts"], // Define each dictionary: // - Relative paths are relative to the config file. // - URLs will be retrieved via HTTP GET "dictionaryDefinitions": [ { "name": "spanish", "path": "./spanish-words.txt"}, { "name": "ruby", "path": "./ruby.txt"}, { "name": "corp-terms", "path": "https://shared-company-repository/cspell-terms.txt" }, ],
ignoreRegExpList
- list of patterns to be ignoredincludeRegExpList
- (Advanced) limits the text checked to be only that matching the expressions in the list.-
patterns
- this allows you to define named patterns to be used withignoreRegExpList
andincludeRegExpList
.Example
"patterns": [ { "name": "comment-single-line", "pattern": "/#.*/g" }, { "name": "comment-multi-line", "pattern": "/(?:\\/\\*[\\s\\S]*?\\*\\/)/g" }, // You can also combine multiple named patterns into one single named pattern { "name": "comments", "pattern": ["comment-single-line", "comment-multi-line"] } ], "ignoreRegExpList": ["comments"]
languageSettings
- this allow for per programming language configuration settings. See LanguageSettings
package.json
It is possible to store CSpell configuration in the package.json
file of a project. CSpell looks for the configuration in the cspell
field of the .json
file.
{
"name": "cspell-docs",
"description": "Documentation for CSpell",
// ...
"cspell": {
"version": "0.2",
"useGitignore": true
}
}