arui-presets-lint
Version:
Config files for arui-apps
119 lines (94 loc) • 5.83 kB
Markdown
Набор правил 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.