Ничего не нашёл на Хабре про 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.

Ссылки:

Комментарии (1)


  1. Tatooine
    24.04.2024 04:03

    Он должен зачитывать код с сильным индуским акцентом, иначе не комильфо.