%{ configs: [ %{ name: "default", files: %{ included: [ "lib/", "src/", "test/", "web/" ], excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"] }, plugins: [], requires: [], strict: false, parse_timeout: 5000, color: true, checks: %{ enabled: [ # ## Consistency Checks # {Credo.Check.Consistency.ExceptionNames, []}, {Credo.Check.Consistency.LineEndings, []}, {Credo.Check.Consistency.SpaceAroundOperators, []}, {Credo.Check.Consistency.SpaceInParentheses, []}, {Credo.Check.Consistency.TabsOrSpaces, []}, # ## Design Checks # # You can customize the priority of any check # Priority values are: `low, normal, high, higher` # {Credo.Check.Design.TagFIXME, []}, # You can also customize the exit_status of each check. # If you don't want TODO comments to cause `mix credo` to fail, just # set this value to 0 (zero). # {Credo.Check.Design.TagTODO, [exit_status: 2]}, # ## Readability Checks # {Credo.Check.Readability.FunctionNames, []}, {Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]}, {Credo.Check.Readability.ModuleAttributeNames, []}, {Credo.Check.Readability.ModuleNames, []}, {Credo.Check.Readability.ParenthesesInCondition, []}, {Credo.Check.Readability.PredicateFunctionNames, []}, {Credo.Check.Readability.RedundantBlankLines, []}, {Credo.Check.Readability.Semicolons, []}, {Credo.Check.Readability.SpaceAfterCommas, []}, {Credo.Check.Readability.TrailingBlankLine, []}, {Credo.Check.Readability.TrailingWhiteSpace, []}, {Credo.Check.Readability.VariableNames, []}, # ## Refactoring Opportunities # {Credo.Check.Refactor.Apply, []}, {Credo.Check.Refactor.CyclomaticComplexity, []}, {Credo.Check.Refactor.FilterFilter, []}, {Credo.Check.Refactor.FunctionArity, []}, {Credo.Check.Refactor.LongQuoteBlocks, []}, {Credo.Check.Refactor.MatchInCondition, []}, {Credo.Check.Refactor.Nesting, []}, {Credo.Check.Refactor.RejectReject, []}, # ## Warnings # {Credo.Check.Warning.ApplicationConfigInModuleAttribute, []}, {Credo.Check.Warning.BoolOperationOnSameValues, []}, {Credo.Check.Warning.Dbg, []}, {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []}, {Credo.Check.Warning.IExPry, []}, {Credo.Check.Warning.IoInspect, []}, {Credo.Check.Warning.MissedMetadataKeyInLoggerConfig, []}, {Credo.Check.Warning.OperationOnSameValues, []}, {Credo.Check.Warning.OperationWithConstantResult, []}, {Credo.Check.Warning.RaiseInsideRescue, []}, {Credo.Check.Warning.SpecWithStruct, []}, {Credo.Check.Warning.UnsafeExec, []}, {Credo.Check.Warning.UnusedEnumOperation, []}, {Credo.Check.Warning.UnusedFileOperation, []}, {Credo.Check.Warning.UnusedKeywordOperation, []}, {Credo.Check.Warning.UnusedListOperation, []}, {Credo.Check.Warning.UnusedPathOperation, []}, {Credo.Check.Warning.UnusedRegexOperation, []}, {Credo.Check.Warning.UnusedStringOperation, []}, {Credo.Check.Warning.UnusedTupleOperation, []}, {Credo.Check.Warning.WrongTestFileExtension, []} ], disabled: [ # Styler Rewrites # # The following rules are automatically rewritten by Styler and so disabled here to save time # Some of the rules have `priority: :high`, meaning Credo runs them unless we explicitly disable them # (removing them from this file wouldn't be enough, the `false` is required) # # {Credo.Check.Consistency.MultiAliasImportRequireUse, false}, # {Credo.Check.Consistency.ParameterPatternMatching, false}, # {Credo.Check.Design.AliasUsage, false}, # {Credo.Check.Readability.AliasOrder, false}, # {Credo.Check.Readability.BlockPipe, false}, # {Credo.Check.Readability.LargeNumbers, false}, # {Credo.Check.Readability.ModuleDoc, false}, # {Credo.Check.Readability.MultiAlias, false}, # {Credo.Check.Readability.OneArityFunctionInPipe, false}, # {Credo.Check.Readability.ParenthesesOnZeroArityDefs, false}, # {Credo.Check.Readability.PipeIntoAnonymousFunctions, false}, # {Credo.Check.Readability.PreferImplicitTry, false}, # {Credo.Check.Readability.SinglePipe, false}, # {Credo.Check.Readability.StrictModuleLayout, false}, # {Credo.Check.Readability.StringSigils, false}, # {Credo.Check.Readability.UnnecessaryAliasExpansion, false}, # {Credo.Check.Readability.WithSingleClause, false}, # {Credo.Check.Refactor.CaseTrivialMatches, false}, # {Credo.Check.Refactor.CondStatements, false}, # {Credo.Check.Refactor.FilterCount, false}, # {Credo.Check.Refactor.MapInto, false}, # {Credo.Check.Refactor.MapJoin, false}, # {Credo.Check.Refactor.NegatedConditionsInUnless, false}, # {Credo.Check.Refactor.NegatedConditionsWithElse, false}, # {Credo.Check.Refactor.PipeChainStart, false}, # {Credo.Check.Refactor.RedundantWithClauseResult, false}, # {Credo.Check.Refactor.UnlessWithElse, false}, # {Credo.Check.Refactor.WithClauses, false}, # # Checks scheduled for next check update (opt-in for now) {Credo.Check.Refactor.UtcNowTruncate, []}, # # Controversial and experimental checks (opt-in, just move the check to `:enabled` # and be sure to use `mix credo --strict` to see low priority checks) # {Credo.Check.Consistency.UnusedVariableNames, []}, {Credo.Check.Design.DuplicatedCode, []}, {Credo.Check.Design.SkipTestWithoutComment, []}, {Credo.Check.Readability.AliasAs, []}, {Credo.Check.Readability.ImplTrue, []}, {Credo.Check.Readability.NestedFunctionCalls, []}, {Credo.Check.Readability.OnePipePerLine, []}, {Credo.Check.Readability.SeparateAliasRequire, []}, {Credo.Check.Readability.SingleFunctionToBlockPipe, []}, {Credo.Check.Readability.Specs, []}, {Credo.Check.Readability.WithCustomTaggedTuple, []}, {Credo.Check.Refactor.ABCSize, []}, {Credo.Check.Refactor.AppendSingleItem, []}, {Credo.Check.Refactor.DoubleBooleanNegation, []}, {Credo.Check.Refactor.FilterReject, []}, {Credo.Check.Refactor.IoPuts, []}, {Credo.Check.Refactor.MapMap, []}, {Credo.Check.Refactor.ModuleDependencies, []}, {Credo.Check.Refactor.NegatedIsNil, []}, {Credo.Check.Refactor.PassAsyncInTestCases, []}, {Credo.Check.Refactor.RejectFilter, []}, {Credo.Check.Refactor.VariableRebinding, []}, {Credo.Check.Warning.LazyLogging, []}, {Credo.Check.Warning.LeakyEnvironment, []}, {Credo.Check.Warning.MapGetUnsafePass, []}, {Credo.Check.Warning.MixEnv, []}, {Credo.Check.Warning.UnsafeToAtom, []} ] } } ] }