# Конфигурация 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(*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|_'