Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Speed up spell checking with large config files. #2362

Merged
merged 5 commits into from
Jan 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 23 additions & 17 deletions packages/cspell-lib/api/api.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ declare class SpellingDictionaryLoadError extends Error {
}
declare function isSpellingDictionaryLoadError(e: Error): e is SpellingDictionaryLoadError;

declare function createSpellingDictionary(wordList: string[] | IterableLike<string>, name: string, source: string, options: SpellingDictionaryOptions | undefined): SpellingDictionary;
declare function createSpellingDictionary(wordList: readonly string[] | IterableLike<string>, name: string, source: string, options: SpellingDictionaryOptions | undefined): SpellingDictionary;

declare function splitCamelCaseWordWithOffset(wo: TextOffset): Array<TextOffset>;
/**
Expand Down Expand Up @@ -360,35 +360,45 @@ declare function getLanguagesForExt(ext: string): string[];

declare type LoaderResult = URI | undefined;

declare type CSpellSettingsWST = CSpellSettingsWithSourceTrace;
declare type CSpellSettingsI = CSpellSettingsInternal;
declare const currentSettingsFileVersion = "0.2";
declare type CSpellSettingsWST$1 = CSpellSettingsWithSourceTrace;
declare type CSpellSettingsI$1 = CSpellSettingsInternal;
declare const sectionCSpell = "cSpell";
declare const defaultFileName = "cspell.json";
declare const ENV_CSPELL_GLOB_ROOT = "CSPELL_GLOB_ROOT";
declare const defaultConfigFilenames: readonly string[];
declare function readSettings(filename: string): CSpellSettingsI;
declare function readSettings(filename: string, defaultValues: CSpellSettingsWST): CSpellSettingsI;
declare function readSettings(filename: string, relativeTo: string): CSpellSettingsI;
declare function readSettings(filename: string, relativeTo: string, defaultValues: CSpellSettingsWST): CSpellSettingsI;
declare function searchForConfig(searchFrom: string | undefined, pnpSettings?: PnPSettings): Promise<CSpellSettingsI | undefined>;
declare function readSettings(filename: string): CSpellSettingsI$1;
declare function readSettings(filename: string, defaultValues: CSpellSettingsWST$1): CSpellSettingsI$1;
declare function readSettings(filename: string, relativeTo: string): CSpellSettingsI$1;
declare function readSettings(filename: string, relativeTo: string, defaultValues: CSpellSettingsWST$1): CSpellSettingsI$1;
declare function searchForConfig(searchFrom: string | undefined, pnpSettings?: PnPSettings): Promise<CSpellSettingsI$1 | undefined>;
/**
* Load a CSpell configuration files.
* @param file - path or package reference to load.
* @param pnpSettings - PnP settings
* @returns normalized CSpellSettings
*/
declare function loadConfig(file: string, pnpSettings?: PnPSettings): Promise<CSpellSettingsI>;
declare function loadConfig(file: string, pnpSettings?: PnPSettings): Promise<CSpellSettingsI$1>;
declare function loadPnP(pnpSettings: PnPSettings, searchFrom: URI): Promise<LoaderResult>;
declare function loadPnPSync(pnpSettings: PnPSettings, searchFrom: URI): LoaderResult;
declare function readRawSettings(filename: string, relativeTo?: string): CSpellSettingsWST;
declare function readRawSettings(filename: string, relativeTo?: string): CSpellSettingsWST$1;
/**
*
* @param filenames - settings files to read
* @returns combined configuration
* @deprecated true
*/
declare function readSettingsFiles(filenames: string[]): CSpellSettingsI;
declare function readSettingsFiles(filenames: string[]): CSpellSettingsI$1;
declare function getGlobalSettings(): CSpellSettingsI$1;
declare function getCachedFileSize(): number;
declare function clearCachedSettingsFiles(): void;
interface ImportFileRefWithError$1 extends ImportFileRef {
error: Error;
}
declare function extractImportErrors(settings: CSpellSettingsWST$1): ImportFileRefWithError$1[];

declare type CSpellSettingsWST = CSpellSettingsWithSourceTrace;
declare type CSpellSettingsI = CSpellSettingsInternal;
declare const currentSettingsFileVersion = "0.2";
declare const ENV_CSPELL_GLOB_ROOT = "CSPELL_GLOB_ROOT";
declare function mergeSettings(left: CSpellSettingsWST | CSpellSettingsI, ...settings: (CSpellSettingsWST | CSpellSettingsI)[]): CSpellSettingsI;
declare function mergeInDocSettings(left: CSpellSettingsWST, right: CSpellSettingsWST): CSpellSettingsWST;
declare function calcOverrideSettings(settings: CSpellSettingsWST, filename: string): CSpellSettingsI;
Expand All @@ -398,9 +408,6 @@ declare function calcOverrideSettings(settings: CSpellSettingsWST, filename: str
* @returns settings where all globs and file paths have been resolved.
*/
declare function finalizeSettings(settings: CSpellSettingsWST | CSpellSettingsI): CSpellSettingsI;
declare function getGlobalSettings(): CSpellSettingsI;
declare function getCachedFileSize(): number;
declare function clearCachedSettingsFiles(): void;
/**
* @param filename - filename
* @param globs - globs
Expand All @@ -417,7 +424,6 @@ declare function getSources(settings: CSpellSettingsWST): CSpellSettingsWST[];
interface ImportFileRefWithError extends ImportFileRef {
error: Error;
}
declare function extractImportErrors(settings: CSpellSettingsWST): ImportFileRefWithError[];
interface ConfigurationDependencies {
configFiles: string[];
dictionaryFiles: string[];
Expand Down
11 changes: 11 additions & 0 deletions packages/cspell-lib/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/cspell-lib/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"cspell-glob": "^5.17.0",
"cspell-io": "^5.17.0",
"cspell-trie-lib": "^5.17.0",
"fast-equals": "^2.0.4",
"find-up": "^5.0.0",
"fs-extra": "^10.0.0",
"gensequence": "^3.1.1",
Expand Down
Loading