ESLint plugin that integrates CSpell spell checking capabilities directly into the ESLint workflow for catching spelling errors in code.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Configuration options for the underlying CSpell spell checking engine.
Core configuration options for the CSpell spell checking engine.
/**
* CSpell engine configuration options
* Subset of CSpell settings available for ESLint plugin configuration
*/
interface CSpellOptions {
/**
* Allows words to be glued together
* @default false
*/
allowCompoundWords?: boolean;
/**
* Determines if spell checking is case sensitive
* @default false
*/
caseSensitive?: boolean;
/**
* List of dictionaries to enable
* References dictionary names from dictionaryDefinitions or built-in dictionaries
*/
dictionaries?: string[];
/**
* Enable or disable spell checking
* @default true
*/
enabled?: boolean;
/**
* List of words to always be considered incorrect.
* Words found in flagWords override words.
* Format: 'word' or 'word:suggestion' or 'word->suggestion, suggestions'
*/
flagWords?: string[];
/**
* List of words to be ignored.
* An ignored word will not show up as an error, even if it is also in flagWords.
*/
ignoreWords?: string[];
/**
* List of regular expression patterns or pattern names to exclude from spell checking.
*/
ignoreRegExpList?: string[];
/**
* List of regular expression patterns or defined pattern names to match for spell checking.
* If this property is defined, only text matching the included patterns will be checked.
*/
includeRegExpList?: string[];
/**
* Import cspell config files
* List of configuration files to import and merge
*/
import?: string[];
/**
* The language locale to use
* Examples: 'en-US', 'en-GB', 'en-US,en-GB'
*/
language?: string;
/**
* List of words to be considered correct
*/
words?: string[];
/**
* Define custom dictionaries
*/
dictionaryDefinitions?: DictionaryDefinition[];
}Configuration for custom dictionaries.
/**
* Dictionary definition for custom word lists
*/
interface DictionaryDefinition {
/** Name of the dictionary (used in dictionaries array) */
name: string;
/** Optional description of the dictionary */
description?: string;
/** Path to dictionary file (for file-based dictionaries) */
path?: string;
/** Inline word list (for inline dictionaries) */
words?: string[];
/** Words to flag as incorrect */
flagWords?: string[];
/** Words to ignore */
ignoreWords?: string[];
/** Suggested words */
suggestWords?: string[];
/**
* Strip case and accents to allow for case insensitive searches
* Note: this setting only applies to word lists, not trie dictionaries
*/
supportNonStrictSearches?: boolean;
}Usage Examples:
// Basic CSpell configuration
const options = {
cspell: {
language: 'en-US',
words: ['customword', 'mycompany', 'specialterm'],
ignoreWords: ['outdatedterm'],
dictionaries: ['typescript', 'node', 'custom-dict']
}
};
// Advanced CSpell configuration with custom dictionary
const options = {
cspell: {
language: 'en-US,en-GB',
allowCompoundWords: true,
caseSensitive: false,
words: ['webapi', 'nodejs'],
flagWords: ['badword:goodword', 'typo->correction'],
ignoreRegExpList: [
'/\\b[A-Z]{2,}\\b/g', // Ignore all caps words
'Email' // Ignore email patterns
],
dictionaries: ['typescript', 'custom-dict'],
dictionaryDefinitions: [
{
name: 'custom-dict',
description: 'Company-specific terms',
path: './dictionaries/company-terms.txt'
},
{
name: 'inline-dict',
description: 'Inline word list',
words: ['inlineword1', 'inlineword2'],
supportNonStrictSearches: true
}
]
}
};Using external CSpell configuration files.
/**
* Configuration file integration
* The configFile option in the main Options interface
*/
interface ConfigFileOptions {
/**
* Path to the cspell configuration file.
* Relative paths will be relative to the current working directory.
* @since 8.8.0
*/
configFile?: string;
/**
* Specify the root path of the cspell configuration.
* It is used to resolve imports found in cspell options.
* Examples: import.meta.url or __filename
*/
cspellOptionsRoot?: string | URL;
}Configuration File Examples:
// Using external cspell.json file
const options = {
configFile: './cspell.json',
cspellOptionsRoot: import.meta.url
};
// Combining external config with inline options
const options = {
configFile: './cspell.config.js',
cspell: {
// These options will be merged with the config file
words: ['additionalword'],
dictionaries: ['extra-dict']
}
};Pattern matching configuration for fine-grained control.
Built-in Pattern Examples:
const options = {
cspell: {
// Ignore common programming patterns
ignoreRegExpList: [
'Email', // Email addresses
'Urls', // URLs
'HexDigits', // Hexadecimal numbers
'Base64', // Base64 encoded strings
'UUIDs' // UUID strings
],
// Only check specific patterns
includeRegExpList: [
'Comments', // Only check comments
'Strings' // Only check string literals
]
}
};Multi-language spell checking support.
Language Examples:
// Single language
const options = {
cspell: {
language: 'en-US'
}
};
// Multiple languages
const options = {
cspell: {
language: 'en-US,fr-FR,de-DE'
}
};
// Regional variants
const options = {
cspell: {
language: 'en-US,en-GB' // American and British English
}
};Importing external CSpell configurations.
// Import multiple configuration files
const options = {
cspell: {
import: [
'./cspell-base.json',
'./cspell-company.json',
'@cspell/dict-typescript/cspell-ext.json'
]
}
};