|
- # This file contains the configuration for Credo and you are probably reading
- # this after creating it with `mix credo.gen.config`.
- #
- # If you find anything wrong or unclear in this file, please report an
- # issue on GitHub: https://github.com/rrrene/credo/issues
- #
- %{
- #
- # You can have as many configs as you like in the `configs:` field.
- configs: [
- %{
- #
- # Run any config using `mix credo -C <name>`. If no config name is given
- # "default" is used.
- name: "default",
- #
- # These are the files included in the analysis:
- files: %{
- #
- # You can give explicit globs or simply directories.
- # In the latter case `**/*.{ex,exs}` will be used.
- included: ["lib/", "src/", "web/", "apps/"],
- excluded: [~r"/_build/", ~r"/deps/"]
- },
- #
- # If you create your own checks, you must specify the source files for
- # them here, so they can be loaded by Credo before running the analysis.
- requires: [],
- #
- # Credo automatically checks for updates, like e.g. Hex does.
- # You can disable this behaviour below:
- check_for_updates: true,
- #
- # If you want to enforce a style guide and need a more traditional linting
- # experience, you can change `strict` to `true` below:
- strict: false,
- #
- # If you want to use uncolored output by default, you can change `color`
- # to `false` below:
- color: true,
- #
- # You can customize the parameters of any check by adding a second element
- # to the tuple.
- #
- # To disable a check put `false` as second element:
- #
- # {Credo.Check.Design.DuplicatedCode, false}
- #
- checks: [
- {Credo.Check.Consistency.ExceptionNames},
- {Credo.Check.Consistency.LineEndings},
- {Credo.Check.Consistency.MultiAliasImportRequireUse},
- {Credo.Check.Consistency.ParameterPatternMatching},
- {Credo.Check.Consistency.SpaceAroundOperators},
- {Credo.Check.Consistency.SpaceInParentheses},
- {Credo.Check.Consistency.TabsOrSpaces},
-
- # For some checks, like AliasUsage, you can only customize the priority
- # Priority values are: `low, normal, high, higher`
- {Credo.Check.Design.AliasUsage, priority: :low, if_called_more_often_than: 3},
-
- # For others you can set parameters
-
- # If you don't want the `setup` and `test` macro calls in ExUnit tests
- # or the `schema` macro in Ecto schemas to trigger DuplicatedCode, just
- # set the `excluded_macros` parameter to `[:schema, :setup, :test]`.
- {Credo.Check.Design.DuplicatedCode, excluded_macros: []},
-
- # 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},
- {Credo.Check.Design.TagFIXME},
-
- {Credo.Check.Readability.FunctionNames},
- {Credo.Check.Readability.LargeNumbers},
- {Credo.Check.Readability.MaxLineLength, priority: :low, max_length: 100},
- {Credo.Check.Readability.ModuleAttributeNames},
- {Credo.Check.Readability.ModuleDoc, false},
- {Credo.Check.Readability.ModuleNames},
- {Credo.Check.Readability.ParenthesesOnZeroArityDefs},
- {Credo.Check.Readability.ParenthesesInCondition},
- {Credo.Check.Readability.PredicateFunctionNames},
- {Credo.Check.Readability.PreferImplicitTry},
- {Credo.Check.Readability.RedundantBlankLines},
- {Credo.Check.Readability.StringSigils},
- {Credo.Check.Readability.TrailingBlankLine},
- {Credo.Check.Readability.TrailingWhiteSpace},
- {Credo.Check.Readability.VariableNames},
- {Credo.Check.Readability.Semicolons},
- {Credo.Check.Readability.SpaceAfterCommas},
-
- {Credo.Check.Refactor.DoubleBooleanNegation},
- {Credo.Check.Refactor.CondStatements},
- {Credo.Check.Refactor.CyclomaticComplexity},
- {Credo.Check.Refactor.FunctionArity},
- {Credo.Check.Refactor.MatchInCondition},
- {Credo.Check.Refactor.NegatedConditionsInUnless},
- {Credo.Check.Refactor.NegatedConditionsWithElse},
- {Credo.Check.Refactor.Nesting},
- {Credo.Check.Refactor.PipeChainStart},
- {Credo.Check.Refactor.UnlessWithElse},
-
- {Credo.Check.Warning.BoolOperationOnSameValues},
- {Credo.Check.Warning.IExPry},
- {Credo.Check.Warning.IoInspect},
- # Got too much of them, not sure if relevant
- {Credo.Check.Warning.LazyLogging, false},
- {Credo.Check.Warning.OperationOnSameValues},
- {Credo.Check.Warning.OperationWithConstantResult},
- {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},
-
- # Controversial and experimental checks (opt-in, just remove `, false`)
- #
- {Credo.Check.Refactor.ABCSize, false},
- {Credo.Check.Refactor.AppendSingleItem, false},
- {Credo.Check.Refactor.VariableRebinding, false},
- {Credo.Check.Warning.MapGetUnsafePass, false},
-
- # Deprecated checks (these will be deleted after a grace period)
- {Credo.Check.Readability.Specs, false},
- {Credo.Check.Warning.NameRedeclarationByAssignment, false},
- {Credo.Check.Warning.NameRedeclarationByCase, false},
- {Credo.Check.Warning.NameRedeclarationByDef, false},
- {Credo.Check.Warning.NameRedeclarationByFn, false},
-
- # Custom checks can be created using `mix credo.gen.check`.
- #
- ]
- }
- ]
- }
|