1build: 2 maxIssues: 0 3 weights: 4 # complexity: 2 5 # LongParameterList: 1 6 # style: 1 7 # comments: 1 8 9processors: 10 active: true 11 exclude: 12 # - 'FunctionCountProcessor' 13 # - 'PropertyCountProcessor' 14 # - 'ClassCountProcessor' 15 # - 'PackageCountProcessor' 16 # - 'KtFileCountProcessor' 17 18console-reports: 19 active: true 20 exclude: 21 # - 'ProjectStatisticsReport' 22 # - 'ComplexityReport' 23 # - 'NotificationReport' 24 # - 'FindingsReport' 25 # - 'BuildFailureReport' 26 27comments: 28 active: true 29 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 30 CommentOverPrivateFunction: 31 active: false 32 CommentOverPrivateProperty: 33 active: false 34 EndOfSentenceFormat: 35 active: false 36 endOfSentenceFormat: ([.?!][ \t\n\r\f<])|([.?!:]$) 37 UndocumentedPublicClass: 38 active: false 39 searchInNestedClass: true 40 searchInInnerClass: true 41 searchInInnerObject: true 42 searchInInnerInterface: true 43 UndocumentedPublicFunction: 44 active: false 45 46complexity: 47 active: true 48 ComplexCondition: 49 active: true 50 threshold: 4 51 ComplexInterface: 52 active: false 53 threshold: 10 54 includeStaticDeclarations: false 55 ComplexMethod: 56 #LeakCanary - increased allowed complexity from 10 to 30; enabled ignores 57 active: true 58 threshold: 30 59 ignoreSingleWhenExpression: true 60 ignoreSimpleWhenEntries: true 61 LabeledExpression: 62 active: false 63 ignoredLabels: "" 64 LargeClass: 65 active: true 66 threshold: 600 67 LongMethod: 68 #LeakCanary - increased from 60 to 90 69 active: true 70 threshold: 90 71 LongParameterList: 72 #LeakCanary - enabled ignore 73 active: true 74 threshold: 6 75 ignoreDefaultParameters: true 76 MethodOverloading: 77 active: false 78 threshold: 6 79 NestedBlockDepth: 80 #LeakCanary - increased from 4 to 7 81 active: true 82 threshold: 7 83 StringLiteralDuplication: 84 active: false 85 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 86 threshold: 3 87 ignoreAnnotation: true 88 excludeStringsWithLessThan5Characters: true 89 ignoreStringsRegex: '$^' 90 TooManyFunctions: 91 #LeakCanary - increased from 11 to 12 92 active: true 93 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 94 thresholdInFiles: 50 95 thresholdInClasses: 50 96 thresholdInInterfaces: 11 97 thresholdInObjects: 50 98 thresholdInEnums: 12 99 ignoreDeprecated: false 100 ignorePrivate: false 101 ignoreOverridden: false 102 103coroutines: 104 active: true 105 GlobalCoroutineUsage: 106 active: true 107 RedundantSuspendModifier: 108 active: true 109 110empty-blocks: 111 active: true 112 EmptyCatchBlock: 113 active: true 114 allowedExceptionNameRegex: "^(_|(ignore|expected).*)" 115 EmptyClassBlock: 116 active: true 117 EmptyDefaultConstructor: 118 active: true 119 EmptyDoWhileBlock: 120 active: true 121 EmptyElseBlock: 122 active: true 123 EmptyFinallyBlock: 124 active: true 125 EmptyForBlock: 126 active: true 127 EmptyFunctionBlock: 128 #LeakCanary - allow empty overridden functions 129 active: true 130 ignoreOverridden: true 131 EmptyIfBlock: 132 active: true 133 EmptyInitBlock: 134 active: true 135 EmptyKtFile: 136 active: true 137 EmptySecondaryConstructor: 138 active: true 139 EmptyWhenBlock: 140 active: true 141 EmptyWhileBlock: 142 active: true 143 144exceptions: 145 active: true 146 ExceptionRaisedInUnexpectedLocation: 147 active: false 148 methodNames: 'toString,hashCode,equals,finalize' 149 InstanceOfCheckForException: 150 active: false 151 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 152 NotImplementedDeclaration: 153 active: false 154 PrintStackTrace: 155 active: false 156 RethrowCaughtException: 157 active: false 158 ReturnFromFinally: 159 active: false 160 SwallowedException: 161 active: false 162 ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException' 163 ThrowingExceptionFromFinally: 164 active: false 165 ThrowingExceptionInMain: 166 active: false 167 ThrowingExceptionsWithoutMessageOrCause: 168 active: false 169 exceptions: 'IllegalArgumentException,IllegalStateException,IOException' 170 ThrowingNewInstanceOfSameException: 171 active: false 172 TooGenericExceptionCaught: 173 #LeakCanary - disabled 174 active: false 175 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 176 exceptionNames: 177 - ArrayIndexOutOfBoundsException 178 - Error 179 - Exception 180 - IllegalMonitorStateException 181 - NullPointerException 182 - IndexOutOfBoundsException 183 - RuntimeException 184 - Throwable 185 allowedExceptionNameRegex: "^(_|(ignore|expected).*)" 186 TooGenericExceptionThrown: 187 #LeakCanary - disabled 188 active: false 189 exceptionNames: 190 - Error 191 - Exception 192 - Throwable 193 - RuntimeException 194 195formatting: 196 active: true 197 android: false 198 autoCorrect: true 199 AnnotationOnSeparateLine: 200 active: false 201 ChainWrapping: 202 active: true 203 autoCorrect: true 204 CommentSpacing: 205 active: true 206 autoCorrect: true 207 Filename: 208 active: true 209 FinalNewline: 210 active: true 211 autoCorrect: true 212 ImportOrdering: 213 active: false 214 Indentation: 215 active: false 216 indentSize: 4 217 continuationIndentSize: 4 218 MaximumLineLength: 219 active: true 220 maxLineLength: 120 221 ModifierOrdering: 222 active: true 223 autoCorrect: true 224 MultiLineIfElse: 225 active: true 226 autoCorrect: true 227 NoBlankLineBeforeRbrace: 228 active: true 229 autoCorrect: true 230 NoConsecutiveBlankLines: 231 active: true 232 autoCorrect: true 233 NoEmptyClassBody: 234 active: true 235 autoCorrect: true 236 NoLineBreakAfterElse: 237 active: true 238 autoCorrect: true 239 NoLineBreakBeforeAssignment: 240 active: true 241 autoCorrect: true 242 NoMultipleSpaces: 243 active: true 244 autoCorrect: true 245 NoSemicolons: 246 active: true 247 autoCorrect: true 248 NoTrailingSpaces: 249 active: true 250 autoCorrect: true 251 NoUnitReturn: 252 active: true 253 autoCorrect: true 254 NoUnusedImports: 255 active: true 256 autoCorrect: true 257 NoWildcardImports: 258 active: true 259 autoCorrect: true 260 PackageName: 261 active: true 262 autoCorrect: true 263 ParameterListWrapping: 264 active: true 265 autoCorrect: true 266 indentSize: 4 267 SpacingAroundColon: 268 active: true 269 autoCorrect: true 270 SpacingAroundComma: 271 active: true 272 autoCorrect: true 273 SpacingAroundCurly: 274 active: true 275 autoCorrect: true 276 SpacingAroundDot: 277 active: true 278 autoCorrect: true 279 SpacingAroundKeyword: 280 active: true 281 autoCorrect: true 282 SpacingAroundOperators: 283 active: true 284 autoCorrect: true 285 SpacingAroundParens: 286 active: true 287 autoCorrect: true 288 SpacingAroundRangeOperator: 289 active: true 290 autoCorrect: true 291 StringTemplate: 292 active: true 293 autoCorrect: true 294 295naming: 296 active: true 297 ClassNaming: 298 active: true 299 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 300 classPattern: '[A-Z$][a-zA-Z0-9$]*' 301 ConstructorParameterNaming: 302 active: true 303 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 304 parameterPattern: '[a-z][A-Za-z0-9]*' 305 privateParameterPattern: '[a-z][A-Za-z0-9]*' 306 excludeClassPattern: '$^' 307 EnumNaming: 308 active: true 309 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 310 enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*' 311 ForbiddenClassName: 312 active: false 313 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 314 forbiddenName: '' 315 FunctionMaxLength: 316 active: false 317 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 318 maximumFunctionNameLength: 30 319 FunctionMinLength: 320 active: false 321 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 322 minimumFunctionNameLength: 3 323 FunctionNaming: 324 active: true 325 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 326 functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$' 327 excludeClassPattern: '$^' 328 ignoreOverridden: true 329 FunctionParameterNaming: 330 active: true 331 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 332 parameterPattern: '[a-z][A-Za-z0-9]*' 333 excludeClassPattern: '$^' 334 ignoreOverridden: true 335 InvalidPackageDeclaration: 336 active: false 337 rootPackage: '' 338 MatchingDeclarationName: 339 active: true 340 MemberNameEqualsClassName: 341 active: false 342 ignoreOverridden: true 343 ObjectPropertyNaming: 344 active: true 345 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 346 constantPattern: '[A-Za-z][_A-Za-z0-9]*' 347 propertyPattern: '[A-Za-z][_A-Za-z0-9]*' 348 privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' 349 PackageNaming: 350 active: true 351 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 352 packagePattern: '^[a-z]+(\.[a-z][A-Za-z0-9]*)*$' 353 TopLevelPropertyNaming: 354 active: true 355 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 356 constantPattern: '[A-Z][_A-Z0-9]*' 357 propertyPattern: '[A-Za-z][_A-Za-z0-9]*' 358 privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' 359 VariableMaxLength: 360 active: false 361 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 362 maximumVariableNameLength: 64 363 VariableMinLength: 364 active: false 365 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 366 minimumVariableNameLength: 1 367 VariableNaming: 368 active: true 369 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 370 variablePattern: '[a-z][A-Za-z0-9]*' 371 privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' 372 excludeClassPattern: '$^' 373 ignoreOverridden: true 374 375performance: 376 active: true 377 ArrayPrimitive: 378 active: false 379 ForEachOnRange: 380 active: true 381 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 382 SpreadOperator: 383 #LeakCanary - disabled 384 active: false 385 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 386 UnnecessaryTemporaryInstantiation: 387 active: true 388 389potential-bugs: 390 active: true 391 DuplicateCaseInWhenExpression: 392 active: true 393 EqualsAlwaysReturnsTrueOrFalse: 394 active: false 395 EqualsWithHashCodeExist: 396 active: true 397 ExplicitGarbageCollectionCall: 398 #LeakCanary - we want to trigger GC manually 399 active: false 400 InvalidRange: 401 active: false 402 IteratorHasNextCallsNextMethod: 403 active: false 404 IteratorNotThrowingNoSuchElementException: 405 active: false 406 LateinitUsage: 407 active: false 408 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 409 excludeAnnotatedProperties: "" 410 ignoreOnClassesPattern: "" 411 MissingWhenCase: 412 active: false 413 RedundantElseInWhen: 414 active: false 415 UnconditionalJumpStatementInLoop: 416 active: false 417 UnreachableCode: 418 active: true 419 UnsafeCallOnNullableType: 420 active: false 421 UnsafeCast: 422 active: false 423 UselessPostfixExpression: 424 active: false 425 WrongEqualsTypeParameter: 426 active: false 427 428style: 429 active: true 430 CollapsibleIfStatements: 431 active: false 432 DataClassContainsFunctions: 433 active: false 434 conversionFunctionPrefix: 'to' 435 DataClassShouldBeImmutable: 436 active: false 437 EqualsNullCall: 438 #LeakCanary - enabled 439 active: true 440 EqualsOnSignatureLine: 441 #LeakCanary - enabled 442 active: true 443 ExplicitItLambdaParameter: 444 #LeakCanary - enabled 445 active: true 446 ExpressionBodySyntax: 447 active: false 448 includeLineWrapping: false 449 ForbiddenComment: 450 active: true 451 values: 'TODO:,FIXME:,STOPSHIP:' 452 ForbiddenImport: 453 active: false 454 imports: '' 455 ForbiddenVoid: 456 #LeakCanary - enabled 457 active: true 458 ignoreOverridden: false 459 FunctionOnlyReturningConstant: 460 active: false 461 ignoreOverridableFunction: true 462 excludedFunctions: 'describeContents' 463 LibraryCodeMustSpecifyReturnType: 464 active: false 465 LoopWithTooManyJumpStatements: 466 active: false 467 maxJumpCount: 1 468 MagicNumber: 469 #LeakCanary - disabled 470 active: false 471 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 472 ignoreNumbers: '-1,0,1,2' 473 ignoreHashCodeFunction: true 474 ignorePropertyDeclaration: false 475 ignoreConstantDeclaration: true 476 ignoreCompanionObjectPropertyDeclaration: true 477 ignoreAnnotation: false 478 ignoreNamedArgument: true 479 ignoreEnums: false 480 ignoreRanges: false 481 MandatoryBracesIfStatements: 482 #LeakCanary - enabled 483 active: true 484 MaxLineLength: 485 #LeakCanary - increased from 120 to 150 486 active: true 487 maxLineLength: 150 488 excludePackageStatements: true 489 excludeImportStatements: true 490 excludeCommentStatements: false 491 MayBeConst: 492 active: false 493 ModifierOrder: 494 active: true 495 NestedClassesVisibility: 496 active: false 497 NewLineAtEndOfFile: 498 #LeakCanary - disabled 499 active: false 500 NoTabs: 501 active: false 502 OptionalAbstractKeyword: 503 active: true 504 OptionalUnit: 505 active: false 506 OptionalWhenBraces: 507 active: false 508 PreferToOverPairSyntax: 509 active: false 510 ProtectedMemberInFinalClass: 511 active: false 512 RedundantVisibilityModifierRule: 513 active: false 514 ReturnCount: 515 active: false 516 max: 4 517 excludedFunctions: "equals" 518 excludeLabeled: false 519 excludeReturnFromLambda: true 520 SafeCast: 521 active: true 522 SerialVersionUIDInSerializableClass: 523 active: false 524 SpacingBetweenPackageAndImports: 525 active: false 526 ThrowsCount: 527 active: true 528 max: 2 529 TrailingWhitespace: 530 active: false 531 UnderscoresInNumericLiterals: 532 active: false 533 acceptableDecimalLength: 5 534 UnnecessaryAbstractClass: 535 active: false 536 excludeAnnotatedClasses: "dagger.Module" 537 UnnecessaryApply: 538 active: false 539 UnnecessaryInheritance: 540 active: false 541 UnnecessaryLet: 542 active: false 543 UnnecessaryParentheses: 544 active: false 545 UntilInsteadOfRangeTo: 546 active: false 547 UnusedImports: 548 active: false 549 UnusedPrivateClass: 550 active: false 551 UnusedPrivateMember: 552 active: false 553 allowedNames: "(_|ignored|expected|serialVersionUID)" 554 UseCheckOrError: 555 active: false 556 UseDataClass: 557 active: false 558 excludeAnnotatedClasses: "" 559 UseRequire: 560 active: false 561 UselessCallOnNotNull: 562 active: false 563 UtilityClassWithPublicConstructor: 564 active: false 565 VarCouldBeVal: 566 active: false 567 WildcardImport: 568 active: true 569 excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" 570 excludeImports: 'java.util.*,kotlinx.android.synthetic.*' 571