cspell
Version:
A Spelling Checker for Code!
23 lines (18 loc) • 1.25 kB
text/typescript
import { DictionaryDefinition, DictionaryId, CSpellUserSettings } from '../Settings';
import { filterDictDefsToLoad } from '../Settings/DictionarySettings';
import { loadDictionary } from './DictionaryLoader';
import { SpellingDictionary, createSpellingDictionary } from './SpellingDictionary';
import { createCollectionP } from './SpellingDictionaryCollection';
import { SpellingDictionaryCollection } from './index';
export function loadDictionaries(dictIds: DictionaryId[], defs: DictionaryDefinition[]): Promise<SpellingDictionary>[] {
const defsToLoad = filterDictDefsToLoad(dictIds, defs);
return defsToLoad
.map(e => e[1])
.map(def => loadDictionary(def.path!, def));
}
export function getDictionary(settings: CSpellUserSettings): Promise<SpellingDictionaryCollection> {
const { words = [], userWords = [], dictionaries = [], dictionaryDefinitions = [], flagWords = [] } = settings;
const spellDictionaries = loadDictionaries(dictionaries, dictionaryDefinitions);
const settingsDictionary = Promise.resolve(createSpellingDictionary(words.concat(userWords), 'user_words', 'From Settings'));
return createCollectionP([...spellDictionaries, settingsDictionary], 'dictionary collection', flagWords);
}