cspell-lib 8.13.0 → 8.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/{esm → lib}/Settings/Controller/configLoader/configLoader.js +1 -1
  2. package/dist/{esm → lib}/Settings/DefaultSettings.js +1 -1
  3. package/dist/{lib-cjs/pkg-info.d.cts → lib/pkg-info.d.mts} +1 -1
  4. package/dist/lib/pkg-info.mjs +15 -0
  5. package/dist/{esm → lib}/textValidation/ValidationTypes.d.ts +2 -0
  6. package/dist/lib/textValidation/isWordValid.d.ts +11 -0
  7. package/dist/lib/textValidation/lineValidatorFactory.js +271 -0
  8. package/dist/{esm → lib}/util/TextRange.d.ts +3 -8
  9. package/dist/{esm → lib}/util/TextRange.js +43 -34
  10. package/dist/{esm → lib}/util/resolveFile.js +1 -1
  11. package/dist/{esm → lib}/util/text.d.ts +6 -1
  12. package/dist/{esm → lib}/util/text.js +19 -14
  13. package/dist/{esm → lib}/util/textRegex.d.ts +2 -0
  14. package/dist/{esm → lib}/util/textRegex.js +3 -1
  15. package/dist/{esm → lib}/util/url.js +1 -1
  16. package/dist/{esm → lib}/util/wordSplitter.d.ts +1 -1
  17. package/dist/{esm → lib}/util/wordSplitter.js +4 -4
  18. package/dist/lib/util/wordSplitter.perf.d.ts +2 -0
  19. package/dist/lib/util/wordSplitter.perf.js +125 -0
  20. package/package.json +26 -26
  21. package/dist/esm/textValidation/isWordValid.d.ts +0 -9
  22. package/dist/esm/textValidation/lineValidatorFactory.js +0 -128
  23. package/dist/lib-cjs/index.cjs +0 -10
  24. package/dist/lib-cjs/index.d.cts +0 -6
  25. package/dist/lib-cjs/pkg-info.cjs +0 -7
  26. /package/dist/{esm → lib}/Cache/cspell.cache.d.ts +0 -0
  27. /package/dist/{esm → lib}/Cache/cspell.cache.js +0 -0
  28. /package/dist/{esm → lib}/Cache/index.d.ts +0 -0
  29. /package/dist/{esm → lib}/Cache/index.js +0 -0
  30. /package/dist/{esm → lib}/Document/Document.d.ts +0 -0
  31. /package/dist/{esm → lib}/Document/Document.js +0 -0
  32. /package/dist/{esm → lib}/Document/index.d.ts +0 -0
  33. /package/dist/{esm → lib}/Document/index.js +0 -0
  34. /package/dist/{esm → lib}/Document/isBinaryDoc.d.ts +0 -0
  35. /package/dist/{esm → lib}/Document/isBinaryDoc.js +0 -0
  36. /package/dist/{esm → lib}/Document/normalizeLanguageIds.d.ts +0 -0
  37. /package/dist/{esm → lib}/Document/normalizeLanguageIds.js +0 -0
  38. /package/dist/{esm → lib}/Document/resolveDocument.d.ts +0 -0
  39. /package/dist/{esm → lib}/Document/resolveDocument.js +0 -0
  40. /package/dist/{esm → lib}/FeatureFlags/FeatureFlags.d.ts +0 -0
  41. /package/dist/{esm → lib}/FeatureFlags/FeatureFlags.js +0 -0
  42. /package/dist/{esm → lib}/FeatureFlags/index.d.ts +0 -0
  43. /package/dist/{esm → lib}/FeatureFlags/index.js +0 -0
  44. /package/dist/{esm → lib}/LanguageIds.d.ts +0 -0
  45. /package/dist/{esm → lib}/LanguageIds.js +0 -0
  46. /package/dist/{esm → lib}/Models/CSpellSettingsInternalDef.d.ts +0 -0
  47. /package/dist/{esm → lib}/Models/CSpellSettingsInternalDef.js +0 -0
  48. /package/dist/{esm → lib}/Models/PatternRegExp.d.ts +0 -0
  49. /package/dist/{esm → lib}/Models/PatternRegExp.js +0 -0
  50. /package/dist/{esm → lib}/Models/Suggestion.d.ts +0 -0
  51. /package/dist/{esm → lib}/Models/Suggestion.js +0 -0
  52. /package/dist/{esm → lib}/Models/TextDocument.d.ts +0 -0
  53. /package/dist/{esm → lib}/Models/TextDocument.js +0 -0
  54. /package/dist/{esm → lib}/Models/ValidationIssue.d.ts +0 -0
  55. /package/dist/{esm → lib}/Models/ValidationIssue.js +0 -0
  56. /package/dist/{esm → lib}/Models/ValidationResult.d.ts +0 -0
  57. /package/dist/{esm → lib}/Models/ValidationResult.js +0 -0
  58. /package/dist/{esm → lib}/Settings/CSpellSettingsServer.d.ts +0 -0
  59. /package/dist/{esm → lib}/Settings/CSpellSettingsServer.js +0 -0
  60. /package/dist/{esm → lib}/Settings/Controller/ImportError.d.ts +0 -0
  61. /package/dist/{esm → lib}/Settings/Controller/ImportError.js +0 -0
  62. /package/dist/{esm → lib}/Settings/Controller/configLoader/PnPSettings.d.ts +0 -0
  63. /package/dist/{esm → lib}/Settings/Controller/configLoader/PnPSettings.js +0 -0
  64. /package/dist/{esm → lib}/Settings/Controller/configLoader/configLoader.d.ts +0 -0
  65. /package/dist/{esm → lib}/Settings/Controller/configLoader/configLocations.d.ts +0 -0
  66. /package/dist/{esm → lib}/Settings/Controller/configLoader/configLocations.js +0 -0
  67. /package/dist/{esm → lib}/Settings/Controller/configLoader/configSearch.d.ts +0 -0
  68. /package/dist/{esm → lib}/Settings/Controller/configLoader/configSearch.js +0 -0
  69. /package/dist/{esm → lib}/Settings/Controller/configLoader/configToRawSettings.d.ts +0 -0
  70. /package/dist/{esm → lib}/Settings/Controller/configLoader/configToRawSettings.js +0 -0
  71. /package/dist/{esm → lib}/Settings/Controller/configLoader/defaultConfigLoader.d.ts +0 -0
  72. /package/dist/{esm → lib}/Settings/Controller/configLoader/defaultConfigLoader.js +0 -0
  73. /package/dist/{esm → lib}/Settings/Controller/configLoader/defaultSettings.d.ts +0 -0
  74. /package/dist/{esm → lib}/Settings/Controller/configLoader/defaultSettings.js +0 -0
  75. /package/dist/{esm → lib}/Settings/Controller/configLoader/extractImportErrors.d.ts +0 -0
  76. /package/dist/{esm → lib}/Settings/Controller/configLoader/extractImportErrors.js +0 -0
  77. /package/dist/{esm → lib}/Settings/Controller/configLoader/index.d.ts +0 -0
  78. /package/dist/{esm → lib}/Settings/Controller/configLoader/index.js +0 -0
  79. /package/dist/{esm → lib}/Settings/Controller/configLoader/normalizeRawSettings.d.ts +0 -0
  80. /package/dist/{esm → lib}/Settings/Controller/configLoader/normalizeRawSettings.js +0 -0
  81. /package/dist/{esm → lib}/Settings/Controller/configLoader/readSettings.d.ts +0 -0
  82. /package/dist/{esm → lib}/Settings/Controller/configLoader/readSettings.js +0 -0
  83. /package/dist/{esm → lib}/Settings/Controller/configLoader/readSettingsFiles.d.ts +0 -0
  84. /package/dist/{esm → lib}/Settings/Controller/configLoader/readSettingsFiles.js +0 -0
  85. /package/dist/{esm → lib}/Settings/Controller/configLoader/toGlobDef.d.ts +0 -0
  86. /package/dist/{esm → lib}/Settings/Controller/configLoader/toGlobDef.js +0 -0
  87. /package/dist/{esm → lib}/Settings/Controller/configLoader/types.d.ts +0 -0
  88. /package/dist/{esm → lib}/Settings/Controller/configLoader/types.js +0 -0
  89. /package/dist/{esm → lib}/Settings/Controller/index.d.ts +0 -0
  90. /package/dist/{esm → lib}/Settings/Controller/index.js +0 -0
  91. /package/dist/{esm → lib}/Settings/Controller/pnpLoader.d.ts +0 -0
  92. /package/dist/{esm → lib}/Settings/Controller/pnpLoader.js +0 -0
  93. /package/dist/{esm → lib}/Settings/DefaultSettings.d.ts +0 -0
  94. /package/dist/{esm → lib}/Settings/DictionaryReferenceCollection.d.ts +0 -0
  95. /package/dist/{esm → lib}/Settings/DictionaryReferenceCollection.js +0 -0
  96. /package/dist/{esm → lib}/Settings/DictionarySettings.d.ts +0 -0
  97. /package/dist/{esm → lib}/Settings/DictionarySettings.js +0 -0
  98. /package/dist/{esm → lib}/Settings/GlobalSettings.d.ts +0 -0
  99. /package/dist/{esm → lib}/Settings/GlobalSettings.js +0 -0
  100. /package/dist/{esm → lib}/Settings/InDocSettings.d.ts +0 -0
  101. /package/dist/{esm → lib}/Settings/InDocSettings.js +0 -0
  102. /package/dist/{esm → lib}/Settings/LanguageSettings.d.ts +0 -0
  103. /package/dist/{esm → lib}/Settings/LanguageSettings.js +0 -0
  104. /package/dist/{esm → lib}/Settings/RegExpPatterns.d.ts +0 -0
  105. /package/dist/{esm → lib}/Settings/RegExpPatterns.js +0 -0
  106. /package/dist/{esm → lib}/Settings/TextDocumentSettings.d.ts +0 -0
  107. /package/dist/{esm → lib}/Settings/TextDocumentSettings.js +0 -0
  108. /package/dist/{esm → lib}/Settings/calcOverrideSettings.d.ts +0 -0
  109. /package/dist/{esm → lib}/Settings/calcOverrideSettings.js +0 -0
  110. /package/dist/{esm → lib}/Settings/cfgStore.d.ts +0 -0
  111. /package/dist/{esm → lib}/Settings/cfgStore.js +0 -0
  112. /package/dist/{esm → lib}/Settings/checkFilenameMatchesGlob.d.ts +0 -0
  113. /package/dist/{esm → lib}/Settings/checkFilenameMatchesGlob.js +0 -0
  114. /package/dist/{esm → lib}/Settings/constants.d.ts +0 -0
  115. /package/dist/{esm → lib}/Settings/constants.js +0 -0
  116. /package/dist/{esm → lib}/Settings/index.d.ts +0 -0
  117. /package/dist/{esm → lib}/Settings/index.js +0 -0
  118. /package/dist/{esm → lib}/Settings/index.link.d.ts +0 -0
  119. /package/dist/{esm → lib}/Settings/index.link.js +0 -0
  120. /package/dist/{esm → lib}/Settings/link.d.ts +0 -0
  121. /package/dist/{esm → lib}/Settings/link.js +0 -0
  122. /package/dist/{esm → lib}/Settings/mergeCache.d.ts +0 -0
  123. /package/dist/{esm → lib}/Settings/mergeCache.js +0 -0
  124. /package/dist/{esm → lib}/Settings/mergeList.d.ts +0 -0
  125. /package/dist/{esm → lib}/Settings/mergeList.js +0 -0
  126. /package/dist/{esm → lib}/Settings/patterns.d.ts +0 -0
  127. /package/dist/{esm → lib}/Settings/patterns.js +0 -0
  128. /package/dist/{esm → lib}/SpellingDictionary/Dictionaries.d.ts +0 -0
  129. /package/dist/{esm → lib}/SpellingDictionary/Dictionaries.js +0 -0
  130. /package/dist/{esm → lib}/SpellingDictionary/DictionaryController/DictionaryLoader.d.ts +0 -0
  131. /package/dist/{esm → lib}/SpellingDictionary/DictionaryController/DictionaryLoader.js +0 -0
  132. /package/dist/{esm → lib}/SpellingDictionary/DictionaryController/index.d.ts +0 -0
  133. /package/dist/{esm → lib}/SpellingDictionary/DictionaryController/index.js +0 -0
  134. /package/dist/{esm → lib}/SpellingDictionary/DictionaryLoader.d.ts +0 -0
  135. /package/dist/{esm → lib}/SpellingDictionary/DictionaryLoader.js +0 -0
  136. /package/dist/{esm → lib}/SpellingDictionary/SpellingDictionary.d.ts +0 -0
  137. /package/dist/{esm → lib}/SpellingDictionary/SpellingDictionary.js +0 -0
  138. /package/dist/{esm → lib}/SpellingDictionary/SpellingDictionaryError.d.ts +0 -0
  139. /package/dist/{esm → lib}/SpellingDictionary/SpellingDictionaryError.js +0 -0
  140. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/SuggestionCollector.d.ts +0 -0
  141. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/SuggestionCollector.js +0 -0
  142. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/entities.d.ts +0 -0
  143. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/entities.js +0 -0
  144. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/helpers.d.ts +0 -0
  145. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/helpers.js +0 -0
  146. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/suggest.d.ts +0 -0
  147. /package/dist/{esm → lib}/SpellingDictionary/SuggestExperimental/suggest.js +0 -0
  148. /package/dist/{esm → lib}/SpellingDictionary/index.d.ts +0 -0
  149. /package/dist/{esm → lib}/SpellingDictionary/index.js +0 -0
  150. /package/dist/{esm → lib}/clearCachedFiles.d.ts +0 -0
  151. /package/dist/{esm → lib}/clearCachedFiles.js +0 -0
  152. /package/dist/{esm → lib}/events/events.d.ts +0 -0
  153. /package/dist/{esm → lib}/events/events.js +0 -0
  154. /package/dist/{esm → lib}/events/index.d.ts +0 -0
  155. /package/dist/{esm → lib}/events/index.js +0 -0
  156. /package/dist/{esm → lib}/exclusionHelper.d.ts +0 -0
  157. /package/dist/{esm → lib}/exclusionHelper.js +0 -0
  158. /package/dist/{esm → lib}/fileSystem.d.ts +0 -0
  159. /package/dist/{esm → lib}/fileSystem.js +0 -0
  160. /package/dist/{esm → lib}/getDictionary.d.ts +0 -0
  161. /package/dist/{esm → lib}/getDictionary.js +0 -0
  162. /package/dist/{esm → lib}/globs/checkFilenameMatchesGlob.d.ts +0 -0
  163. /package/dist/{esm → lib}/globs/checkFilenameMatchesGlob.js +0 -0
  164. /package/dist/{esm → lib}/globs/getGlobMatcher.d.ts +0 -0
  165. /package/dist/{esm → lib}/globs/getGlobMatcher.js +0 -0
  166. /package/dist/{esm → lib}/index.d.ts +0 -0
  167. /package/dist/{esm → lib}/index.js +0 -0
  168. /package/dist/{esm → lib}/perf/index.d.ts +0 -0
  169. /package/dist/{esm → lib}/perf/index.js +0 -0
  170. /package/dist/{esm → lib}/perf/perf.d.ts +0 -0
  171. /package/dist/{esm → lib}/perf/perf.js +0 -0
  172. /package/dist/{esm → lib}/perf/timer.d.ts +0 -0
  173. /package/dist/{esm → lib}/perf/timer.js +0 -0
  174. /package/dist/{esm → lib}/spellCheckFile.d.ts +0 -0
  175. /package/dist/{esm → lib}/spellCheckFile.js +0 -0
  176. /package/dist/{esm → lib}/suggestions.d.ts +0 -0
  177. /package/dist/{esm → lib}/suggestions.js +0 -0
  178. /package/dist/{esm → lib}/textValidation/ValidateTextOptions.d.ts +0 -0
  179. /package/dist/{esm → lib}/textValidation/ValidateTextOptions.js +0 -0
  180. /package/dist/{esm → lib}/textValidation/ValidationTypes.js +0 -0
  181. /package/dist/{esm → lib}/textValidation/checkText.d.ts +0 -0
  182. /package/dist/{esm → lib}/textValidation/checkText.js +0 -0
  183. /package/dist/{esm → lib}/textValidation/defaultConstants.d.ts +0 -0
  184. /package/dist/{esm → lib}/textValidation/defaultConstants.js +0 -0
  185. /package/dist/{esm → lib}/textValidation/determineTextDocumentSettings.d.ts +0 -0
  186. /package/dist/{esm → lib}/textValidation/determineTextDocumentSettings.js +0 -0
  187. /package/dist/{esm → lib}/textValidation/docValidator.d.ts +0 -0
  188. /package/dist/{esm → lib}/textValidation/docValidator.js +0 -0
  189. /package/dist/{esm → lib}/textValidation/index.d.ts +0 -0
  190. /package/dist/{esm → lib}/textValidation/index.js +0 -0
  191. /package/dist/{esm → lib}/textValidation/isWordValid.js +0 -0
  192. /package/dist/{esm → lib}/textValidation/lineValidatorFactory.d.ts +0 -0
  193. /package/dist/{esm → lib}/textValidation/parsedText.d.ts +0 -0
  194. /package/dist/{esm → lib}/textValidation/parsedText.js +0 -0
  195. /package/dist/{esm → lib}/textValidation/settingsToValidateOptions.d.ts +0 -0
  196. /package/dist/{esm → lib}/textValidation/settingsToValidateOptions.js +0 -0
  197. /package/dist/{esm → lib}/textValidation/textValidator.d.ts +0 -0
  198. /package/dist/{esm → lib}/textValidation/textValidator.js +0 -0
  199. /package/dist/{esm → lib}/textValidation/traceWord.d.ts +0 -0
  200. /package/dist/{esm → lib}/textValidation/traceWord.js +0 -0
  201. /package/dist/{esm → lib}/textValidation/validator.d.ts +0 -0
  202. /package/dist/{esm → lib}/textValidation/validator.js +0 -0
  203. /package/dist/{esm → lib}/trace.d.ts +0 -0
  204. /package/dist/{esm → lib}/trace.js +0 -0
  205. /package/dist/{esm → lib}/util/AutoResolve.d.ts +0 -0
  206. /package/dist/{esm → lib}/util/AutoResolve.js +0 -0
  207. /package/dist/{esm → lib}/util/AutoResolveLRUCache.d.ts +0 -0
  208. /package/dist/{esm → lib}/util/AutoResolveLRUCache.js +0 -0
  209. /package/dist/{esm → lib}/util/Comparable.d.ts +0 -0
  210. /package/dist/{esm → lib}/util/Comparable.js +0 -0
  211. /package/dist/{esm → lib}/util/FreqCounter.d.ts +0 -0
  212. /package/dist/{esm → lib}/util/FreqCounter.js +0 -0
  213. /package/dist/{esm → lib}/util/IterableLike.d.ts +0 -0
  214. /package/dist/{esm → lib}/util/IterableLike.js +0 -0
  215. /package/dist/{esm → lib}/util/MinHeapQueue.d.ts +0 -0
  216. /package/dist/{esm → lib}/util/MinHeapQueue.js +0 -0
  217. /package/dist/{esm → lib}/util/PairingHeap.d.ts +0 -0
  218. /package/dist/{esm → lib}/util/PairingHeap.js +0 -0
  219. /package/dist/{esm → lib}/util/TextMap.d.ts +0 -0
  220. /package/dist/{esm → lib}/util/TextMap.js +0 -0
  221. /package/dist/{esm → lib}/util/Uri.d.ts +0 -0
  222. /package/dist/{esm → lib}/util/Uri.js +0 -0
  223. /package/dist/{esm → lib}/util/errors.d.ts +0 -0
  224. /package/dist/{esm → lib}/util/errors.js +0 -0
  225. /package/dist/{esm → lib}/util/fileReader.d.ts +0 -0
  226. /package/dist/{esm → lib}/util/fileReader.js +0 -0
  227. /package/dist/{esm → lib}/util/findUp.d.ts +0 -0
  228. /package/dist/{esm → lib}/util/findUp.js +0 -0
  229. /package/dist/{esm → lib}/util/findUpFromUrl.d.ts +0 -0
  230. /package/dist/{esm → lib}/util/findUpFromUrl.js +0 -0
  231. /package/dist/{esm → lib}/util/iterableIteratorLib.d.ts +0 -0
  232. /package/dist/{esm → lib}/util/iterableIteratorLib.js +0 -0
  233. /package/dist/{esm → lib}/util/logger.d.ts +0 -0
  234. /package/dist/{esm → lib}/util/logger.js +0 -0
  235. /package/dist/{esm → lib}/util/memorizeLastCall.d.ts +0 -0
  236. /package/dist/{esm → lib}/util/memorizeLastCall.js +0 -0
  237. /package/dist/{esm → lib}/util/memorizerWeak.d.ts +0 -0
  238. /package/dist/{esm → lib}/util/memorizerWeak.js +0 -0
  239. /package/dist/{esm → lib}/util/regexHelper.d.ts +0 -0
  240. /package/dist/{esm → lib}/util/regexHelper.js +0 -0
  241. /package/dist/{esm → lib}/util/repMap.d.ts +0 -0
  242. /package/dist/{esm → lib}/util/repMap.js +0 -0
  243. /package/dist/{esm → lib}/util/resolveFile.d.ts +0 -0
  244. /package/dist/{esm → lib}/util/search.d.ts +0 -0
  245. /package/dist/{esm → lib}/util/search.js +0 -0
  246. /package/dist/{esm → lib}/util/simpleCache.d.ts +0 -0
  247. /package/dist/{esm → lib}/util/simpleCache.js +0 -0
  248. /package/dist/{esm → lib}/util/templates.d.ts +0 -0
  249. /package/dist/{esm → lib}/util/templates.js +0 -0
  250. /package/dist/{esm → lib}/util/types.d.ts +0 -0
  251. /package/dist/{esm → lib}/util/types.js +0 -0
  252. /package/dist/{esm → lib}/util/url.d.ts +0 -0
  253. /package/dist/{esm → lib}/util/util.d.ts +0 -0
  254. /package/dist/{esm → lib}/util/util.js +0 -0
  255. /package/dist/{esm → lib}/validator.d.ts +0 -0
  256. /package/dist/{esm → lib}/validator.js +0 -0
  257. /package/dist/{esm → lib}/wordListHelper.d.ts +0 -0
  258. /package/dist/{esm → lib}/wordListHelper.js +0 -0
