Skip to content

Releases: streetsidesoftware/cspell

v8.6.1

25 Mar 10:53
Compare
Choose a tag to compare

Changes

Fixes

fix: Add Terraform dictionary (#5404)

fix: Add Terraform dictionary (#5404)


fix: Adding defineConfig() to cspell-types (#5399)

fix: Adding defineConfig() to cspell-types (#5399)

fixes #5358
replaces #5372


fix: Be able to detect Terraform files (#5391)

fix: Be able to detect Terraform files (#5391)


fix: Add support for Julia language (#5376)

fix: Add support for Julia language (#5376)


fix: Be able to detect Julia files (#5363)

fix: Be able to detect Julia files (#5363)


v8.6.0

05 Mar 15:42
Compare
Choose a tag to compare

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


fix: Improve the Configuration Loader Error Message (#5337)

fix: Improve the Configuration Loader Error Message (#5337)

Related to #5334


v8.5.0

01 Mar 14:49
Compare
Choose a tag to compare

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

20 Feb 08:53
Compare
Choose a tag to compare

Changes

Fixes

fix: Revert "feat: Support complex word lists (#5233)" (#5281)

fix: Revert "feat: Support complex word lists (#5233)" (#5281)

This reverts commit 517e63c.

PR #5233 introduced a bug when reading some dictionaries. It is being reverted until the issues is fixed.


v8.4.0

19 Feb 09:47
Compare
Choose a tag to compare

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

02 Jan 13:11
Compare
Choose a tag to compare

Changes

Fixes

fix: cspell-tools - support excluding words (#5140)

fix: cspell-tools - support excluding words (#5140)

When compiling a word list, support excluding words based upon another word list.

This helps reduce the size of a dictionary.


v8.3.1

01 Jan 12:01
Compare
Choose a tag to compare

Changes

Fixes

fix: Improve Trace Results (#5133)

fix: Improve Trace Results (#5133)


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

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(-)

v8.3.0

30 Dec 09:13
Compare
Choose a tag to compare

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

fix: Upgrade dictionaries (cryptocurrencies) (#5128)

fix: Upgrade dictionaries (cryptocurrencies) (#5128)


v8.2.4

28 Dec 11:15
Compare
Choose a tag to compare

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

22 Dec 07:36
Compare
Choose a tag to compare

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(-)

fix: Use the VFS for all IO (#5095)

fix: Use the VFS for all IO (#5095)


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(-)