arui-presets-lint
Version:
Config files for arui-apps
52 lines (51 loc) • 3.14 kB
JavaScript
// Поддерживаемые типы ESLint директив
export const SUPPORTED_DIRECTIVES = [
'eslint',
'eslint-disable',
'eslint-disable-line',
'eslint-disable-next-line',
'eslint-enable',
'eslint-env',
];
/**
* Коллекция описаний для автодополнений в правилах ESLint.
* Используется для предоставления пользователю готовых вариантов описаний при нарушении правила
*/
export const SUGGESTS_DESCRIPTION = {
DEBUG: 'Используется временно для отладки',
ABOVE_COMMENT: 'TODO: [ссылка на задачу] Описание',
};
export const MESSAGE_IDS = {
missingDescription: 'missingDescription',
invalidDescription: 'invalidDescription',
suggestDebug: 'suggestDebug',
suggestAboveComment: 'suggestAboveComment',
};
export const MESSAGES = {
[MESSAGE_IDS.missingDescription]: 'Директива ESLint без описания. Добавьте описание после "--" или комментарий над директивой чтобы объяснить причину использования.\n' +
'\nПримеры:\n' +
'1. // eslint-disable-next-line правило -- причина отключения\n' +
'2. /* eslint-disable правило -- объяснение необходимости */\n' +
'3. /* eslint-env окружение -- описание контекста */\n' +
'4. // причина отключения правила\n' +
' // eslint-disable-next-line правило\n' +
'5. /*\n' +
' * Развернутое объяснение\n' +
' * и причины отключения\n' +
' */\n' +
' // eslint-disable-next-line правило',
[MESSAGE_IDS.invalidDescription]: 'Описание слишком общее или неинформативное. Укажите конкретную причину.',
[MESSAGE_IDS.suggestDebug]: `Добавить комментарий - "${SUGGESTS_DESCRIPTION.DEBUG}"`,
[MESSAGE_IDS.suggestAboveComment]: `Добавить задачу (TODO) на исправление - "${SUGGESTS_DESCRIPTION.ABOVE_COMMENT}"`,
};
export const DESCRIPTION_SEPARATOR = /\s-{2,}\s/u; // Регулярное выражение для разделения директивы и описания
export const DESCRIPTION_REPLACEMENT = /\s-{2,}.*$/u; // Регулярное выражение для удаления существующего описания
export const MIN_DESCRIPTION_LENGTH = 5; // мин. длина комментария
export const FORBIDDEN_PATTERNS = [
/^\s*$/u, // пустые строки
/^[\s\p{Punctuation}]*$/u, // только пробелы и пунктуация
];
export const MEANINGFUL_PATTERNS = [
/[a-zA-Zа-яА-Я]{2,}/u, // содержит слова из 2+ букв
/\\d+/u, // содержит числа (возможно, номера задач)
];