Releases: streetsidesoftware/cspell
v8.6.1
v8.6.0
Changes
Features
feat: Summarize issues at the end (#5349)
feat: Summarize issues at the end (#5349)
fixes #4495
Minor Breakage
The format of the output has changed slightly. This might break some automated scripts. Please use a custom reporter instead of scraping text. See @cspell/cspell-json-reporter - npm
Fixes
fix: `--no-exit-code` will allow running even if there are config errors (#5347)
fix: --no-exit-code
will allow running even if there are config errors (#5347)
Configuration errors would block the spell checker from running. Using the --no-exit-code
option will report the issue, but not prevent it from running to completion.
Related to #5334
v8.5.0
Changes
Features
feat: Add `--file [files...]` command line option to lint command. (#5328)
feat: Add --file [files...]
command line option to lint command. (#5328)
fixes: #5225
Options:
--file
and--files
- specify files to be checked
--file [files...]
, alias --files
.
The --file
option enables specifying which files to check. This is useful when the list is generated by another process and --file-list
is not a good fit.
The files will be filtered by [globs...]
or cspellConfig.files
if the [globs...]
were not specified.
Usage:
cspell.config.yaml
files:
- '**/*.md'
ignorePaths:
- 'CHANGELOG.md'
Command:
cspell --files README.md CHANGELOG.md LICENSE
Result:
It will only check README.md
because LICENSE
does not match *.md
and CHANGELOG.md
is excluded by ignorePaths
.
Command Line Only
The same effect can be achieved on the command line:
cspell "*.md" --exclude CHANGELOG.md --files README.md CHANGELOG.md LICENSE
- or -
cspell --exclude CHANGELOG.md --files README.md CHANGELOG.md LICENSE -- "*.md"
v8.4.1
v8.4.0
Important Remarks
-
Support for ESLint flat configuration files - (#5270)
eslint.config.js
import cspellESLintPluginRecommended from '@cspell/eslint-plugin/recommended'; export default [ // other config imports cspellESLintPluginRecommended, // other configs ];
Features
feat: Support complex word lists (#5233)
feat: Support complex word lists (#5233)
fixes: #5222
The binary dictionary builder (TrieBlob) only supported word lists with 250 unique characters.
This was not an issue with the object based trie dictionaries used with the compiled dictionaries.
feat: Support ESLint flat config (#5270)
feat: Support ESLint flat config (#5270)
This feature add support for ESLint flat file configuration.
Configuration (new: eslint.config.js
)
eslint.config.js
using recommended.
import cspellESLintPluginRecommended from '@cspell/eslint-plugin/recommended';
export default [
// other config imports
cspellESLintPluginRecommended,
// other configs
];
Or
eslint.config.js
using configs.
import cspellConfigs from '@cspell/eslint-plugin/configs';
export default [
// other config imports
cspellConfigs.recommended,
// other configs
];
Or
eslint.config.js
using plugins
import cspellPlugin from '@cspell/eslint-plugin';
export default [
// other config imports
{
plugins: { '@cspell': cspellPlugin },
rules: {
'@cspell/spellchecker': ['warn', {}],
},
},
// other configs
];
Configuration (Legacy: .eslintrc
)
Add "plugin:@cspell/recommended"
to the extends
section of the configuration.
.eslintrc
{
"extends": ["plugin:@cspell/recommended"]
}
feat: Support sharing cache between windows and linux (#5267)
feat: Support sharing cache between windows and linux (#5267)
fixes: #5246
- Defaults to the
universal
format instead of legacy. - Path separators are converted to
/
before being stored.
feat: Add `language` option to cspell eslint plugin (#5251)
feat: Add language
option to cspell eslint plugin (#5251)
fixes: #5232
Fixes
dev: Work on supporting more complex dictionaries like Hungarian. (#5199)
dev: Work on supporting more complex dictionaries like Hungarian. (#5199)
This first PR is mostly a bit of refactoring. No real external changes are available.
Gist:
- Performance: Reduce the amount of overhead generating the words.
- Internally, use an array of rule indexes instead of a string that needs to be constantly manipulated to determine which rules to apply.
- Looking into exporting a suffix tree instead of a list of words. The idea is to make it easier to convert the dictionary into a Trie.
Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#5237)
fix: Workflow Bot -- Update Dictionaries (main) (#5237)
Update Dictionaries (main)
Summary
.../snapshots/eslint/eslint/report.yaml | 4 +---
.../snapshots/eslint/eslint/snapshot.txt | 3 +--
.../snapshots/gitbucket/gitbucket/report.yaml | 7 ++----
.../snapshots/gitbucket/gitbucket/snapshot.txt | 5 +----
.../iluwatar/java-design-patterns/report.yaml | 3 +--
.../iluwatar/java-design-patterns/snapshot.txt | 3 +--
integration-tests/snapshots/mdx-js/mdx/report.yaml | 4 +---
.../snapshots/mdx-js/mdx/snapshot.txt | 4 +---
.../microsoft/TypeScript-Website/report.yaml | 3 +--
.../microsoft/TypeScript-Website/snapshot.txt | 3 +--
.../snapshots/sveltejs/svelte/report.yaml | 3 +--
.../snapshots/sveltejs/svelte/snapshot.txt | 3 +--
.../snapshots/wireapp/wire-webapp/report.yaml | 6 ++----
.../snapshots/wireapp/wire-webapp/snapshot.txt | 4 +---
packages/cspell-bundled-dicts/package.json | 6 +++---
pnpm-lock.yaml | 25 +++++++++++++---------
16 files changed, 34 insertions(+), 52 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5212)
fix: Workflow Bot -- Update Dictionaries (main) (#5212)
Update Dictionaries (main)
Summary
integration-tests/snapshots/RustPython/RustPython/report.yaml | 3 ++-
integration-tests/snapshots/RustPython/RustPython/snapshot.txt | 3 ++-
packages/cspell-bundled-dicts/package.json | 2 +-
pnpm-lock.yaml | 9 +++++++--
4 files changed, 12 insertions(+), 5 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5200)
fix: Workflow Bot -- Update Dictionaries (main) (#5200)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 6 +++---
pnpm-lock.yaml | 26 ++++++++++++++++++--------
2 files changed, 21 insertions(+), 11 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5182)
fix: Workflow Bot -- Update Dictionaries (main) (#5182)
Update Dictionaries (main)
Summary
integration-tests/snapshots/aws-amplify/docs/report.yaml | 5 +++--
integration-tests/snapshots/aws-amplify/docs/snapshot.txt | 3 ++-
packages/cspell-bundled-dicts/package.json | 2 +-
pnpm-lock.yaml | 9 +++++++--
4 files changed, 13 insertions(+), 6 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5180)
fix: Workflow Bot -- Update Dictionaries (main) (#5180)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 4 ++--
pnpm-lock.yaml | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5171)
fix: Workflow Bot -- Update Dictionaries (main) (#5171)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 4 ++--
pnpm-lock.yaml | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5148)
fix: Workflow Bot -- Update Dictionaries (main) (#5148)
Update Dictionaries (main)
Summary
.../MicrosoftDocs/PowerShell-Docs/report.yaml | 3 +-
.../MicrosoftDocs/PowerShell-Docs/snapshot.txt | 3 +-
.../snapshots/RustPython/RustPython/report.yaml | 50 ++--------------------
.../snapshots/RustPython/RustPython/snapshot.txt | 46 +-------------------
.../snapshots/alexiosc/megistos/report.yaml | 4 +-
.../snapshots/alexiosc/megistos/snapshot.txt | 4 +-
.../snapshots/eslint/eslint/report.yaml | 4 +-
.../snapshots/eslint/eslint/snapshot.txt | 3 +-
.../snapshots/php/php-src/report.yaml | 3 +-
.../snapshots/php/php-src/snapshot.txt | 3 +-
packages/cspell-bundled-dicts/package.json | 4 +-
pnpm-lock.yaml | 17 +++++---
12 files changed, 25 insertions(+), 119 deletions(-)
fix: Workflow Bot -- Update Dictionaries (main) (#5143)
fix: Workflow Bot -- Update Dictionaries (main) (#5143)
Update Dictionaries (main)
Summary
.../snapshots/RustPython/RustPython/report.yaml | 83 ++++++++++++++++++--
.../snapshots/RustPython/RustPython/snapshot.txt | 89 +++++++++++++++++++---
.../snapshots/alexiosc/megistos/report.yaml | 29 ++++++-
.../snapshots/alexiosc/megistos/snapshot.txt | 41 ++++++++--
packages/cspell-bundled-dicts/package.json | 2 +-
.../cspell/src/app/__snapshots__/app.test.ts.snap | 8 +-
pnpm-lock.yaml | 9 ++-
7 files changed, 226 insertions(+), 35 deletions(-)
v8.3.2
v8.3.1
Changes
Fixes
fix: Workflow Bot -- Update Dictionaries (main) (#5131)
fix: Workflow Bot -- Update Dictionaries (main) (#5131)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 2 +-
pnpm-lock.yaml | 9 +++++++--
2 files changed, 8 insertions(+), 3 deletions(-)
Dictionary Updates
v8.3.0
Changes
Features
feat: Add untrusted mode to the config loader (#5127)
feat: Add untrusted mode to the config loader (#5127)
There are times it is necessary to prevent loading JavaScript based configuration.
It is now possible to switch the config loader into untrusted mode. In this mode, the loader will not load JavaScript files outside of the CSpell configuration.
This is to support: Workspace Trust Extension Guide | Visual Studio Code Extension API
feat: Support calling a function to get the config (#5126)
feat: Support calling a function to get the config (#5126)
With the release of v8.3.0 it will be possible to return a function from cspell.config.js
files. This function will be called to get the configuration. It can return a Config Object or Promise that resolves to a Config Object.
Example:
cspell.config.mjs
import { readFile } from 'node:fs/promises';
/**
* @returns {Promise<import('@cspell/cspell-types').CSpellUserSettings>}
*/
export default async function getConfig() {
const words = (await readFile(new URL('requirements.txt', import.meta.url), 'utf8'))
.replace(/[.,]|([=<>].*)/g, ' ')
.split(/\s+/g);
return { id: 'python-imports', words };
}
Dictionary Updates
v8.2.4
Changes
Fixes
fix: handle symbolic links to config files (#5122)
fix: handle symbolic links to config files (#5122)
fixes #5120
fix: API: Update DocValidator (#5115)
fix: API: Update DocValidator (#5115)
Add/expose:
- trace - to trace a word to a dictionary
- getCheckedTextRanges
fix: Workflow Bot -- Update Dictionaries (main) (#5114)
fix: Workflow Bot -- Update Dictionaries (main) (#5114)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 10 ++---
.../cspell/src/app/__snapshots__/app.test.ts.snap | 1 +
pnpm-lock.yaml | 43 +++++++++++++---------
3 files changed, 31 insertions(+), 23 deletions(-)
fix: Improve caching of dictionaries (#5105)
fix: Improve caching of dictionaries (#5105)
This change reduces dictionary reload for long running processes.
The dictionary loader uses a WeakMap to keep dictionaries. This is very effective for keeping the memory size down when using the command-line tool. But, it also throws out dictionaries too soon when the spell checker is used as part of a server. To address this, the dictionary loader keep the most recent 10-20 loaded dictionaries in memory.
Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#5114)
fix: Workflow Bot -- Update Dictionaries (main) (#5114)
Update Dictionaries (main)
Summary
packages/cspell-bundled-dicts/package.json | 10 ++---
.../cspell/src/app/__snapshots__/app.test.ts.snap | 1 +
pnpm-lock.yaml | 43 +++++++++++++---------
3 files changed, 31 insertions(+), 23 deletions(-)
v8.2.3
Changes
Fixes
fix: Improve performance by reducing FS requests (#5103)
fix: Improve performance by reducing FS reqeusts (#5103)
fix: correct the URI encoding (#5102)
fix: correct the URI encoding (#5102)
The uri encoding was overly aggressive.
This change only has an impact if there are special characters in the path.
Like: @$&+,=
.
fix: Workflow Bot -- Update Dictionaries (main) (#5096)
fix: Workflow Bot -- Update Dictionaries (main) (#5096)
Update Dictionaries (main)
Summary
.../Azure/azure-rest-api-specs/report.yaml | 5 +-
.../Azure/azure-rest-api-specs/snapshot.txt | 3 +-
.../snapshots/django/django/report.yaml | 3 +-
.../snapshots/django/django/snapshot.txt | 3 +-
.../snapshots/eslint/eslint/report.yaml | 16 +--
.../snapshots/eslint/eslint/snapshot.txt | 4 +-
.../iluwatar/java-design-patterns/report.yaml | 3 +-
.../iluwatar/java-design-patterns/snapshot.txt | 3 +-
.../snapshots/ktaranov/sqlserver-kit/report.yaml | 6 +-
.../snapshots/pagekit/pagekit/report.yaml | 4 +-
.../snapshots/pagekit/pagekit/snapshot.txt | 4 +-
.../snapshots/sveltejs/svelte/report.yaml | 155 ++++++++++-----------
.../snapshots/sveltejs/svelte/snapshot.txt | 3 +-
packages/cspell-bundled-dicts/package.json | 8 +-
pnpm-lock.yaml | 32 ++---
15 files changed, 117 insertions(+), 135 deletions(-)
Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#5096)
fix: Workflow Bot -- Update Dictionaries (main) (#5096)
Update Dictionaries (main)
Summary
.../Azure/azure-rest-api-specs/report.yaml | 5 +-
.../Azure/azure-rest-api-specs/snapshot.txt | 3 +-
.../snapshots/django/django/report.yaml | 3 +-
.../snapshots/django/django/snapshot.txt | 3 +-
.../snapshots/eslint/eslint/report.yaml | 16 +--
.../snapshots/eslint/eslint/snapshot.txt | 4 +-
.../iluwatar/java-design-patterns/report.yaml | 3 +-
.../iluwatar/java-design-patterns/snapshot.txt | 3 +-
.../snapshots/ktaranov/sqlserver-kit/report.yaml | 6 +-
.../snapshots/pagekit/pagekit/report.yaml | 4 +-
.../snapshots/pagekit/pagekit/snapshot.txt | 4 +-
.../snapshots/sveltejs/svelte/report.yaml | 155 ++++++++++-----------
.../snapshots/sveltejs/svelte/snapshot.txt | 3 +-
packages/cspell-bundled-dicts/package.json | 8 +-
pnpm-lock.yaml | 32 ++---
15 files changed, 117 insertions(+), 135 deletions(-)