Files
LMS/config/detekt/detekt.yml

79 lines
2.6 KiB
YAML

# Конфигурация detekt для LMS. Значения подобраны под текущий стиль кода:
# базовые правила включены (buildUponDefaultConfig = true), шумные отключены или ослаблены.
build:
maxIssues: 0
weights: {}
config:
validation: true
warningsAsErrors: false
complexity:
# Крупные агрегаты уже раздроблены (web ApiClient — по доменам, AdminController —
# на AdminSupport + 5 контроллеров, импорт материалов — в ContentImporter).
# Оставшиеся послабления точечные и перечислены ниже; после дробления ContentService
# и выноса хелперов из методов groupDetail/labDetail/editLab их можно снять.
LongMethod:
# groupDetail (82), labDetail (73), editLab (86) в админ-контроллерах.
threshold: 90
LongParameterList:
# MVC-обработчики форм принимают набор @RequestParam — для них это нормально.
functionThreshold: 8
constructorThreshold: 8
ignoreDefaultParameters: true
ignoreAnnotated:
- 'PostMapping'
- 'GetMapping'
TooManyFunctions:
# ContentService (26) — следующий кандидат на разделение.
thresholdInFiles: 20
thresholdInClasses: 20
thresholdInInterfaces: 20
thresholdInObjects: 20
thresholdInEnums: 20
LargeClass:
threshold: 600
ComplexCondition:
threshold: 4
CyclomaticComplexMethod:
# editLab (16) в AdminLabController.
threshold: 17
style:
MagicNumber:
active: false
MaxLineLength:
active: false
ReturnCount:
max: 4
WildcardImport:
active: true
UnusedPrivateMember:
active: true
LoopWithTooManyJumpStatements:
maxJumpCount: 2
# MVC-контроллеры возвращают имя шаблона — это не «магическая константа».
FunctionOnlyReturningConstant:
ignoreAnnotated:
- 'GetMapping'
- 'PostMapping'
performance:
# runApplication<App>(*args) — идиоматичная точка входа Spring Boot.
SpreadOperator:
active: false
naming:
FunctionNaming:
ignoreAnnotated:
- 'Test'
MatchingDeclarationName:
active: false
# Enum-значения хранятся в БД и API строками в lowerCamelCase.
EnumNaming:
active: false
empty-blocks:
EmptyCatchBlock:
allowedExceptionNameRegex: 'ignored|expected|_'