Ничего не нашёл на Хабре про 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
.
Плюс, можно выгрузить все опечатки в JSON: cspell "**" --reporter @cspell/cspell-json-reporter
.
Далее, по вкусу, добавляем прекоммит-хук, подключаем в CI.
Tatooine
Он должен зачитывать код с сильным индуским акцентом, иначе не комильфо.