UNPKG

arui-presets-lint

Version:
119 lines (94 loc) 5.83 kB
Набор правил ESLint для контроля комментариев отключенных комментариев. Плагин проверяет, что отключенный комментарий ESLint правила сопровождается описанием, что позволяет поддерживать чистоту кода и облегчает аудит. ### Config Пакет экспортирует готовую конфигурацию ESLint. Если вам нужен только сам плагин или отдельные правила, их можно импортировать из соответствующих подпапок: ```js // Импорт плагина import { disableCommentsPlugin } from 'arui-presets-lint/eslint/plugins'; // Импорт правила import { requireDescriptionRule } from 'arui-presets-lint/eslint/plugins/disable-comments/rule'; export default [ { plugins: { 'disable-comments': disableCommentsPlugin, }, rules: { 'disable-comments/require-description': 'warn', }, }, ]; ``` ### Переопределение правил Если требуется изменить уровень или параметры правила, добавьте собственный объект конфигурации после импорта готового конфига: ```js import { disableCommentsConfig } from 'arui-presets-lint/eslint/plugins'; export default [ disableCommentsConfig, { rules: { // Переключаем предупреждение в ошибку и задаём список директив, которые можно не сопровождать описанием 'disable-comments/require-description': [ 'error', { ignore: ['eslint-env'] }, ], }, }, ]; ``` ### Список правил | Правило | Описание | По умолчанию | |----------------------------------------|--------------------------------------------------------------------------|--------------| | `disable-comments/require-description` | Требует наличие описания после любого комментария `eslint`, `eslint-disable`, `eslint-disable-next-line`, `eslint-disable-line`, `eslint-enable`, `eslint-env` | `warn` | #### Параметры правила `disable-comments/require-description` - **ignore** *(массив строк)* – список директив ESLint, для которых допускается отсутствие описания. <br/>Допустимые значения: - `eslint` - `eslint-disable` - `eslint-disable-line` - `eslint-disable-next-line` - `eslint-enable` - `eslint-env` #### Пример конфигурации ```js { "rules": { "disable-comments/require-description": [ "error", { "ignore": ["eslint-env", "eslint"] } ] } } ``` ### Примеры - Описание может быть указано **двумя способами**: 1. **Встроенно в тот же комментарий** через сепаратор `--` ```ts // eslint-disable-next-line no-empty, no-constant-condition -- объяснение необходимости /* eslint-disable no-empty, no-constant-condition -- объяснение необходимости */ ``` 2. **Отдельным надстрочным комментарии**, расположенным непосредственно перед директивой ```ts // Причина отключения правила // eslint-disable-next-line no-empty, no-constant-condition /* Причина отключения правила */ /* eslint-disable no-empty, no-constant-condition */ /* * Развернутое объяснение * и причины отключения */ /* eslint-disable no-empty, no-constant-condition */ ``` - В обоих случаях текст описания проходит проверку: - не состоит только из пробелов или пунктуации; - содержит «осмысленный» фрагмент (буквы или цифры). ### Сообщения и предложения (suggestions) | messageId | Текст сообщения | |----------------------------------------|--------------------------------------------------------------------------| | `missingDescription` | Директива ESLint без описания. Добавьте описание после -- или комментарий над директивой. | | `invalidDescription` | Описание слишком общее или неинформативное. Укажите конкретную причину. | | `suggestDebug` | Добавить комментарий — "Используется временно для отладки" | | `suggestAboveComment` | Добавить задачу — "TODO: \[ссылка на задачу\] Описание" | #### Автоматические исправления - `createSuggestionFix` – добавляет описание после разделителя --. - `createAboveCommentFix` – вставляет отдельный комментарий над директивой. Эти исправления доступны через eslint --fix и через меню «Suggest» в IDE, поддерживающих ESLint‑suggestions.