version: "2" # required to adjust maintainability checks checks: # Methods or functions defined with a high number of arguments argument-count: config: threshold: 6 # Boolean logic that may be hard to understand complex-logic: config: threshold: 4 # Excessive lines of code within a single file file-lines: config: threshold: 900 # Functions or methods that may be hard to understand. This is disabled as it doesn't appear to be a reliable metric. method-complexity: enabled: false # Classes defined with a high number of functions or methods. method-count: config: threshold: 21 # Excessive lines of code within a single function or method method-lines: config: threshold: 500 # Deeply nested control structures like if or case nested-control-flow: config: threshold: 4 # Functions or methods with a high number of return statements. This is disabled because Go encourages early returns. return-statements: enabled: false # Duplicate code which is not identical but shares the same structure (e.g. variable names may differ). This is disabled due to too many false trips. similar-code: enabled: false # Code that is identical in structure identical-code: config: threshold: # language-specific defaults. an override will affect all languages. exclude_patterns: - "vendor/" - "static/" - "t/" - "mailserver/migrations" - "**/*/bindata.go" - "protocol/protobuf/*.pb.go" - "protocol/communities/migrations/migrations.go" - "protocol/encryption/migrations/migrations.go" - "protocol/internal/sqlite/migrations.go" - "protocol/migrations/migrations.go" - "protocol/pushnotificationclient/migrations/migrations.go" - "protocol/pushnotificationserver/migrations/migrations.go" - "protocol/transport/migrations/migrations.go" - "images/qr-assets.go"