Automatically parses project-level CSpell configuration files inside JetBrains IDEs and synchronizes custom vocabularies with the IDE runtime dictionary, keeping spell checking noise-free for the whole team.
idea-spell-check
targets JetBrains IDEs such as IntelliJ IDEA, WebStorm, and PyCharm etc. It watches CSpell configuration files as well as external dictionaries, merges them, and refreshes the IDE dictionary automatically so shared spelling rules are always respected.
- Priority-aware discovery: Mirrors the official CSpell file naming hierarchy and always picks the highest-priority configuration available in project roots,
.config
,.vscode
, and related directories. - Real-time file watching: Uses Virtual File System listeners with debounce control, so any saved change triggers a re-parse and refresh with minimal overhead.
- Dictionary aggregation: Reads
dictionaryDefinitions
together withdictionaries
, fetching extra word lists from referenced files and merging them into the IDE dictionary. - Node.js auto-detection: For
.js/.cjs/.mjs
configs the plugin locates a Node.js runtime automatically or lets you provide a custom executable path in settings. - Multi-root coverage: Add extra search folders via the settings page to support monorepos and multi-module repositories.
- Open
Settings/Preferences
. - Navigate to
Plugins
→Marketplace
and search for “CSpell Check”. - Click
Install
, then restart the IDE.
- Download the latest release.
- In
Settings/Preferences
→Plugins
, click the gear icon. - Choose
Install Plugin from Disk...
, select the downloaded archive, and restart the IDE.
- The plugin scans the project root and any configured custom paths, applying the priority list above to determine the effective CSpell configuration.
- When a higher-priority file appears, it replaces the previously active configuration automatically.
- A dictionary definition is loaded when either
addWords
istrue
or the definition name is listed inside thedictionaries
array. - Only when
addWords
isfalse
and the definition is never referenced bydictionaries
will the file be ignored. - Blank lines and lines that begin with
#
,//
, or;
are skipped while reading external dictionary files.
- Parsing
.js
,.cjs
, or.mjs
configs requires Node.js. - The plugin searches common locations (PATH, nvm, Volta, fnm, Homebrew, etc.) and exposes a manual override under
Settings/Preferences | Tools | CSpell Check
. - If no runtime is available, the plugin shows a notification and skips only the script-based configs while keeping other sources active.
- Checked in order from top to bottom to determine the active configuration.
.cspell.json
cspell.json
.cSpell.json
cSpell.json
.cspell.jsonc
cspell.jsonc
.cspell.yaml
cspell.yaml
.cspell.yml
cspell.yml
.cspell.config.json
cspell.config.json
.cspell.config.jsonc
cspell.config.jsonc
.cspell.config.yaml
cspell.config.yaml
.cspell.config.yml
cspell.config.yml
.cspell.config.mjs
cspell.config.mjs
.cspell.config.cjs
cspell.config.cjs
.cspell.config.js
cspell.config.js
.cspell.config.toml
cspell.config.toml
.config/.cspell.json
.config/cspell.json
.config/.cSpell.json
.config/cSpell.json
.config/.cspell.jsonc
.config/cspell.jsonc
.config/cspell.yaml
.config/cspell.yml
.config/.cspell.config.json
.config/cspell.config.json
.config/.cspell.config.jsonc
.config/cspell.config.jsonc
.config/.cspell.config.yaml
.config/cspell.config.yaml
.config/.cspell.config.yml
.config/cspell.config.yml
.config/.cspell.config.mjs
.config/cspell.config.mjs
.config/.cspell.config.cjs
.config/cspell.config.cjs
.config/.cspell.config.js
.config/cspell.config.js
config/.cspell.config.toml
config/cspell.config.toml
.vscode/.cspell.json
.vscode/cSpell.json
.vscode/cspell.json
package.json
(cspell
block includingdictionaryDefinitions
)
- Clone the repository and run
./gradlew build
to compile the plugin. - Execute
./gradlew test
to validate the parsing logic. - Use the
Run IDE for UI Tests
task to launch a sandbox IDE with the plugin for interactive testing. - Contributions via pull requests or issues are welcome to further improve the CSpell experience on JetBrains platforms.
Built on top of the IntelliJ Platform Plugin Template.