@@ -224,7 +224,7 @@ function splitIntoWords(lineSeg, breaks, has) {
224
224
  }
225
225
  return br.breaks.map(c);
226
226
  }
227
- function toTextOffset(text, offset) {
227
+ function checkTextOffset(text, offset) {
228
228
  const valid = has({ text, offset });
229
229
  return {
230
230
  text,
@@ -282,7 +282,7 @@ function splitIntoWords(lineSeg, breaks, has) {
282
282
  // yes
283
283
  const i = best.bp[0];
284
284
  const j = best.bp[1];
285
- const t = i > best.i ? toTextOffset(text.slice(best.i, i), best.i) : undefined;
285
+ const t = i > best.i ? checkTextOffset(text.slice(best.i, i), best.i) : undefined;
286
286
  const cost = !t || t.isFound ? 0 : t.text.length;
287
287
  const mc = maxIndex - j;
288
288
  best.c += cost;
@@ -304,12 +304,12 @@ function splitIntoWords(lineSeg, breaks, has) {
304
304
  const c = makeCandidates(best.p, best.i, best.bi + 1, best.c);
305
305
  candidates.append(c);
306
306
  if (!c.length) {
307
- const t = maxIndex > best.i ? toTextOffset(text.slice(best.i, maxIndex), best.i) : undefined;
307
+ const t = maxIndex > best.i ? checkTextOffset(text.slice(best.i, maxIndex), best.i) : undefined;
308
308
  const cost = !t || t.isFound ? 0 : t.text.length;
309
309
  best.c += cost;
310
310
  best.ec = best.c;
311
311
  best.text = t;
312
- const segText = t || best.p?.text || toTextOffset('', best.i);
312
+ const segText = t || best.p?.text || checkTextOffset('', best.i);
313
313
  const can = t ? { ...best, text: segText } : { ...best, ...best.p, text: segText };
314
314
  const f = addToKnownPaths(can, undefined);
315
315
  bestPath = !bestPath || (f && f.c < bestPath.c) ? f : bestPath;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wordSplitter.perf.d.ts.map
@@ -0,0 +1,125 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { extname } from 'node:path/posix';
3
+ import { suite } from 'perf-insight';
4
+ import { extractPossibleWordsFromTextOffset, extractWordsFromCode, extractWordsFromText, matchStringToTextOffset, splitCamelCaseWordWithOffset, textOffset, } from './text.js';
5
+ import { regExWordsAndDigits } from './textRegex.js';
6
+ const regExpWord = /\b[\w\p{L}\p{M}]+\b/gu;
7
+ suite('wordSplitter', async (test) => {
8
+ const lines = await sampleLines();
9
+ const iterations = 1;
10
+ test('baseline: matchAll /[\\w\\p{L}\\p{M}]+/gu', () => {
11
+ const s = [];
12
+ const _regExpWord = regExpWord;
13
+ for (let i = iterations; i > 0; --i) {
14
+ for (const line of lines) {
15
+ for (const m of line.matchAll(_regExpWord)) {
16
+ s.push({ text: m[0], offset: m.index });
17
+ }
18
+ }
19
+ }
20
+ return s;
21
+ });
22
+ test('baseline: matchAll non-space /\\S+/g', () => {
23
+ const s = [];
24
+ const regExp = /\S+/g;
25
+ for (let i = iterations; i > 0; --i) {
26
+ for (const line of lines) {
27
+ s.push(...[...line.matchAll(regExp)].map((a) => ({ text: a[0], offset: a.index })));
28
+ }
29
+ }
30
+ return s;
31
+ });
32
+ test('baseline: matchAll non-special', () => {
33
+ const s = [];
34
+ const regExp = /[^\s();:{}[\]*&^%$#@!~"?/\\,<>+=]+/g;
35
+ for (let i = iterations; i > 0; --i) {
36
+ for (const line of lines) {
37
+ s.push(...[...line.matchAll(regExp)].map((a) => ({ text: a[0], offset: a.index })));
38
+ }
39
+ }
40
+ return s;
41
+ });
42
+ test('baseline: matchAll regExWordsAndDigits', () => {
43
+ const s = [];
44
+ const regExp = regExWordsAndDigits;
45
+ for (let i = iterations; i > 0; --i) {
46
+ for (const line of lines) {
47
+ s.push(...[...line.matchAll(regExp)].map((a) => ({ text: a[0], offset: a.index })));
48
+ }
49
+ }
50
+ return s;
51
+ });
52
+ test('baseline: matchAll regExWordsAndDigits matchStringToTextOffset', () => {
53
+ const s = [];
54
+ const regExp = regExWordsAndDigits;
55
+ for (let i = iterations; i > 0; --i) {
56
+ for (const line of lines) {
57
+ s.push(...matchStringToTextOffset(regExp, line));
58
+ }
59
+ }
60
+ return s;
61
+ });
62
+ test('matchAll into possible words', () => {
63
+ const s = [];
64
+ const regExpMaybeWord = /[^\s();:{}[\]*&^%$#@!~"?/\\,<>+=]+/g;
65
+ const _regExpWord = regExpWord;
66
+ for (let i = iterations; i > 0; --i) {
67
+ for (const line of lines) {
68
+ for (const m of line.matchAll(regExpMaybeWord)) {
69
+ const index = m.index;
70
+ for (const words of m[0].matchAll(_regExpWord)) {
71
+ s.push({ text: words[0], offset: index + words.index });
72
+ }
73
+ }
74
+ }
75
+ }
76
+ return s;
77
+ });
78
+ test('extractWordsFromText', () => {
79
+ const s = [];
80
+ for (let i = iterations; i > 0; --i) {
81
+ for (const line of lines) {
82
+ s.push(...extractWordsFromText(line));
83
+ }
84
+ }
85
+ return s;
86
+ });
87
+ test('extractPossibleWordsFromTextOffset', () => {
88
+ const s = [];
89
+ for (let i = iterations; i > 0; --i) {
90
+ for (const line of lines) {
91
+ s.push(...extractPossibleWordsFromTextOffset(textOffset(line)));
92
+ }
93
+ }
94
+ return s;
95
+ });
96
+ test('extractPossibleWordsFromTextOffset splitCamelCaseWordWithOffset', () => {
97
+ const s = [];
98
+ for (let i = iterations; i > 0; --i) {
99
+ for (const line of lines) {
100
+ for (const wo of extractPossibleWordsFromTextOffset(textOffset(line))) {
101
+ for (const cWord of splitCamelCaseWordWithOffset(wo)) {
102
+ s.push(cWord);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ return s;
108
+ });
109
+ test('extractWordsFromCode', () => {
110
+ const s = [];
111
+ for (let i = iterations; i > 0; --i) {
112
+ for (const line of lines) {
113
+ s.push(...extractWordsFromCode(line));
114
+ }
115
+ }
116
+ return s;
117
+ });
118
+ });
119
+ async function sampleLines() {
120
+ const ext = extname(new URL(import.meta.url).pathname);
121
+ const url = new URL('wordSplitter.test' + ext, import.meta.url);
122
+ const context = await readFile(url, 'utf8');
123
+ return context.replaceAll('\r\n', '\n').replaceAll('\r', '\n').split('\n');
124
+ }
125
+ //# sourceMappingURL=wordSplitter.perf.js.map
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "cspell-lib",
3
- "version": "8.13.0",
3
+ "version": "8.13.2",
4
4
  "description": "A library of useful functions used across various cspell tools.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
- "types": "dist/esm/index.d.ts",
8
- "module": "dist/esm/index.js",
7
+ "types": "dist/lib/index.d.ts",
8
+ "module": "dist/lib/index.js",
9
9
  "exports": {
10
10
  ".": {
11
- "import": "./dist/esm/index.js"
11
+ "import": "./dist/lib/index.js"
12
12
  }
13
13
  },
14
14
  "files": [
@@ -24,17 +24,16 @@
24
24
  "scripts": {
25
25
  "clean": "shx rm -rf dist temp coverage \"*.tsbuildInfo\"",
26
26
  "clean-build": "pnpm clean && pnpm build",
27
- "build": "tsc -b . -f && pnpm run build:api",
27
+ "build": "tsc -p . && pnpm run build:api",
28
28
  "build:api": "rollup -c api/rollup.config.mjs",
29
- "build:esm": "tsc -b tsconfig.esm.json -f",
30
- "build:lib": "tsc -b src/lib/tsconfig.json -f",
31
- "watch": "tsc -b . --watch -f",
29
+ "watch": "tsc -p . --watch",
32
30
  "coverage": "vitest run --coverage --pool=forks",
33
31
  "test-watch": "vitest",
34
32
  "prepublishOnly": "pnpm run clean-build",
35
33
  "#test": "vitest run --reporter=hanging-process --reporter=default",
36
34
  "test": "vitest run --pool=forks",
37
- "test:update-snapshot": "vitest run -u"
35
+ "test:update-snapshot": "vitest run -u",
36
+ "test:perf": "NODE_ENV=production insight --register ts-node/esm --file \"**/*.perf.{mts,ts}\""
38
37
  },
39
38
  "repository": {
40
39
  "type": "git",
@@ -59,27 +58,27 @@
59
58
  },
60
59
  "homepage": "https://github.com/streetsidesoftware/cspell#readme",
61
60
  "dependencies": {
62
- "@cspell/cspell-bundled-dicts": "8.13.0",
63
- "@cspell/cspell-pipe": "8.13.0",
64
- "@cspell/cspell-resolver": "8.13.0",
65
- "@cspell/cspell-types": "8.13.0",
66
- "@cspell/dynamic-import": "8.13.0",
67
- "@cspell/strong-weak-map": "8.13.0",
68
- "@cspell/url": "8.13.0",
61
+ "@cspell/cspell-bundled-dicts": "8.13.2",
62
+ "@cspell/cspell-pipe": "8.13.2",
63
+ "@cspell/cspell-resolver": "8.13.2",
64
+ "@cspell/cspell-types": "8.13.2",
65
+ "@cspell/dynamic-import": "8.13.2",
66
+ "@cspell/strong-weak-map": "8.13.2",
67
+ "@cspell/url": "8.13.2",
69
68
  "clear-module": "^4.1.2",
70
69
  "comment-json": "^4.2.4",
71
- "cspell-config-lib": "8.13.0",
72
- "cspell-dictionary": "8.13.0",
73
- "cspell-glob": "8.13.0",
74
- "cspell-grammar": "8.13.0",
75
- "cspell-io": "8.13.0",
76
- "cspell-trie-lib": "8.13.0",
70
+ "cspell-config-lib": "8.13.2",
71
+ "cspell-dictionary": "8.13.2",
72
+ "cspell-glob": "8.13.2",
73
+ "cspell-grammar": "8.13.2",
74
+ "cspell-io": "8.13.2",
75
+ "cspell-trie-lib": "8.13.2",
77
76
  "env-paths": "^3.0.0",
78
77
  "fast-equals": "^5.0.1",
79
78
  "gensequence": "^7.0.0",
80
79
  "import-fresh": "^3.3.0",
81
80
  "resolve-from": "^5.0.0",
82
- "vscode-languageserver-textdocument": "^1.0.11",
81
+ "vscode-languageserver-textdocument": "^1.0.12",
83
82
  "vscode-uri": "^3.0.8",
84
83
  "xdg-basedir": "^5.1.0"
85
84
  },
@@ -94,12 +93,13 @@
94
93
  "@cspell/dict-fr-fr": "^2.2.2",
95
94
  "@cspell/dict-html": "^4.0.5",
96
95
  "@cspell/dict-nl-nl": "^2.3.0",
97
- "@cspell/dict-python": "^4.2.3",
96
+ "@cspell/dict-python": "^4.2.4",
98
97
  "@types/configstore": "^6.0.2",
99
98
  "configstore": "^7.0.0",
100
99
  "cspell-dict-nl-nl": "^1.1.2",
101
100
  "leaked-handles": "^5.2.0",
102
- "lorem-ipsum": "^2.0.8"
101
+ "lorem-ipsum": "^2.0.8",
102
+ "perf-insight": "^1.2.0"
103
103
  },
104
- "gitHead": "2fd3fb430cc96a8a50543f57d96b288219a11923"
104
+ "gitHead": "5c9aaf8829991e7d6d37355acb9b9685088bba14"
105
105
  }
@@ -1,9 +0,0 @@
1
- import type { CachingDictionary } from 'cspell-dictionary';
2
- import type { TextOffsetRO } from './ValidationTypes.js';
3
- declare function hasWordCheck(dict: CachingDictionary, word: string): boolean;
4
- export declare function isWordValidWithEscapeRetry(dict: CachingDictionary, wo: TextOffsetRO, line: TextOffsetRO): boolean;
5
- export declare const __testing__: {
6
- hasWordCheck: typeof hasWordCheck;
7
- };
8
- export {};
9
- //# sourceMappingURL=isWordValid.d.ts.map
@@ -1,128 +0,0 @@
1
- import { opConcatMap, opFilter, opMap, pipe, toArray } from '@cspell/cspell-pipe/sync';
2
- import { createCachingDictionary } from 'cspell-dictionary';
3
- import * as RxPat from '../Settings/RegExpPatterns.js';
4
- import * as Text from '../util/text.js';
5
- import { clean } from '../util/util.js';
6
- import { split } from '../util/wordSplitter.js';
7
- import { defaultMinWordLength } from './defaultConstants.js';
8
- import { isWordValidWithEscapeRetry } from './isWordValid.js';
9
- import { mapRangeBackToOriginalPos } from './parsedText.js';
10
- export function lineValidatorFactory(sDict, options) {
11
- const { minWordLength = defaultMinWordLength, flagWords = [], allowCompoundWords = false, ignoreCase = true, } = options;
12
- const hasWordOptions = {
13
- ignoreCase,
14
- useCompounds: allowCompoundWords || undefined, // let the dictionaries decide on useCompounds if allow is false
15
- };
16
- const dictCol = createCachingDictionary(sDict, hasWordOptions);
17
- const setOfFlagWords = new Set(flagWords);
18
- const setOfKnownSuccessfulWords = new Set();
19
- const rememberFilter = (fn) => (v) => {
20
- const keep = fn(v);
21
- if (!keep) {
22
- setOfKnownSuccessfulWords.add(v.text);
23
- }
24
- return keep;
25
- };
26
- const filterAlreadyChecked = (wo) => {
27
- return !setOfKnownSuccessfulWords.has(wo.text);
28
- };
29
- function testForFlaggedWord(wo) {
30
- const text = wo.text;
31
- return setOfFlagWords.has(text) || setOfFlagWords.has(text.toLowerCase()) || dictCol.isForbidden(text);
32
- }
33
- function isWordIgnored(word) {
34
- return dictCol.isNoSuggestWord(word);
35
- }
36
- function getSuggestions(word) {
37
- return dictCol.getPreferredSuggestions(word);
38
- }
39
- function isWordFlagged(word) {
40
- const isIgnored = isWordIgnored(word.text);
41
- const isFlagged = !isIgnored && testForFlaggedWord(word);
42
- return isFlagged;
43
- }
44
- function annotateIsFlagged(word) {
45
- word.isFlagged = isWordFlagged(word);
46
- return word;
47
- }
48
- function annotateIssue(issue) {
49
- const sugs = getSuggestions(issue.text);
50
- if (sugs && sugs.length) {
51
- issue.suggestionsEx = sugs;
52
- }
53
- return issue;
54
- }
55
- function checkWord(word) {
56
- const isIgnored = isWordIgnored(word.text);
57
- const { isFlagged = !isIgnored && testForFlaggedWord(word) } = word;
58
- const isFound = isFlagged ? undefined : isIgnored || isWordValidWithEscapeRetry(dictCol, word, word.line);
59
- return clean({ ...word, isFlagged, isFound });
60
- }
61
- const fn = (lineSegment) => {
62
- function splitterIsValid(word) {
63
- return (setOfKnownSuccessfulWords.has(word.text) ||
64
- (!testForFlaggedWord(word) && isWordValidWithEscapeRetry(dictCol, word, lineSegment.line)));
65
- }
66
- function checkFullWord(vr) {
67
- if (vr.isFlagged) {
68
- return [vr];
69
- }
70
- const codeWordResults = toArray(pipe(Text.extractWordsFromCodeTextOffset(vr), opFilter(filterAlreadyChecked), opMap((t) => ({ ...t, line: vr.line })), opMap(annotateIsFlagged), opFilter(rememberFilter((wo) => wo.text.length >= minWordLength || !!wo.isFlagged)), opMap((wo) => (wo.isFlagged ? wo : checkWord(wo))), opFilter(rememberFilter((wo) => wo.isFlagged || !wo.isFound)), opFilter(rememberFilter((wo) => !RxPat.regExRepeatedChar.test(wo.text))),
71
- // get back the original text.
72
- opMap((wo) => ({
73
- ...wo,
74
- text: Text.extractText(lineSegment.segment, wo.offset, wo.offset + wo.text.length),
75
- }))));
76
- if (!codeWordResults.length || isWordIgnored(vr.text) || checkWord(vr).isFound) {
77
- rememberFilter((_) => false)(vr);
78
- return [];
79
- }
80
- return codeWordResults;
81
- }
82
- function checkPossibleWords(possibleWord) {
83
- if (isWordFlagged(possibleWord)) {
84
- const vr = {
85
- ...possibleWord,
86
- line: lineSegment.line,
87
- isFlagged: true,
88
- };
89
- return [vr];
90
- }
91
- const mismatches = toArray(pipe(Text.extractWordsFromTextOffset(possibleWord), opFilter((wo) => filterAlreadyChecked(wo)), opMap((wo) => ((wo.line = lineSegment.line), wo)), opMap(annotateIsFlagged), opFilter(rememberFilter((wo) => wo.text.length >= minWordLength || !!wo.isFlagged)), opConcatMap(checkFullWord)));
92
- if (mismatches.length) {
93
- // Try the more expensive word splitter
94
- const splitResult = split(lineSegment.segment, possibleWord.offset, splitterIsValid);
95
- const nonMatching = splitResult.words.filter((w) => !w.isFound);
96
- if (nonMatching.length < mismatches.length) {
97
- return nonMatching.map((w) => ({ ...w, line: lineSegment.line })).map(annotateIsFlagged);
98
- }
99
- }
100
- return mismatches;
101
- }
102
- const checkedPossibleWords = pipe(Text.extractPossibleWordsFromTextOffset(lineSegment.segment), opFilter(filterAlreadyChecked), opConcatMap(checkPossibleWords), opMap(annotateIssue));
103
- return checkedPossibleWords;
104
- };
105
- return { fn, dict: dictCol };
106
- }
107
- export function textValidatorFactory(dict, options) {
108
- const lineValidator = lineValidatorFactory(dict, options);
109
- const lineValidatorFn = lineValidator.fn;
110
- function validate(pText) {
111
- const { text, range: srcRange, map } = pText;
112
- const srcOffset = srcRange[0];
113
- const segment = { text, offset: 0 };
114
- const lineSegment = { line: segment, segment };
115
- function mapBackToOriginSimple(vr) {
116
- const { text, offset, isFlagged, isFound, suggestionsEx } = vr;
117
- const r = mapRangeBackToOriginalPos([offset, offset + text.length], map);
118
- const range = [r[0] + srcOffset, r[1] + srcOffset];
119
- return { text, range, isFlagged, isFound, suggestionsEx };
120
- }
121
- return [...lineValidatorFn(lineSegment)].map(mapBackToOriginSimple);
122
- }
123
- return {
124
- validate,
125
- lineValidator,
126
- };
127
- }
128
- //# sourceMappingURL=lineValidatorFactory.js.map
@@ -1,10 +0,0 @@
1
- "use strict";
2
- /**
3
- * This module contains CJS only files.
4
- * It includes files that use 3rd part libs that can only be CJS due to their exports.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.srcDirectory = void 0;
8
- var pkg_info_cjs_1 = require("./pkg-info.cjs");
9
- Object.defineProperty(exports, "srcDirectory", { enumerable: true, get: function () { return pkg_info_cjs_1.srcDirectory; } });
10
- //# sourceMappingURL=index.cjs.map
@@ -1,6 +0,0 @@
1
- /**
2
- * This module contains CJS only files.
3
- * It includes files that use 3rd part libs that can only be CJS due to their exports.
4
- */
5
- export { srcDirectory } from './pkg-info.cjs';
6
- //# sourceMappingURL=index.d.cts.map
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.srcDirectory = void 0;
4
- // import { join } from 'path';
5
- // export const srcDirectory = join(__dirname, '/');
6
- exports.srcDirectory = __dirname;
7
- //# sourceMappingURL=pkg-info.cjs.map
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes