Поиск опечаток в проекте

—

от автора

Ничего не нашёл на Хабре про CSpell, попробую исправить ситуацию.

Для среднего проекта с документацией понадобился линтер для проверки опечаток. Одним из условий была локальная и быстрая проверка текста, без отправки на внешние сервера.

Таким инструментом оказался CSpell. Если пишите код в Visual Studio Code, то вы его уже используете. CSpell позиционирует себя как спеллер для кода, но он может также спеллерить и обычные тексты. Давайте подключим его в проект.

Подключение

npm i --save-dev cspell npm i --save-dev @cspell/dict-ru_ru 

В package.json:

{   "scripts": {     "cspell-lint": "cspell ** --cache --show-suggestions --no-progress",     "cspell-sort": "LC_ALL=C sort -f -u cspell_custom_words.txt -o cspell_custom_words.txt"   } } 

Создаём в корне проекта файл настроек cspell.json:

{     "version": "0.2",     "language": "en,ru",     "dictionaryDefinitions": [       {         "name": "cspell-custom-words",         "path": "./cspell_custom_words.txt",         "addWords": true       }     ],     "dictionaries": [         "cspell-custom-words",         "typescript",         "html"     ],     "import": ["@cspell/dict-ru_ru/cspell-ext.json"],     "ignorePaths": [         "node_modules",         "deploy",         "dist",         "assets"     ] } 

К сожалению, в словарях CSpell есть не все слова. Неизвестные слова необходимо будет добавить в собственный словарь или подключить дополнительный словарь, будем считать это неким «налогом на использование».
В корне проекта для собственного словаря заводим файл cspell_custom_words.txt:

контрол промис дженерик ... 

Создание этого словаря можно значительно ускорить, выполнив команду в проекте:

cspell ** --words-only | sort -uf > cspell_custom_words.txt

Удаляем опечатки из cspell_custom_words.txt — ваш словарь готов!

Ещё из интересного — есть возможность вывести опечатки с контекстом, параметр --show-context.

cspell

Плюс, можно выгрузить все опечатки в JSON: cspell "**" --reporter @cspell/cspell-json-reporter.

Далее, по вкусу, добавляем прекоммит-хук, подключаем в CI.

Ссылки:


ссылка на оригинал статьи https://habr.com/ru/articles/809889/