.credo.exs (4458B)
1 %{configs: [%{ 2 name: "default", 3 files: %{ 4 included: [ 5 ".credo.exs", 6 ".iex.exs", 7 "mix.exs", 8 "src/", 9 "test/", 10 "priv/", 11 ], 12 excluded: [~r"/_build/", ~r"/deps/"], 13 }, 14 strict: true, 15 color: false, 16 checks: [ 17 # consistency 18 {Credo.Check.Consistency.ExceptionNames, []}, 19 {Credo.Check.Consistency.LineEndings, []}, 20 {Credo.Check.Consistency.ParameterPatternMatching, []}, 21 {Credo.Check.Consistency.SpaceAroundOperators, []}, 22 {Credo.Check.Consistency.SpaceInParentheses, []}, 23 {Credo.Check.Consistency.TabsOrSpaces, [force: :tabs]}, 24 25 # design 26 {Credo.Check.Design.AliasUsage, [priority: :low, if_nested_deeper_than: 2, if_called_more_often_than: 1]}, 27 {Credo.Check.Design.TagTODO, [exit_status: 2]}, 28 {Credo.Check.Design.TagFIXME, []}, 29 30 # readability 31 {Credo.Check.Readability.AliasOrder, []}, 32 {Credo.Check.Readability.FunctionNames, []}, 33 {Credo.Check.Readability.LargeNumbers, []}, 34 {Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]}, 35 {Credo.Check.Readability.ModuleAttributeNames, []}, 36 {Credo.Check.Readability.ModuleDoc, []}, 37 {Credo.Check.Readability.ModuleNames, files: %{excluded: ["priv/repo/migrations/*.exs"]}}, 38 {Credo.Check.Readability.ParenthesesInCondition, []}, 39 {Credo.Check.Readability.ParenthesesOnZeroArityDefs, [parens: true]}, 40 {Credo.Check.Readability.PredicateFunctionNames, []}, 41 {Credo.Check.Readability.PreferImplicitTry, []}, 42 {Credo.Check.Readability.RedundantBlankLines, []}, 43 {Credo.Check.Readability.Semicolons, []}, 44 {Credo.Check.Readability.SpaceAfterCommas, []}, 45 {Credo.Check.Readability.StringSigils, []}, 46 {Credo.Check.Readability.TrailingBlankLine, []}, 47 {Credo.Check.Readability.TrailingWhiteSpace, []}, 48 {Credo.Check.Readability.UnnecessaryAliasExpansion, []}, 49 {Credo.Check.Readability.VariableNames, []}, 50 51 # refactoring 52 {Credo.Check.Refactor.CondStatements, []}, 53 {Credo.Check.Refactor.CyclomaticComplexity, [max_complexity: 16]}, 54 {Credo.Check.Refactor.FunctionArity, []}, 55 {Credo.Check.Refactor.LongQuoteBlocks, []}, 56 # {Credo.Check.Refactor.MapInto, []}, 57 {Credo.Check.Refactor.MatchInCondition, []}, 58 {Credo.Check.Refactor.NegatedConditionsInUnless, []}, 59 {Credo.Check.Refactor.NegatedConditionsWithElse, []}, 60 {Credo.Check.Refactor.Nesting, [max_nesting: 5]}, 61 {Credo.Check.Refactor.UnlessWithElse, []}, 62 {Credo.Check.Refactor.WithClauses, []}, 63 64 # warnings 65 {Credo.Check.Warning.ApplicationConfigInModuleAttribute, []}, 66 {Credo.Check.Warning.BoolOperationOnSameValues, []}, 67 {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []}, 68 {Credo.Check.Warning.IExPry, []}, 69 {Credo.Check.Warning.IoInspect, []}, 70 #{Credo.Check.Warning.LazyLogging, []}, 71 {Credo.Check.Warning.MixEnv, false}, 72 {Credo.Check.Warning.OperationOnSameValues, []}, 73 {Credo.Check.Warning.OperationWithConstantResult, []}, 74 {Credo.Check.Warning.RaiseInsideRescue, []}, 75 {Credo.Check.Warning.UnusedEnumOperation, []}, 76 {Credo.Check.Warning.UnusedFileOperation, []}, 77 {Credo.Check.Warning.UnusedKeywordOperation, []}, 78 {Credo.Check.Warning.UnusedListOperation, []}, 79 {Credo.Check.Warning.UnusedPathOperation, []}, 80 {Credo.Check.Warning.UnusedRegexOperation, []}, 81 {Credo.Check.Warning.UnusedStringOperation, []}, 82 {Credo.Check.Warning.UnusedTupleOperation, []}, 83 {Credo.Check.Warning.UnsafeExec, []}, 84 85 # controversial and experimental 86 {Credo.Check.Consistency.MultiAliasImportRequireUse, false}, 87 {Credo.Check.Consistency.UnusedVariableNames, false}, 88 {Credo.Check.Design.DuplicatedCode, false}, 89 {Credo.Check.Readability.AliasAs, false}, 90 {Credo.Check.Readability.BlockPipe, false}, 91 {Credo.Check.Readability.ImplTrue, false}, 92 {Credo.Check.Readability.MultiAlias, false}, 93 {Credo.Check.Readability.SeparateAliasRequire, false}, 94 {Credo.Check.Readability.SinglePipe, false}, 95 {Credo.Check.Readability.Specs, false}, 96 {Credo.Check.Readability.StrictModuleLayout, false}, 97 {Credo.Check.Readability.WithCustomTaggedTuple, false}, 98 {Credo.Check.Refactor.ABCSize, false}, 99 {Credo.Check.Refactor.AppendSingleItem, false}, 100 {Credo.Check.Refactor.DoubleBooleanNegation, false}, 101 {Credo.Check.Refactor.ModuleDependencies, false}, 102 {Credo.Check.Refactor.NegatedIsNil, false}, 103 {Credo.Check.Refactor.PipeChainStart, false}, 104 {Credo.Check.Refactor.VariableRebinding, false}, 105 {Credo.Check.Warning.LeakyEnvironment, false}, 106 {Credo.Check.Warning.MapGetUnsafePass, false}, 107 {Credo.Check.Warning.UnsafeToAtom, false}, 108 ], 109 }]}