summaryrefslogtreecommitdiff
path: root/.credo.exs
diff options
context:
space:
mode:
authordtluna <dtluna@openmailbox.org>2017-04-27 16:18:50 +0300
committerdtluna <dtluna@openmailbox.org>2017-04-27 16:18:50 +0300
commit6cf7c132282e612514af992c6dea0b03ee5b678d (patch)
tree638e04628e5eecd492d23fadcebf00a21b702448 /.credo.exs
parentfb5cebc1b5dcfd6af7fa1a81bc5b26275714fa26 (diff)
Refactor code to comply with credo suggestions
Diffstat (limited to '.credo.exs')
-rw-r--r--.credo.exs138
1 files changed, 138 insertions, 0 deletions
diff --git a/.credo.exs b/.credo.exs
new file mode 100644
index 000000000..b1f2a6164
--- /dev/null
+++ b/.credo.exs
@@ -0,0 +1,138 @@
+# 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},
+
+ # 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},
+ {Credo.Check.Warning.LazyLogging},
+ {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`.
+ #
+ ]
+ }
+ ]
+}