Skip to content

Releases: streetsidesoftware/cspell

v8.13.1

02 Aug 07:25
Compare
Choose a tag to compare

Fixes

fix: Use the resolved root when setting Glob Root (#6027)

fix: Use the resolved root when setting Glob Root (#6027)

fixes #6025


fix: Perf improve check text speed (#6024)

fix: Perf improve check text speed (#6024)


fix: Improve perf of camel case word splitter. (#6019)

fix: Improve perf of camel case word splitter. (#6019)


perf: Reduce the use of Generators in critical sections. (#6015)

perf: Reduce the use of Generators in critical sections. (#6015)


v8.13.0

30 Jul 11:38
Compare
Choose a tag to compare

Features

Speed Improvement

On average, 8.13.0 is 1.5x - 2x faster than 8.12

Spell check the CSpell Repo: 1467 files.

Version Time
8.13.0 9.8s
8.12.1 18.0s
8.11.0 18.2s
8.10.4 19.0s
feat: Improve the speed of checking text. (#6004)

feat: Improve the speed of checking text. (#6004)

After doing a bit of perf testing, it became clear that some of the Pipe function took up a decent percent of the time.

Converting Generators to Iterables resulting in a significant speed improvement.


Fixes

refactor: Use text.matchAll instead of sequenceFromRegExpMatch (#5994)

refactor: Use text.matchAll instead of sequenceFromRegExpMatch (#5994)


fix: trie lookup performance (#5985)

fix: trie lookup performance (#5985)

This is currently a place holder for per work.

Initial Perf:

File: src/perf/has.perf.ts
Running Perf Suite: trie has
βœ” trie has words             7.31 ops/sec      4 iterations  546.87ms time
βœ” fastTrieBlob has words    14.43 ops/sec      8 iterations  554.57ms time
βœ” trieBlob has words        19.27 ops/sec     10 iterations  518.86ms time
βœ” iTrieFast has words       12.64 ops/sec      7 iterations  553.83ms time
βœ” iTrieBlob has words       16.79 ops/sec      9 iterations  536.03ms time
done.
File: src/perf/has.perf.ts
Running Perf Suite: dictionary has
βœ” dictionary has 100k words               24.43 ops/sec     13 iterations  532.14ms time
βœ” dictionary has 100k words (2nd time)    24.68 ops/sec     13 iterations  526.69ms time
βœ” collection has 100k words               13.44 ops/sec      7 iterations  520.71ms time
βœ” iTrie has 100k words                    32.54 ops/sec     17 iterations  522.51ms time
βœ” iTrie.hasWord has 100k words            33.18 ops/sec     17 iterations  512.32ms time
βœ” iTrie.data has 100k words               37.27 ops/sec     19 iterations  509.79ms time
Running Perf Suite: dictionary has Not
βœ” dictionary has not 100k words                6.65 ops/sec      4 iterations  601.33ms time
βœ” dictionary has not 100k words (2nd time)     6.36 ops/sec      4 iterations  628.84ms time
βœ” collection has not 100k words                2.57 ops/sec      2 iterations  776.87ms time
βœ” iTrie has not 100k words                    29.93 ops/sec     15 iterations  501.20ms time
βœ” iTrie.hasWord has not 100k words            27.78 ops/sec     14 iterations  503.89ms time
βœ” iTrie.data has not 100k words               33.93 ops/sec     17 iterations  500.99ms time
done.

result:

File: src/perf/has.perf.ts
Running Perf Suite: trie has
βœ” trie has words             6.44 ops/sec      4 iterations  620.65ms time
βœ” fastTrieBlob has words    13.74 ops/sec      7 iterations  509.65ms time
βœ” trieBlob has words        19.24 ops/sec     10 iterations  519.73ms time
βœ” iTrieFast has words       13.90 ops/sec      7 iterations  503.53ms time
βœ” iTrieBlob has words       16.88 ops/sec      9 iterations  533.31ms time
done.
File: src/perf/has.perf.ts
Running Perf Suite: dictionary has
βœ” dictionary has 100k words            25.89 ops/sec     13 iterations  502.22ms time
βœ” collection has 100k words            13.81 ops/sec      7 iterations  506.81ms time
βœ” collection reverse has 100k words    13.26 ops/sec      7 iterations  527.84ms time
βœ” iTrie has 100k words                 36.84 ops/sec     19 iterations  515.72ms time
βœ” iTrie.hasWord has 100k words         33.99 ops/sec     18 iterations  529.51ms time
βœ” iTrie.data has 100k words            38.55 ops/sec     20 iterations  518.75ms time
Running Perf Suite: dictionary has Not
βœ” dictionary has not 100k words        6.37 ops/sec      4 iterations  627.52ms time
βœ” collection has not 100k words        2.71 ops/sec      2 iterations  738.63ms time
βœ” iTrie has not 100k words            28.77 ops/sec     16 iterations  556.20ms time
βœ” iTrie.hasWord has not 100k words    25.99 ops/sec     13 iterations  500.14ms time
βœ” iTrie.data has not 100k words       34.15 ops/sec     18 iterations  527.10ms time
done.

fix: speed up word look up. (#5984)

fix: speed up word look up. (#5984)

Start Metrics:

File: src/perf/has.perf.ts
Running Perf Suite: trie has
βœ” trie has words             6.84 ops/sec      4 iterations  584.46ms time
βœ” fastTrieBlob has words    13.16 ops/sec      7 iterations  531.93ms time
βœ” trieBlob has words        16.89 ops/sec      9 iterations  532.98ms time
βœ” iTrieFast has words       12.67 ops/sec      7 iterations  552.63ms time
βœ” iTrieBlob has words       17.26 ops/sec      9 iterations  521.36ms time
done.
File: src/perf/has.perf.ts
Running Perf Suite: dictionary has
βœ” dictionary has 100k words               14.98 ops/sec      8 iterations  533.90ms time
βœ” dictionary has 100k words (2nd time)    15.85 ops/sec      9 iterations  567.87ms time
βœ” collection has 100k words                4.98 ops/sec      3 iterations  602.34ms time
βœ” iTrie has 100k words                    26.74 ops/sec     14 iterations  523.57ms time
βœ” iTrie.hasWord has 100k words            29.86 ops/sec     16 iterations  535.84ms time
βœ” iTrie.data has 100k words               32.51 ops/sec     17 iterations  522.92ms time
Running Perf Suite: dictionary has Not
βœ” dictionary has 100k words                4.96 ops/sec      3 iterations  605.42ms time
βœ” dictionary has 100k words (2nd time)     5.42 ops/sec      3 iterations  553.15ms time
βœ” collection has 100k words                0.40 ops/sec      1 iterations 2525.41ms time
βœ” iTrie has 100k words                    24.18 ops/sec     13 iterations  537.61ms time
βœ” iTrie.hasWord has 100k words            23.98 ops/sec     12 iterations  500.34ms time
βœ” iTrie.data has 100k words               27.89 ops/sec     14 iterations  501.99ms time
done.

In progress:

File: src/perf/has.perf.ts
Running Perf Suite: trie has
βœ” trie has words             7.07 ops/sec      4 iterations  565.75ms time
βœ” fastTrieBlob has words    14.51 ops/sec      8 iterations  551.21ms time
βœ” trieBlob has words        18.61 ops/sec     10 iterations  537.47ms time
βœ” iTrieFast has words       12.97 ops/sec      7 iterations  539.54ms time
βœ” iTrieBlob has words       18.01 ops/sec      9 iterations  499.70ms time
done.
File: src/perf/has.perf.ts
Running Perf Suite: dictionary has
βœ” dictionary has 100k words               23.78 ops/sec     12 iterations  504.61ms time
βœ” dictionary has 100k words (2nd time)    24.79 ops/sec     13 iterations  524.47ms time
βœ” collection has 100k words               12.98 ops/sec      7 iterations  539.20ms time
βœ” iTrie has 100k words                    33.16 ops/sec     17 iterations  512.61ms time
βœ” iTrie.hasWord has 100k words            33.05 ops/sec     17 iterations  514.37ms time
βœ” iTrie.data has 100k words               34.17 ops/sec     18 iterations  526.77ms time
Running Perf Suite: dictionary has Not
βœ” dictionary has not 100k words                6.38 ops/sec      4 iterations  627.41ms time
βœ” dictionary has not 100k words (2nd time)     6.42 ops/sec      4 iterations  623.45ms time
βœ” collection has not 100k words                0.46 ops/sec      1 iterations 2193.36ms time
βœ” iTrie has not 100k words                    28.49 ops/sec     15 iterations  526.53ms time
βœ” iTrie.hasWord has not 100k words            29.51 ops/sec     15 iterations  508.24ms time
βœ” iTrie.data has not 100k words               31.32 ops/sec     16 iterations  510.82ms time
done.

Latest:

File: src/perf/has.perf.ts
Running Perf Suite: trie has
βœ” trie has words             7.31 ops/sec      4 iterations  546.87ms time
βœ” fastTrieBlob has words    14.43 ops/sec      8 iterations  554.57ms time
βœ” trieBlob has words        19.27 ops/sec     10 iterations  518.86ms time
βœ” iTrieFast has words       12.64 ops/sec      7 iterations  553.83ms time
βœ” iTrieBlob has words       16.79 ops/sec      9 iterations  536.03ms time
done.
File: src/perf/has.perf.ts
Running Perf Suite: dictionary has
βœ” dictionary has 100k words               24.43 ops/sec     13 iterations  532.14ms time
βœ” dictionary has 100k words (2nd time)    24.68 ops/sec     13 iterations  526.69ms time
βœ” collection has 100k words               13.44 ops/sec      7 iterations  520.71ms time
βœ” iTrie has 100k words                    32.54 ops/sec     17 iterations  522.51ms time
βœ” iTrie.hasWord has 100k words            33.18 ops/sec     17 iterations  512.32ms time
βœ” iTrie.data has 100k words               37.27 ops/sec     19 iterations  509.79ms time
Running Perf Suite: dictionary has Not
βœ” dictionary has not 100k words                6.65 ops/sec      4 iterations  601.33ms time
βœ” dictionary has not 100k words (2nd time)     6.36 ops/sec      4 iterations  628.84ms time
βœ” collection has not 100k words                2.57 ops/sec      2 iterations  776.87ms time
βœ” iTrie has not 100k words                    29.93 ops/sec     15 iterations  501.20ms time
βœ” iTrie.hasWord has not 100k words            27.78 ops/sec     14 iterations  503.89ms time
βœ” iTrie.data has not 100k words               33.93 ops/sec     17 iterations  500.99ms time
done.

fix: Speed up dictionary look up. (#5983)

fix: Speed up dictionary look up. (#5983)


Dictionary Updates

fix: Workflow Bot -- Update Dictionaries (main) (#5980)

fix: Workflow Bot -- Update Dictionaries (main) (#5980)

Update Dictionaries (main)

Summary

 integration-tests/snapshots/eslint/eslint/report.yaml    |  6 ++----
 integration-tests/snapshots/eslint/eslint/snapshot.txt   |  3 +--
 integration-tests/snapshots/pagekit/pagekit/report.yaml  |  4 +---
...
Read more

v8.12.1

22 Jul 19:07
Compare
Choose a tag to compare

Features

feat: Support custom issue template (#5949)

feat: Support custom issue template (#5949)

Related to #5758

Make it possible to use custom issue templates from the command line:

cspell . --issue-template='{green $filename}:{yellow $row:$col} $message ({red $text}) $quickFix'

Template

option: --issue-template to set the template to use when reporting issues.

The template is a string that can contain the following placeholders:

  • $filename - the file name
  • $col - the column number
  • $row - the row number
  • $text - the word that is misspelled
  • $message - the issues message: "unknown word", "word is misspelled", etc.
  • $messageColored - the issues message with color based upon the message type.
  • $uri - the URI of the file
  • $suggestions - suggestions for the misspelled word (if requested)
  • $quickFix - possible quick fixes for the misspelled word.
  • $contextFull - the full context of the misspelled word.
  • $contextLeft - the context to the left of the misspelled word.
  • $contextRight - the context to the right of the misspelled word.

Color is supported using the following template pattern:

  • {<style[.style]> <text>} - where <style> is a style name and <text> is the text to style.
    Styles
  • bold, italic, underline, strikethrough, dim, inverse
  • black, red, green, yellow, blue, magenta, cyan, white

Example:

{green $filename}:{yellow $row}:{yellow $col} $message {red $text} $quickFix {dim $suggestions}


Fixes

refactor: remove .cjs dependency (#5956)

refactor: remove .cjs dependency (#5956)


fix: refactor uri to url (#5943)

fix: refactor uri to url (#5943)

Part of moving away from vscode-uri to the standard URL.


fix: Use stdout and stderr to display text (#5935)

fix: Use stdout and stderr to display text (#5935)

  1. Do not use console.log/.error/.warn to display text.
  2. Clean up the output so it doesn't use too much space.

fix: ignore `_` in hex values (#5934)

fix: ignore _ in hex values (#5934)


Dictionary Updates

fix: Workflow Bot -- Update Dictionaries (main) (#5938)

fix: Workflow Bot -- Update Dictionaries (main) (#5938)

Update Dictionaries (main)

Summary

 .../Azure/azure-rest-api-specs/report.yaml         |  6 +--
 .../snapshots/RustPython/RustPython/report.yaml    |  4 +-
 .../snapshots/RustPython/RustPython/snapshot.txt   | 16 ++++---
 .../snapshots/django/django/report.yaml            |  8 ++--
 .../snapshots/django/django/snapshot.txt           |  3 +-
 .../snapshots/eslint/eslint/report.yaml            |  6 +--
 .../snapshots/eslint/eslint/snapshot.txt           |  3 +-
 .../snapshots/gitbucket/gitbucket/report.yaml      |  3 +-
 .../snapshots/gitbucket/gitbucket/snapshot.txt     |  3 +-
 .../googleapis/google-cloud-cpp/report.yaml        | 42 +++++++++----------
 .../snapshots/ktaranov/sqlserver-kit/report.yaml   |  3 +-
 .../snapshots/ktaranov/sqlserver-kit/snapshot.txt  |  3 +-
 .../microsoft/TypeScript-Website/report.yaml       |  3 +-
 .../microsoft/TypeScript-Website/snapshot.txt      |  3 +-
 .../snapshots/neovim/nvim-lspconfig/report.yaml    |  3 +-
 .../snapshots/neovim/nvim-lspconfig/snapshot.txt   |  5 +--
 .../snapshots/sveltejs/svelte/report.yaml          | 10 ++---
 .../snapshots/sveltejs/svelte/snapshot.txt         |  8 +---
 .../typescript-cheatsheets/react/report.yaml       |  9 ++--
 .../typescript-cheatsheets/react/snapshot.txt      |  9 ++--
 .../snapshots/wireapp/wire-webapp/report.yaml      |  7 ++--
 .../snapshots/wireapp/wire-webapp/snapshot.txt     |  5 +--
 packages/cspell-bundled-dicts/package.json         | 10 ++---
 .../cspell/src/app/__snapshots__/app.test.ts.snap  | 13 +++++-
 pnpm-lock.yaml                                     | 49 ++++++++++++----------
 25 files changed, 107 insertions(+), 127 deletions(-)

v8.11.0

16 Jul 16:42
Compare
Choose a tag to compare

Changes

Features

feat: speed up dictionary lookup (#5898)

feat: speed up dictionary lookup (#5898)


Fixes

refactor: char index (#5926)

refactor: char index (#5926)

  • add test
  • add perf tests
  • minor clean up.

fix: support emojis in triev3 files (#5923)

fix: support emojis in triev3 files (#5923)


fix: Use UTF8 sequence to store characters in the TrieBlob (#5913)

fix: Use UTF8 sequence to store characters in the TrieBlob (#5913)

The TrieBlob (binary version of a Trie) was using a character index and storing the offset into the character index in each trie node.

Using utf8 bytes instead make the format easier to understand and process. It also gets the added benefit of being sorted. Sorting was lost when the index was used.


fix: make sure the TrieBlob is sorted. (#5909)

fix: make sure the TrieBlob is sorted. (#5909)


fix: search issue with Emojis (#5906)

fix: search issue with Emojis (#5906)


fix: performance - Improve dictionary search speed. (#5901)

fix: performance - Improve dictionary search speed. (#5901)


fix: Improve word lookup performance for FastTrieBlob and TrieBlob (#5888)

fix: Improve word lookup performance for FastTrieBlob and TrieBlob (#5888)


Dictionary Updates

fix: Workflow Bot -- Update Dictionaries (main) (#5874)

fix: Workflow Bot -- Update Dictionaries (main) (#5874)

Update Dictionaries (main)

Summary

 .../MicrosoftDocs/PowerShell-Docs/report.yaml        |  6 ++----
 .../MicrosoftDocs/PowerShell-Docs/snapshot.txt       |  4 +---
 .../snapshots/gitbucket/gitbucket/report.yaml        |  4 +---
 .../snapshots/gitbucket/gitbucket/snapshot.txt       |  4 +---
 .../googleapis/google-cloud-cpp/report.yaml          |  7 ++-----
 .../googleapis/google-cloud-cpp/snapshot.txt         |  5 +----
 .../snapshots/ktaranov/sqlserver-kit/report.yaml     |  3 +--
 .../snapshots/ktaranov/sqlserver-kit/snapshot.txt    |  3 +--
 .../snapshots/sveltejs/svelte/report.yaml            |  3 +--
 .../snapshots/sveltejs/svelte/snapshot.txt           |  3 +--
 packages/cspell-bundled-dicts/package.json           |  4 ++--
 pnpm-lock.yaml                                       | 20 ++++++++++----------
 12 files changed, 24 insertions(+), 42 deletions(-)

v8.10.4

05 Jul 21:52
Compare
Choose a tag to compare

Changes

Fixes

fix(cspell-tools): Make sure the directive is used to build dictionaries. (#5867)

fix(cspell-tools): Make sure the directive is used to build dictionaries. (#5867)


v8.10.3

05 Jul 16:46
ce61ec2
Compare
Choose a tag to compare

Changes

Fixes

fix(cspell-tools): Make sure the directive is used to build dictionaries. (#5867)

fix(cspell-tools): Make sure the directive is used to build dictionaries. (#5867)


v8.10.2

05 Jul 14:46
Compare
Choose a tag to compare

Changes

Fixes

fix: Correctly handle relative globs (#5864)

fix: Correctly handle relative globs (#5864)

fixes #5861


v8.10.1

05 Jul 08:00
Compare
Choose a tag to compare

Changes

Fixes

fix(cspell-tools): support adding directives (#5860)

fix(cspell-tools): support adding directives (#5860)

CSpell dictionary can contain directives that changes how the file is parsed. This fix is to have the cspell-tool add them to the file header.


v8.10.0

02 Jul 13:06
Compare
Choose a tag to compare

Changes

Features

feat: Add glob support for URLs (#5824)

feat: Add glob support for URLs (#5824)

It is possible to use CSpell in an environment where all the files being spell checked exist behind a virtual URL, something like: vscode-vfs:https://github/microsoft/vscode/extensions/csharp/README.md.

The challenge here is to make the glob system URL aware.


Fixes

fix: Always set the color to white (#5826)

fix: Always set the color to white (#5826)

fixes #5821


fix: Make sure case sensitive trace works as expected. (#5806)

fix: Make sure case sensitive trace works as expected. (#5806)

  • Fix case sensitive tracing.
  • Display preferred corrections when they are available.
image
fix: resolve imports from ESLint plugin (#5790)

fix: resolve imports from ESLint plugin (#5790)

fixes #5789


fix: `suggestWords` dict schema validation (#5786)

fix: suggestWords dict schema validation (#5786)

  • Inline dictionaries with only suggested words did not pass validation.
  • Clean up the type docs a bit.
  • Make sure there are not any ZeroWidthSpaces in the schema.

Dictionary Updates

fix: Workflow Bot -- Update Dictionaries (main) (#5849)

fix: Workflow Bot -- Update Dictionaries (main) (#5849)

Update Dictionaries (main)

Summary

 .../snapshots/MicrosoftDocs/PowerShell-Docs/report.yaml        |  3 +--
 .../snapshots/MicrosoftDocs/PowerShell-Docs/snapshot.txt       |  3 +--
 packages/cspell-bundled-dicts/package.json                     |  2 +-
 pnpm-lock.yaml                                                 | 10 +++++-----
 4 files changed, 8 insertions(+), 10 deletions(-)

fix: Workflow Bot -- Update Dictionaries (main) (#5800)

fix: Workflow Bot -- Update Dictionaries (main) (#5800)

Update Dictionaries (main)

Summary

 packages/cspell-bundled-dicts/package.json |  2 +-
 pnpm-lock.yaml                             | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

fix: Workflow Bot -- Update Dictionaries (main) (#5783)

fix: Workflow Bot -- Update Dictionaries (main) (#5783)

Update Dictionaries (main)

Summary

 .../snapshots/ktaranov/sqlserver-kit/report.yaml   |  5 +++--
 .../snapshots/ktaranov/sqlserver-kit/snapshot.txt  |  3 ++-
 packages/cspell-bundled-dicts/package.json         |  6 +++---
 pnpm-lock.yaml                                     | 25 +++++++++++++---------
 4 files changed, 23 insertions(+), 16 deletions(-)

Documentation

docs: fix link to zulip logo (#5848)

docs: fix link to zulip logo (#5848)


docs: Remove references to OpenBase (#5807)

docs: Remove references to OpenBase (#5807)

See: https://www.linkedin.com/posts/liorgrossman_today-i-am-writing-to-share-that-weve-made-activity-7051208392559771648-etA3/


v8.9.1

20 Jun 13:58
Compare
Choose a tag to compare

Changes

Fixes

fix: Make sure binary files are not checked. (#5780)

fix: Make sure binary files are not checked. (#5780)

fixes #5779

  • add .mp4 to the video list
  • treat unknown file types that contain 0x00 as binary.

Documentation

docs: format tables in generated docs (#5776)

docs: format tables in generated docs (#5776)