zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

commit e86496f1663c06874558cc40d9570c160ff1f1f1
parent 2f1fedc7b7589466a745a9ffbfbd8382a79d03ef
Author: srfsh <dev@srf.sh>
Date:   Thu, 20 Oct 2022 20:21:59 +0300

dep update credo v1.6.7

Diffstat:
A.deps/bunt/.formatter.exs | 3+++
M.deps/bunt/.hex | 0
M.deps/bunt/hex_metadata.config | 7+++----
M.deps/bunt/lib/bunt.ex | 12++++++------
M.deps/bunt/lib/bunt_ansi.ex | 556++++++++++++++++++++++++++++++++++++++++---------------------------------------
M.deps/bunt/mix.exs | 8++++----
M.deps/credo/.hex | 0
M.deps/credo/README.md | 2+-
M.deps/credo/hex_metadata.config | 4++--
M.deps/credo/lib/credo/application.ex | 4++--
M.deps/credo/lib/credo/build_info.ex | 12+++++-------
M.deps/credo/lib/credo/check/consistency/exception_names.ex | 2+-
M.deps/credo/lib/credo/check/consistency/exception_names/collector.ex | 5++---
M.deps/credo/lib/credo/check/consistency/line_endings.ex | 25++++++++++++++++---------
M.deps/credo/lib/credo/check/consistency/line_endings/collector.ex | 3+++
M.deps/credo/lib/credo/check/consistency/multi_alias_import_require_use/collector.ex | 6++----
M.deps/credo/lib/credo/check/consistency/parameter_pattern_matching/collector.ex | 6++----
M.deps/credo/lib/credo/check/consistency/space_around_operators/collector.ex | 6++----
M.deps/credo/lib/credo/check/consistency/space_around_operators/space_helper.ex | 5+++++
M.deps/credo/lib/credo/check/consistency/unused_variable_names/collector.ex | 6++----
M.deps/credo/lib/credo/check/readability/alias_as.ex | 4+---
M.deps/credo/lib/credo/check/readability/alias_order.ex | 29++++++++++++++++-------------
M.deps/credo/lib/credo/check/readability/function_names.ex | 2+-
M.deps/credo/lib/credo/check/readability/large_numbers.ex | 8++++++--
M.deps/credo/lib/credo/check/readability/max_line_length.ex | 2+-
M.deps/credo/lib/credo/check/readability/module_doc.ex | 2+-
M.deps/credo/lib/credo/check/readability/multi_alias.ex | 10++++------
M.deps/credo/lib/credo/check/readability/single_function_to_block_pipe.ex | 4+---
M.deps/credo/lib/credo/check/readability/strict_module_layout.ex | 3+--
M.deps/credo/lib/credo/check/readability/string_sigils.ex | 2+-
M.deps/credo/lib/credo/check/readability/trailing_white_space.ex | 5++---
M.deps/credo/lib/credo/check/readability/unnecessary_alias_expansion.ex | 4+---
M.deps/credo/lib/credo/check/readability/with_custom_tagged_tuple.ex | 4+---
M.deps/credo/lib/credo/check/readability/with_single_clause.ex | 30+++++++++++++++++-------------
M.deps/credo/lib/credo/check/refactor/apply.ex | 4++++
M.deps/credo/lib/credo/check/refactor/module_dependencies.ex | 2+-
M.deps/credo/lib/credo/check/refactor/negated_is_nil.ex | 7+++++++
M.deps/credo/lib/credo/check/refactor/redundant_with_clause_result.ex | 5++---
M.deps/credo/lib/credo/check/refactor/with_clauses.ex | 4+---
M.deps/credo/lib/credo/check/warning/forbidden_module.ex | 12+++++++-----
M.deps/credo/lib/credo/check/warning/unused_function_return_helper.ex | 22+++++++++++++++++++---
M.deps/credo/lib/credo/cli/command/diff/diff_command.ex | 6+++---
M.deps/credo/lib/credo/cli/command/diff/output/default.ex | 2+-
M.deps/credo/lib/credo/cli/command/diff/task/filter_issues.ex | 3++-
M.deps/credo/lib/credo/cli/command/explain/explain_command.ex | 2+-
M.deps/credo/lib/credo/code.ex | 22+++++++++++-----------
M.deps/credo/lib/credo/code/module.ex | 15+++++++--------
M.deps/credo/lib/credo/code/scope.ex | 2+-
M.deps/credo/lib/credo/code/token.ex | 380+++++++++++++++++++++++++++++++++++++++----------------------------------------
M.deps/credo/lib/credo/execution.ex | 37++++++++++++++++++++++++++++++++++++-
M.deps/credo/lib/credo/execution/execution_timing.ex | 2+-
M.deps/credo/lib/credo/execution/task.ex | 2+-
M.deps/credo/lib/credo/execution/task/assign_exit_status_for_issues.ex | 3++-
M.deps/credo/lib/credo/execution/task/convert_cli_options_to_config.ex | 2+-
M.deps/credo/lib/credo/execution/task/write_debug_report.ex | 2+-
M.deps/credo/lib/credo/priority.ex | 2+-
M.deps/credo/lib/credo/test/case.ex | 2+-
M.deps/credo/mix.exs | 15+++++++++++++--
Mmix.lock | 4++--
59 files changed, 710 insertions(+), 630 deletions(-)

diff --git a/.deps/bunt/.formatter.exs b/.deps/bunt/.formatter.exs @@ -0,0 +1,3 @@ +[ + inputs: ["*.{ex,exs}", "{config,lib,test,script}/**/*.{ex,exs}"] +] diff --git a/.deps/bunt/.hex b/.deps/bunt/.hex Binary files differ. diff --git a/.deps/bunt/hex_metadata.config b/.deps/bunt/hex_metadata.config @@ -3,11 +3,10 @@ {<<"description">>,<<"256 color ANSI coloring in the terminal">>}. {<<"elixir">>,<<"~> 1.1">>}. {<<"files">>, - [<<"lib/bunt.ex">>,<<"lib/bunt_ansi.ex">>,<<"mix.exs">>,<<"README.md">>, - <<"LICENSE">>]}. + [<<"lib">>,<<"lib/bunt.ex">>,<<"lib/bunt_ansi.ex">>,<<".formatter.exs">>, + <<"mix.exs">>,<<"README.md">>,<<"LICENSE">>]}. {<<"licenses">>,[<<"MIT">>]}. {<<"links">>,[{<<"GitHub">>,<<"https://github.com/rrrene/bunt">>}]}. -{<<"maintainers">>,[<<"René Föhring"/utf8>>]}. {<<"name">>,<<"bunt">>}. {<<"requirements">>,[]}. -{<<"version">>,<<"0.2.0">>}. +{<<"version">>,<<"0.2.1">>}. diff --git a/.deps/bunt/lib/bunt.ex b/.deps/bunt/lib/bunt.ex @@ -3,12 +3,12 @@ defmodule Bunt do alias Bunt.ANSI - @version Mix.Project.config[:version] + @version Mix.Project.config()[:version] def puts(value \\ "") do value |> format - |> IO.puts + |> IO.puts() end def warn(value \\ "") do @@ -19,20 +19,20 @@ defmodule Bunt do def write(value \\ "") do value |> format - |> IO.write + |> IO.write() end def format, do: format("") def format(nil), do: format("") def format(text) when is_binary(text), do: text + def format(list) when is_list(list) do list - |> List.flatten - |> ANSI.format + |> List.flatten() + |> ANSI.format() end def start(_, _), do: {:ok, self()} def version, do: @version - end diff --git a/.deps/bunt/lib/bunt_ansi.ex b/.deps/bunt/lib/bunt_ansi.ex @@ -38,279 +38,287 @@ defmodule Bunt.ANSI do import Bunt.ANSI.Sequence @color_tuples [ - {nil, :color16, 16, {0, 0, 0}}, - {nil, :color17, 17, {0, 0, 95}}, - {"darkblue", :color18, 18, {0, 0, 135}}, - {nil, :color19, 19, {0, 0, 175}}, - {"mediumblue", :color20, 20, {0, 0, 215}}, - {nil, :color21, 21, {0, 0, 255}}, - {"darkgreen", :color22, 22, {0, 95, 0}}, + {nil, :color16, 16, {0, 0, 0}}, + {nil, :color17, 17, {0, 0, 95}}, + {"darkblue", :color18, 18, {0, 0, 135}}, + {nil, :color19, 19, {0, 0, 175}}, + {"mediumblue", :color20, 20, {0, 0, 215}}, + {nil, :color21, 21, {0, 0, 255}}, + {"darkgreen", :color22, 22, {0, 95, 0}}, {"darkslategray", :color23, 23, {0, 95, 95}}, - {nil, :color24, 24, {0, 95, 135}}, - {nil, :color25, 25, {0, 95, 175}}, - {nil, :color26, 26, {0, 95, 215}}, - {nil, :color27, 27, {0, 95, 255}}, - {nil, :color28, 28, {0, 135, 0}}, - {nil, :color29, 29, {0, 135, 95}}, - {"darkcyan", :color30, 30, {0, 135, 135}}, - {nil, :color31, 31, {0, 135, 175}}, - {nil, :color32, 32, {0, 135, 215}}, - {nil, :color33, 33, {0, 135, 255}}, - {nil, :color34, 34, {0, 175, 0}}, - {nil, :color35, 35, {0, 175, 95}}, - {nil, :color36, 36, {0, 175, 135}}, - {nil, :color37, 37, {0, 175, 175}}, - {nil, :color38, 38, {0, 175, 215}}, - {"deepskyblue", :color39, 39, {0, 175, 255}}, - {nil, :color40, 40, {0, 215, 0}}, - {nil, :color41, 41, {0, 215, 95}}, - {nil, :color42, 42, {0, 215, 135}}, - {nil, :color43, 43, {0, 215, 175}}, - {nil, :color44, 44, {0, 215, 215}}, - {nil, :color45, 45, {0, 215, 255}}, - {nil, :color46, 46, {0, 255, 0}}, - {nil, :color47, 47, {0, 255, 95}}, - {"springgreen", :color48, 48, {0, 255, 135}}, - {nil, :color49, 49, {0, 255, 175}}, - {nil, :color50, 50, {0, 255, 215}}, - {"aqua", :color51, 51, {0, 255, 255}}, - {nil, :color52, 52, {95, 0, 0}}, - {nil, :color53, 53, {95, 0, 95}}, - {nil, :color54, 54, {95, 0, 135}}, - {nil, :color55, 55, {95, 0, 175}}, - {nil, :color56, 56, {95, 0, 215}}, - {nil, :color57, 57, {95, 0, 255}}, - {nil, :color58, 58, {95, 95, 0}}, - {"dimgray", :color59, 59, {95, 95, 95}}, - {nil, :color60, 60, {95, 95, 135}}, - {nil, :color61, 61, {95, 95, 175}}, - {nil, :color62, 62, {95, 95, 215}}, - {nil, :color63, 63, {95, 95, 255}}, - {nil, :color64, 64, {95, 135, 0}}, - {nil, :color65, 65, {95, 135, 95}}, - {nil, :color66, 66, {95, 135, 135}}, - {"steelblue", :color67, 67, {95, 135, 175}}, - {nil, :color68, 68, {95, 135, 215}}, - {nil, :color69, 69, {95, 135, 255}}, - {nil, :color70, 70, {95, 175, 0}}, - {nil, :color71, 71, {95, 175, 95}}, - {nil, :color72, 72, {95, 175, 135}}, - {nil, :color73, 73, {95, 175, 175}}, - {nil, :color74, 74, {95, 175, 215}}, - {nil, :color75, 75, {95, 175, 255}}, - {nil, :color76, 76, {95, 215, 0}}, - {nil, :color77, 77, {95, 215, 95}}, - {nil, :color78, 78, {95, 215, 135}}, - {nil, :color79, 79, {95, 215, 175}}, - {nil, :color80, 80, {95, 215, 215}}, - {nil, :color81, 81, {95, 215, 255}}, - {nil, :color82, 82, {95, 255, 0}}, - {nil, :color83, 83, {95, 255, 95}}, - {nil, :color84, 84, {95, 255, 135}}, - {nil, :color85, 85, {95, 255, 175}}, - {nil, :color86, 86, {95, 255, 215}}, - {nil, :color87, 87, {95, 255, 255}}, + {nil, :color24, 24, {0, 95, 135}}, + {nil, :color25, 25, {0, 95, 175}}, + {nil, :color26, 26, {0, 95, 215}}, + {nil, :color27, 27, {0, 95, 255}}, + {nil, :color28, 28, {0, 135, 0}}, + {nil, :color29, 29, {0, 135, 95}}, + {"darkcyan", :color30, 30, {0, 135, 135}}, + {nil, :color31, 31, {0, 135, 175}}, + {nil, :color32, 32, {0, 135, 215}}, + {nil, :color33, 33, {0, 135, 255}}, + {nil, :color34, 34, {0, 175, 0}}, + {nil, :color35, 35, {0, 175, 95}}, + {nil, :color36, 36, {0, 175, 135}}, + {nil, :color37, 37, {0, 175, 175}}, + {nil, :color38, 38, {0, 175, 215}}, + {"deepskyblue", :color39, 39, {0, 175, 255}}, + {nil, :color40, 40, {0, 215, 0}}, + {nil, :color41, 41, {0, 215, 95}}, + {nil, :color42, 42, {0, 215, 135}}, + {nil, :color43, 43, {0, 215, 175}}, + {nil, :color44, 44, {0, 215, 215}}, + {nil, :color45, 45, {0, 215, 255}}, + {nil, :color46, 46, {0, 255, 0}}, + {nil, :color47, 47, {0, 255, 95}}, + {"springgreen", :color48, 48, {0, 255, 135}}, + {nil, :color49, 49, {0, 255, 175}}, + {nil, :color50, 50, {0, 255, 215}}, + {"aqua", :color51, 51, {0, 255, 255}}, + {nil, :color52, 52, {95, 0, 0}}, + {nil, :color53, 53, {95, 0, 95}}, + {nil, :color54, 54, {95, 0, 135}}, + {nil, :color55, 55, {95, 0, 175}}, + {nil, :color56, 56, {95, 0, 215}}, + {nil, :color57, 57, {95, 0, 255}}, + {nil, :color58, 58, {95, 95, 0}}, + {"dimgray", :color59, 59, {95, 95, 95}}, + {nil, :color60, 60, {95, 95, 135}}, + {nil, :color61, 61, {95, 95, 175}}, + {nil, :color62, 62, {95, 95, 215}}, + {nil, :color63, 63, {95, 95, 255}}, + {nil, :color64, 64, {95, 135, 0}}, + {nil, :color65, 65, {95, 135, 95}}, + {nil, :color66, 66, {95, 135, 135}}, + {"steelblue", :color67, 67, {95, 135, 175}}, + {nil, :color68, 68, {95, 135, 215}}, + {nil, :color69, 69, {95, 135, 255}}, + {nil, :color70, 70, {95, 175, 0}}, + {nil, :color71, 71, {95, 175, 95}}, + {nil, :color72, 72, {95, 175, 135}}, + {nil, :color73, 73, {95, 175, 175}}, + {nil, :color74, 74, {95, 175, 215}}, + {nil, :color75, 75, {95, 175, 255}}, + {nil, :color76, 76, {95, 215, 0}}, + {nil, :color77, 77, {95, 215, 95}}, + {nil, :color78, 78, {95, 215, 135}}, + {nil, :color79, 79, {95, 215, 175}}, + {nil, :color80, 80, {95, 215, 215}}, + {nil, :color81, 81, {95, 215, 255}}, + {nil, :color82, 82, {95, 255, 0}}, + {nil, :color83, 83, {95, 255, 95}}, + {nil, :color84, 84, {95, 255, 135}}, + {nil, :color85, 85, {95, 255, 175}}, + {nil, :color86, 86, {95, 255, 215}}, + {nil, :color87, 87, {95, 255, 255}}, {"darkred", :color88, 88, {135, 0, 0}}, - {nil, :color89, 89, {135, 0, 95}}, - {"darkmagenta", :color90, 90, {135, 0, 135}}, - {nil, :color91, 91, {135, 0, 175}}, - {nil, :color92, 92, {135, 0, 215}}, - {nil, :color93, 93, {135, 0, 255}}, - {nil, :color94, 94, {135, 95, 0}}, - {nil, :color95, 95, {135, 95, 95}}, - {nil, :color96, 96, {135, 95, 135}}, - {nil, :color97, 97, {135, 95, 175}}, - {nil, :color98, 98, {135, 95, 215}}, - {nil, :color99, 99, {135, 95, 255}}, - {"olive", :color100, 100, {135, 135, 0}}, - {nil, :color101, 101, {135, 135, 95}}, - {nil, :color102, 102, {135, 135, 135}}, - {nil, :color103, 103, {135, 135, 175}}, - {nil, :color104, 104, {135, 135, 215}}, - {nil, :color105, 105, {135, 135, 255}}, - {nil, :color106, 106, {135, 175, 0}}, - {nil, :color107, 107, {135, 175, 95}}, - {nil, :color108, 108, {135, 175, 135}}, - {nil, :color109, 109, {135, 175, 175}}, - {nil, :color110, 110, {135, 175, 215}}, - {nil, :color111, 111, {135, 175, 255}}, - {nil, :color112, 112, {135, 215, 0}}, - {nil, :color113, 113, {135, 215, 95}}, - {nil, :color114, 114, {135, 215, 135}}, - {nil, :color115, 115, {135, 215, 175}}, - {nil, :color116, 116, {135, 215, 215}}, - {nil, :color117, 117, {135, 215, 255}}, - {"chartreuse", :color118, 118, {135, 255, 0}}, - {nil, :color119, 119, {135, 255, 95}}, - {nil, :color120, 120, {135, 255, 135}}, - {nil, :color121, 121, {135, 255, 175}}, - {"aquamarine", :color122, 122, {135, 255, 215}}, - {nil, :color123, 123, {135, 255, 255}}, - {nil, :color124, 124, {175, 0, 0}}, - {nil, :color125, 125, {175, 0, 95}}, - {nil, :color126, 126, {175, 0, 135}}, - {nil, :color127, 127, {175, 0, 175}}, - {nil, :color128, 128, {175, 0, 215}}, - {nil, :color129, 129, {175, 0, 255}}, - {nil, :color130, 130, {175, 95, 0}}, - {nil, :color131, 131, {175, 95, 95}}, - {nil, :color132, 132, {175, 95, 135}}, - {nil, :color133, 133, {175, 95, 175}}, - {nil, :color134, 134, {175, 95, 215}}, - {nil, :color135, 135, {175, 95, 255}}, - {nil, :color136, 136, {175, 135, 0}}, - {nil, :color137, 137, {175, 135, 95}}, - {nil, :color138, 138, {175, 135, 135}}, - {nil, :color139, 139, {175, 135, 175}}, - {nil, :color140, 140, {175, 135, 215}}, - {nil, :color141, 141, {175, 135, 255}}, - {nil, :color142, 142, {175, 175, 0}}, - {nil, :color143, 143, {175, 175, 95}}, - {nil, :color144, 144, {175, 175, 135}}, - {nil, :color145, 145, {175, 175, 175}}, - {nil, :color146, 146, {175, 175, 215}}, - {nil, :color147, 147, {175, 175, 255}}, - {nil, :color148, 148, {175, 215, 0}}, - {nil, :color149, 149, {175, 215, 95}}, - {nil, :color150, 150, {175, 215, 135}}, - {nil, :color151, 151, {175, 215, 175}}, - {nil, :color152, 152, {175, 215, 215}}, - {nil, :color153, 153, {175, 215, 255}}, - {"greenyellow", :color154, 154, {175, 255, 0}}, - {nil, :color155, 155, {175, 255, 95}}, - {nil, :color156, 156, {175, 255, 135}}, - {nil, :color157, 157, {175, 255, 175}}, - {nil, :color158, 158, {175, 255, 215}}, - {nil, :color159, 159, {175, 255, 255}}, - {nil, :color160, 160, {215, 0, 0}}, - {nil, :color161, 161, {215, 0, 95}}, - {nil, :color162, 162, {215, 0, 135}}, - {nil, :color163, 163, {215, 0, 175}}, - {nil, :color164, 164, {215, 0, 215}}, - {nil, :color165, 165, {215, 0, 255}}, - {nil, :color166, 166, {215, 95, 0}}, - {nil, :color167, 167, {215, 95, 95}}, - {nil, :color168, 168, {215, 95, 135}}, - {nil, :color169, 169, {215, 95, 175}}, - {nil, :color170, 170, {215, 95, 215}}, - {nil, :color171, 171, {215, 95, 255}}, - {"chocolate", :color172, 172, {215, 135, 0}}, - {nil, :color173, 173, {215, 135, 95}}, - {nil, :color174, 174, {215, 135, 135}}, - {nil, :color175, 175, {215, 135, 175}}, - {nil, :color176, 176, {215, 135, 215}}, - {nil, :color177, 177, {215, 135, 255}}, - {"goldenrod", :color178, 178, {215, 175, 0}}, - {nil, :color179, 179, {215, 175, 95}}, - {nil, :color180, 180, {215, 175, 135}}, - {nil, :color181, 181, {215, 175, 175}}, - {nil, :color182, 182, {215, 175, 215}}, - {nil, :color183, 183, {215, 175, 255}}, - {nil, :color184, 184, {215, 215, 0}}, - {nil, :color185, 185, {215, 215, 95}}, - {nil, :color186, 186, {215, 215, 135}}, - {nil, :color187, 187, {215, 215, 175}}, + {nil, :color89, 89, {135, 0, 95}}, + {"darkmagenta", :color90, 90, {135, 0, 135}}, + {nil, :color91, 91, {135, 0, 175}}, + {nil, :color92, 92, {135, 0, 215}}, + {nil, :color93, 93, {135, 0, 255}}, + {nil, :color94, 94, {135, 95, 0}}, + {nil, :color95, 95, {135, 95, 95}}, + {nil, :color96, 96, {135, 95, 135}}, + {nil, :color97, 97, {135, 95, 175}}, + {nil, :color98, 98, {135, 95, 215}}, + {nil, :color99, 99, {135, 95, 255}}, + {"olive", :color100, 100, {135, 135, 0}}, + {nil, :color101, 101, {135, 135, 95}}, + {nil, :color102, 102, {135, 135, 135}}, + {nil, :color103, 103, {135, 135, 175}}, + {nil, :color104, 104, {135, 135, 215}}, + {nil, :color105, 105, {135, 135, 255}}, + {nil, :color106, 106, {135, 175, 0}}, + {nil, :color107, 107, {135, 175, 95}}, + {nil, :color108, 108, {135, 175, 135}}, + {nil, :color109, 109, {135, 175, 175}}, + {nil, :color110, 110, {135, 175, 215}}, + {nil, :color111, 111, {135, 175, 255}}, + {nil, :color112, 112, {135, 215, 0}}, + {nil, :color113, 113, {135, 215, 95}}, + {nil, :color114, 114, {135, 215, 135}}, + {nil, :color115, 115, {135, 215, 175}}, + {nil, :color116, 116, {135, 215, 215}}, + {nil, :color117, 117, {135, 215, 255}}, + {"chartreuse", :color118, 118, {135, 255, 0}}, + {nil, :color119, 119, {135, 255, 95}}, + {nil, :color120, 120, {135, 255, 135}}, + {nil, :color121, 121, {135, 255, 175}}, + {"aquamarine", :color122, 122, {135, 255, 215}}, + {nil, :color123, 123, {135, 255, 255}}, + {nil, :color124, 124, {175, 0, 0}}, + {nil, :color125, 125, {175, 0, 95}}, + {nil, :color126, 126, {175, 0, 135}}, + {nil, :color127, 127, {175, 0, 175}}, + {nil, :color128, 128, {175, 0, 215}}, + {nil, :color129, 129, {175, 0, 255}}, + {nil, :color130, 130, {175, 95, 0}}, + {nil, :color131, 131, {175, 95, 95}}, + {nil, :color132, 132, {175, 95, 135}}, + {nil, :color133, 133, {175, 95, 175}}, + {nil, :color134, 134, {175, 95, 215}}, + {nil, :color135, 135, {175, 95, 255}}, + {nil, :color136, 136, {175, 135, 0}}, + {nil, :color137, 137, {175, 135, 95}}, + {nil, :color138, 138, {175, 135, 135}}, + {nil, :color139, 139, {175, 135, 175}}, + {nil, :color140, 140, {175, 135, 215}}, + {nil, :color141, 141, {175, 135, 255}}, + {nil, :color142, 142, {175, 175, 0}}, + {nil, :color143, 143, {175, 175, 95}}, + {nil, :color144, 144, {175, 175, 135}}, + {nil, :color145, 145, {175, 175, 175}}, + {nil, :color146, 146, {175, 175, 215}}, + {nil, :color147, 147, {175, 175, 255}}, + {nil, :color148, 148, {175, 215, 0}}, + {nil, :color149, 149, {175, 215, 95}}, + {nil, :color150, 150, {175, 215, 135}}, + {nil, :color151, 151, {175, 215, 175}}, + {nil, :color152, 152, {175, 215, 215}}, + {nil, :color153, 153, {175, 215, 255}}, + {"greenyellow", :color154, 154, {175, 255, 0}}, + {nil, :color155, 155, {175, 255, 95}}, + {nil, :color156, 156, {175, 255, 135}}, + {nil, :color157, 157, {175, 255, 175}}, + {nil, :color158, 158, {175, 255, 215}}, + {nil, :color159, 159, {175, 255, 255}}, + {nil, :color160, 160, {215, 0, 0}}, + {nil, :color161, 161, {215, 0, 95}}, + {nil, :color162, 162, {215, 0, 135}}, + {nil, :color163, 163, {215, 0, 175}}, + {nil, :color164, 164, {215, 0, 215}}, + {nil, :color165, 165, {215, 0, 255}}, + {nil, :color166, 166, {215, 95, 0}}, + {nil, :color167, 167, {215, 95, 95}}, + {nil, :color168, 168, {215, 95, 135}}, + {nil, :color169, 169, {215, 95, 175}}, + {nil, :color170, 170, {215, 95, 215}}, + {nil, :color171, 171, {215, 95, 255}}, + {"chocolate", :color172, 172, {215, 135, 0}}, + {nil, :color173, 173, {215, 135, 95}}, + {nil, :color174, 174, {215, 135, 135}}, + {nil, :color175, 175, {215, 135, 175}}, + {nil, :color176, 176, {215, 135, 215}}, + {nil, :color177, 177, {215, 135, 255}}, + {"goldenrod", :color178, 178, {215, 175, 0}}, + {nil, :color179, 179, {215, 175, 95}}, + {nil, :color180, 180, {215, 175, 135}}, + {nil, :color181, 181, {215, 175, 175}}, + {nil, :color182, 182, {215, 175, 215}}, + {nil, :color183, 183, {215, 175, 255}}, + {nil, :color184, 184, {215, 215, 0}}, + {nil, :color185, 185, {215, 215, 95}}, + {nil, :color186, 186, {215, 215, 135}}, + {nil, :color187, 187, {215, 215, 175}}, {"lightgray", :color188, 188, {215, 215, 215}}, - {nil, :color189, 189, {215, 215, 255}}, - {nil, :color190, 190, {215, 255, 0}}, - {nil, :color191, 191, {215, 255, 95}}, - {nil, :color192, 192, {215, 255, 135}}, - {nil, :color193, 193, {215, 255, 175}}, - {"beige", :color194, 194, {215, 255, 215}}, - {"lightcyan", :color195, 195, {215, 255, 255}}, - {nil, :color196, 196, {255, 0, 0}}, - {nil, :color197, 197, {255, 0, 95}}, - {nil, :color198, 198, {255, 0, 135}}, - {nil, :color199, 199, {255, 0, 175}}, - {nil, :color200, 200, {255, 0, 215}}, - {"fuchsia", :color201, 201, {255, 0, 255}}, + {nil, :color189, 189, {215, 215, 255}}, + {nil, :color190, 190, {215, 255, 0}}, + {nil, :color191, 191, {215, 255, 95}}, + {nil, :color192, 192, {215, 255, 135}}, + {nil, :color193, 193, {215, 255, 175}}, + {"beige", :color194, 194, {215, 255, 215}}, + {"lightcyan", :color195, 195, {215, 255, 255}}, + {nil, :color196, 196, {255, 0, 0}}, + {nil, :color197, 197, {255, 0, 95}}, + {nil, :color198, 198, {255, 0, 135}}, + {nil, :color199, 199, {255, 0, 175}}, + {nil, :color200, 200, {255, 0, 215}}, + {"fuchsia", :color201, 201, {255, 0, 255}}, {"orangered", :color202, 202, {255, 95, 0}}, - {nil, :color203, 203, {255, 95, 95}}, - {nil, :color204, 204, {255, 95, 135}}, + {nil, :color203, 203, {255, 95, 95}}, + {nil, :color204, 204, {255, 95, 135}}, {"hotpink", :color205, 205, {255, 95, 175}}, - {nil, :color206, 206, {255, 95, 215}}, - {nil, :color207, 207, {255, 95, 255}}, + {nil, :color206, 206, {255, 95, 215}}, + {nil, :color207, 207, {255, 95, 255}}, {"darkorange", :color208, 208, {255, 135, 0}}, - {"coral", :color209, 209, {255, 135, 95}}, - {nil, :color210, 210, {255, 135, 135}}, - {nil, :color211, 211, {255, 135, 175}}, - {nil, :color212, 212, {255, 135, 215}}, - {nil, :color213, 213, {255, 135, 255}}, - {"orange", :color214, 214, {255, 175, 0}}, - {nil, :color215, 215, {255, 175, 95}}, - {nil, :color216, 216, {255, 175, 135}}, - {nil, :color217, 217, {255, 175, 175}}, - {nil, :color218, 218, {255, 175, 215}}, - {nil, :color219, 219, {255, 175, 255}}, - {"gold", :color220, 220, {255, 215, 0}}, - {nil, :color221, 221, {255, 215, 95}}, - {"khaki", :color222, 222, {255, 215, 135}}, - {"moccasin", :color223, 223, {255, 215, 175}}, + {"coral", :color209, 209, {255, 135, 95}}, + {nil, :color210, 210, {255, 135, 135}}, + {nil, :color211, 211, {255, 135, 175}}, + {nil, :color212, 212, {255, 135, 215}}, + {nil, :color213, 213, {255, 135, 255}}, + {"orange", :color214, 214, {255, 175, 0}}, + {nil, :color215, 215, {255, 175, 95}}, + {nil, :color216, 216, {255, 175, 135}}, + {nil, :color217, 217, {255, 175, 175}}, + {nil, :color218, 218, {255, 175, 215}}, + {nil, :color219, 219, {255, 175, 255}}, + {"gold", :color220, 220, {255, 215, 0}}, + {nil, :color221, 221, {255, 215, 95}}, + {"khaki", :color222, 222, {255, 215, 135}}, + {"moccasin", :color223, 223, {255, 215, 175}}, {"mistyrose", :color224, 224, {255, 215, 215}}, - {nil, :color225, 225, {255, 215, 255}}, - {nil, :color226, 226, {255, 255, 0}}, - {nil, :color227, 227, {255, 255, 95}}, - {nil, :color228, 228, {255, 255, 135}}, - {nil, :color229, 229, {255, 255, 175}}, + {nil, :color225, 225, {255, 215, 255}}, + {nil, :color226, 226, {255, 255, 0}}, + {nil, :color227, 227, {255, 255, 95}}, + {nil, :color228, 228, {255, 255, 135}}, + {nil, :color229, 229, {255, 255, 175}}, {"lightyellow", :color230, 230, {255, 255, 215}}, - {nil, :color231, 231, {255, 255, 255}}, - {nil, :color232, 232, {255, 255, 255}}, - {nil, :color233, 233, {255, 255, 255}}, - {nil, :color234, 234, {255, 255, 255}}, - {nil, :color235, 235, {255, 255, 255}}, - {nil, :color236, 236, {255, 255, 255}}, - {nil, :color237, 237, {255, 255, 255}}, - {nil, :color238, 238, {255, 255, 255}}, - {nil, :color239, 239, {255, 255, 255}}, - {nil, :color240, 240, {255, 255, 255}}, - {nil, :color241, 241, {255, 255, 255}}, - {nil, :color242, 242, {255, 255, 255}}, - {nil, :color243, 243, {255, 255, 255}}, - {nil, :color244, 244, {255, 255, 255}}, - {nil, :color245, 245, {255, 255, 255}}, - {nil, :color246, 246, {255, 255, 255}}, - {nil, :color247, 247, {255, 255, 255}}, - {nil, :color248, 248, {255, 255, 255}}, - {nil, :color249, 249, {255, 255, 255}}, - {nil, :color250, 250, {255, 255, 255}}, - {nil, :color251, 251, {255, 255, 255}}, - {nil, :color252, 252, {255, 255, 255}}, - {nil, :color253, 253, {255, 255, 255}}, - {nil, :color254, 254, {255, 255, 255}}, - {nil, :color255, 255, {255, 255, 255}}, + {nil, :color231, 231, {255, 255, 255}}, + {nil, :color232, 232, {255, 255, 255}}, + {nil, :color233, 233, {255, 255, 255}}, + {nil, :color234, 234, {255, 255, 255}}, + {nil, :color235, 235, {255, 255, 255}}, + {nil, :color236, 236, {255, 255, 255}}, + {nil, :color237, 237, {255, 255, 255}}, + {nil, :color238, 238, {255, 255, 255}}, + {nil, :color239, 239, {255, 255, 255}}, + {nil, :color240, 240, {255, 255, 255}}, + {nil, :color241, 241, {255, 255, 255}}, + {nil, :color242, 242, {255, 255, 255}}, + {nil, :color243, 243, {255, 255, 255}}, + {nil, :color244, 244, {255, 255, 255}}, + {nil, :color245, 245, {255, 255, 255}}, + {nil, :color246, 246, {255, 255, 255}}, + {nil, :color247, 247, {255, 255, 255}}, + {nil, :color248, 248, {255, 255, 255}}, + {nil, :color249, 249, {255, 255, 255}}, + {nil, :color250, 250, {255, 255, 255}}, + {nil, :color251, 251, {255, 255, 255}}, + {nil, :color252, 252, {255, 255, 255}}, + {nil, :color253, 253, {255, 255, 255}}, + {nil, :color254, 254, {255, 255, 255}}, + {nil, :color255, 255, {255, 255, 255}} ] def color_tuples, do: @color_tuples for {name, color, code, _} <- @color_tuples do @doc "Sets foreground color to #{color}" - defsequence color, code, "38;5;" + defsequence(color, code, "38;5;") @doc "Sets background color to #{color}" - defsequence :"#{color}_background", code, "48;5;" + defsequence(:"#{color}_background", code, "48;5;") + if name do @doc "Sets foreground color to #{name}" - defsequence :"#{name}", code, "38;5;" + defsequence(:"#{name}", code, "38;5;") @doc "Sets background color to #{name}" - defsequence :"#{name}_background", code, "48;5;" + defsequence(:"#{name}_background", code, "48;5;") end end - @color_aliases Application.get_env(:bunt, :color_aliases, []) + if Version.match?(System.version(), ">= 1.14.0-dev") do + @color_aliases Application.compile_env(:bunt, :color_aliases, []) + else + function = :get_env + @color_aliases apply(Application, function, [:bunt, :color_aliases, []]) + end + def color_aliases, do: @color_aliases for {alias_name, original_name} <- @color_aliases do - defalias alias_name, original_name - defalias :"#{alias_name}_background", :"#{original_name}_background" + defalias(alias_name, original_name) + defalias(:"#{alias_name}_background", :"#{original_name}_background") end - - - @typep ansicode :: atom() - @typep ansilist :: maybe_improper_list(char() | ansicode() | binary() | ansilist(), binary() | ansicode() | []) - @type ansidata :: ansilist() | ansicode() | binary() + @typep ansilist :: + maybe_improper_list( + char() | ansicode() | binary() | ansilist(), + binary() | ansicode() | [] + ) + @type ansidata :: ansilist() | ansicode() | binary() @doc """ Checks if ANSI coloring is supported and enabled on this machine. @@ -326,97 +334,97 @@ defmodule Bunt.ANSI do end @doc "Resets all attributes" - defsequence :reset, 0 + defsequence(:reset, 0) @doc "Bright (increased intensity) or Bold" - defsequence :bright, 1 + defsequence(:bright, 1) @doc "Faint (decreased intensity), not widely supported" - defsequence :faint, 2 + defsequence(:faint, 2) @doc "Italic: on. Not widely supported. Sometimes treated as inverse" - defsequence :italic, 3 + defsequence(:italic, 3) @doc "Underline: Single" - defsequence :underline, 4 + defsequence(:underline, 4) @doc "Blink: Slow. Less than 150 per minute" - defsequence :blink_slow, 5 + defsequence(:blink_slow, 5) @doc "Blink: Rapid. MS-DOS ANSI.SYS; 150 per minute or more; not widely supported" - defsequence :blink_rapid, 6 + defsequence(:blink_rapid, 6) @doc "Image: Negative. Swap foreground and background" - defsequence :inverse, 7 + defsequence(:inverse, 7) @doc "Image: Negative. Swap foreground and background" - defsequence :reverse, 7 + defsequence(:reverse, 7) @doc "Conceal. Not widely supported" - defsequence :conceal, 8 + defsequence(:conceal, 8) @doc "Crossed-out. Characters legible, but marked for deletion. Not widely supported" - defsequence :crossed_out, 9 + defsequence(:crossed_out, 9) @doc "Sets primary (default) font" - defsequence :primary_font, 10 + defsequence(:primary_font, 10) for font_n <- [1, 2, 3, 4, 5, 6, 7, 8, 9] do @doc "Sets alternative font #{font_n}" - defsequence :"font_#{font_n}", font_n + 10 + defsequence(:"font_#{font_n}", font_n + 10) end @doc "Normal color or intensity" - defsequence :normal, 22 + defsequence(:normal, 22) @doc "Not italic" - defsequence :not_italic, 23 + defsequence(:not_italic, 23) @doc "Underline: None" - defsequence :no_underline, 24 + defsequence(:no_underline, 24) @doc "Blink: off" - defsequence :blink_off, 25 + defsequence(:blink_off, 25) colors = [:black, :red, :green, :yellow, :blue, :magenta, :cyan, :white] for {color, code} <- Enum.with_index(colors) do @doc "Sets foreground color to #{color}" - defsequence color, code + 30 + defsequence(color, code + 30) @doc "Sets background color to #{color}" - defsequence :"#{color}_background", code + 40 + defsequence(:"#{color}_background", code + 40) end @doc "Default text color" - defsequence :default_color, 39 + defsequence(:default_color, 39) @doc "Default background color" - defsequence :default_background, 49 + defsequence(:default_background, 49) @doc "Framed" - defsequence :framed, 51 + defsequence(:framed, 51) @doc "Encircled" - defsequence :encircled, 52 + defsequence(:encircled, 52) @doc "Overlined" - defsequence :overlined, 53 + defsequence(:overlined, 53) @doc "Not framed or encircled" - defsequence :not_framed_encircled, 54 + defsequence(:not_framed_encircled, 54) @doc "Not overlined" - defsequence :not_overlined, 55 + defsequence(:not_overlined, 55) @doc "Sends cursor home" - defsequence :home, "", "H" + defsequence(:home, "", "H") @doc "Clears screen" - defsequence :clear, "2", "J" + defsequence(:clear, "2", "J") @doc "Clears line" - defsequence :clear_line, "2", "K" + defsequence(:clear_line, "2", "K") defp format_sequence(other) do raise ArgumentError, "invalid ANSI sequence specification: #{other}" @@ -486,7 +494,7 @@ defmodule Bunt.ANSI do end defp do_format([], [], acc, true, true) do - [acc | IO.ANSI.reset] + [acc | IO.ANSI.reset()] end defp do_format([], [], acc, _emit, _append_reset) do diff --git a/.deps/bunt/mix.exs b/.deps/bunt/mix.exs @@ -4,17 +4,17 @@ defmodule Bunt.Mixfile do def project do [ app: :bunt, - version: "0.2.0", + version: "0.2.1", elixir: "~> 1.1", - build_embedded: Mix.env == :prod, - start_permanent: Mix.env == :prod, + build_embedded: Mix.env() == :prod, + start_permanent: Mix.env() == :prod, deps: deps(), name: "Bunt", description: "256 color ANSI coloring in the terminal", package: [ maintainers: ["René Föhring"], licenses: ["MIT"], - links: %{"GitHub" => "https://github.com/rrrene/bunt"}, + links: %{"GitHub" => "https://github.com/rrrene/bunt"} ] ] end diff --git a/.deps/credo/.hex b/.deps/credo/.hex Binary files differ. diff --git a/.deps/credo/README.md b/.deps/credo/README.md @@ -1,4 +1,4 @@ -# Credo [![CI Tests](https://github.com/rrrene/credo/workflows/CI%20Tests/badge.svg)](https://github.com/rrrene/credo/actions?query=branch%3Amaster) [![Inline docs](https://inch-ci.org/github/rrrene/credo.svg?branch=master)](https://inch-ci.org/github/rrrene/credo) +# Credo [![CI Tests](https://github.com/rrrene/credo/workflows/CI%20Tests/badge.svg)](https://github.com/rrrene/credo/actions?query=branch%3Amaster) [![Inline docs](https://inch-ci.org/github/rrrene/credo.svg?branch=master)](https://hexdocs.pm/credo) Credo is a static code analysis tool for the Elixir language with a focus on teaching and code consistency. diff --git a/.deps/credo/hex_metadata.config b/.deps/credo/hex_metadata.config @@ -266,10 +266,10 @@ {<<"name">>,<<"bunt">>}, {<<"optional">>,false}, {<<"repository">>,<<"hexpm">>}, - {<<"requirement">>,<<"~> 0.2.0">>}], + {<<"requirement">>,<<"~> 0.2.1">>}], [{<<"app">>,<<"jason">>}, {<<"name">>,<<"jason">>}, {<<"optional">>,false}, {<<"repository">>,<<"hexpm">>}, {<<"requirement">>,<<"~> 1.0">>}]]}. -{<<"version">>,<<"1.6.4">>}. +{<<"version">>,<<"1.6.7">>}. diff --git a/.deps/credo/lib/credo/application.ex b/.deps/credo/lib/credo/application.ex @@ -12,11 +12,11 @@ defmodule Credo.Application do ] if Version.match?(System.version(), ">= 1.10.0-rc") do - def children() do + def children do Enum.map(@worker_modules, &{&1, []}) end else - def children() do + def children do import Supervisor.Spec, warn: false Enum.map(@worker_modules, &worker(&1, [])) end diff --git a/.deps/credo/lib/credo/build_info.ex b/.deps/credo/lib/credo/build_info.ex @@ -42,14 +42,12 @@ defmodule Credo.BuildInfo do end defp in_git_work_tree? do - try do - {_, exit_status} = - System.cmd("git", ["rev-parse", "--is-inside-work-tree"], stderr_to_stdout: true) + {_, exit_status} = + System.cmd("git", ["rev-parse", "--is-inside-work-tree"], stderr_to_stdout: true) - exit_status == 0 - rescue - _ -> false - end + exit_status == 0 + rescue + _ -> false end defp git_branch do diff --git a/.deps/credo/lib/credo/check/consistency/exception_names.ex b/.deps/credo/lib/credo/check/consistency/exception_names.ex @@ -55,7 +55,7 @@ defmodule Credo.Check.Consistency.ExceptionNames do message = """ Exception modules should be named consistently. It seems your strategy is to prefix them with `#{expected}`, - but `#{trigger}` does not follow that convention." + but `#{trigger}` does not follow that convention. """ to_one_line(message) diff --git a/.deps/credo/lib/credo/check/consistency/exception_names/collector.ex b/.deps/credo/lib/credo/check/consistency/exception_names/collector.ex @@ -3,21 +3,20 @@ defmodule Credo.Check.Consistency.ExceptionNames.Collector do use Credo.Check.Consistency.Collector - alias Credo.Code alias Credo.Code.Module alias Credo.Code.Name def collect_matches(source_file, _params) do exception_recorder = &record_exception/2 - Code.prewalk(source_file, &traverse(exception_recorder, &1, &2), %{}) + Credo.Code.prewalk(source_file, &traverse(exception_recorder, &1, &2), %{}) end def find_locations_not_matching(expected, source_file) do location_recorder = &record_not_matching(expected, &1, &2) source_file - |> Code.prewalk(&traverse(location_recorder, &1, &2), []) + |> Credo.Code.prewalk(&traverse(location_recorder, &1, &2), []) |> Enum.reverse() end diff --git a/.deps/credo/lib/credo/check/consistency/line_endings.ex b/.deps/credo/lib/credo/check/consistency/line_endings.ex @@ -31,17 +31,24 @@ defmodule Credo.Check.Consistency.LineEndings do defp issues_for(expected, source_file, params) do first_line_with_issue = @collector.first_line_with_issue(expected, source_file) + message = + case expected do + :unix -> + "File is using windows line endings while most of the files use unix line endings." + + :windows -> + "File is using unix line endings while most of the files use windows line endings." + end + + trigger = + case expected do + :unix -> "\r\n" + :windows -> "\n" + end + source_file |> IssueMeta.for(params) - |> format_issue(message: message_for(expected), line_no: first_line_with_issue) + |> format_issue(message: message, line_no: first_line_with_issue, trigger: trigger) |> List.wrap() end - - defp message_for(:unix = _expected) do - "File is using windows line endings while most of the files use unix line endings." - end - - defp message_for(:windows = _expected) do - "File is using unix line endings while most of the files use windows line endings." - end end diff --git a/.deps/credo/lib/credo/check/consistency/line_endings/collector.ex b/.deps/credo/lib/credo/check/consistency/line_endings/collector.ex @@ -6,6 +6,9 @@ defmodule Credo.Check.Consistency.LineEndings.Collector do def collect_matches(source_file, _params) do source_file |> SourceFile.lines() + # remove the last line since it behaves differently on windows and linux + # and apparently does not help determining line endings (see #965) + |> List.delete_at(-1) |> Enum.reduce(%{}, fn line, stats -> Map.update(stats, line_ending(line), 1, &(&1 + 1)) end) diff --git a/.deps/credo/lib/credo/check/consistency/multi_alias_import_require_use/collector.ex b/.deps/credo/lib/credo/check/consistency/multi_alias_import_require_use/collector.ex @@ -3,20 +3,18 @@ defmodule Credo.Check.Consistency.MultiAliasImportRequireUse.Collector do use Credo.Check.Consistency.Collector - alias Credo.Code - @directives [:alias, :import, :require, :use] def collect_matches(source_file, _params) do source_file - |> Code.prewalk(&traverse/2, []) + |> Credo.Code.prewalk(&traverse/2, []) |> group_usages |> count_occurrences end def find_locations_not_matching(expected, source_file) do source_file - |> Code.prewalk(&traverse/2, []) + |> Credo.Code.prewalk(&traverse/2, []) |> group_usages |> drop_locations(expected) end diff --git a/.deps/credo/lib/credo/check/consistency/parameter_pattern_matching/collector.ex b/.deps/credo/lib/credo/check/consistency/parameter_pattern_matching/collector.ex @@ -3,19 +3,17 @@ defmodule Credo.Check.Consistency.ParameterPatternMatching.Collector do use Credo.Check.Consistency.Collector - alias Credo.Code - def collect_matches(source_file, _params) do position_recorder = &record_position/4 - Code.prewalk(source_file, &traverse(position_recorder, &1, &2), %{}) + Credo.Code.prewalk(source_file, &traverse(position_recorder, &1, &2), %{}) end def find_locations_not_matching(expected, source_file) do location_recorder = &record_not_matching(expected, &1, &2, &3, &4) source_file - |> Code.prewalk(&traverse(location_recorder, &1, &2), []) + |> Credo.Code.prewalk(&traverse(location_recorder, &1, &2), []) |> Enum.reverse() end diff --git a/.deps/credo/lib/credo/check/consistency/space_around_operators/collector.ex b/.deps/credo/lib/credo/check/consistency/space_around_operators/collector.ex @@ -3,8 +3,6 @@ defmodule Credo.Check.Consistency.SpaceAroundOperators.Collector do use Credo.Check.Consistency.Collector - alias Credo.Code - import Credo.Check.Consistency.SpaceAroundOperators.SpaceHelper, only: [ operator?: 1, @@ -16,13 +14,13 @@ defmodule Credo.Check.Consistency.SpaceAroundOperators.Collector do def collect_matches(source_file, _params) do source_file - |> Code.to_tokens() + |> Credo.Code.to_tokens() |> traverse_tokens(&record_spaces(&1, &2, &3, &4), %{}) end def find_locations_not_matching(expected, source_file) do source_file - |> Code.to_tokens() + |> Credo.Code.to_tokens() |> traverse_tokens(&record_not_matching(expected, &1, &2, &3, &4), []) |> Enum.reverse() end diff --git a/.deps/credo/lib/credo/check/consistency/space_around_operators/space_helper.ex b/.deps/credo/lib/credo/check/consistency/space_around_operators/space_helper.ex @@ -31,6 +31,11 @@ defmodule Credo.Check.Consistency.SpaceAroundOperators.SpaceHelper do def usually_no_space_after?({:"(", _}, {:dual_op, _, :-}, {:int, _, _}), do: true def usually_no_space_after?({:"(", _}, {:dual_op, _, :-}, {:float, _, _}), do: true def usually_no_space_after?({:"(", _}, {:dual_op, _, :-}, {:flt, _, _}), do: true + def usually_no_space_after?({:"{", _}, {:dual_op, _, :-}, {:identifier, _, _}), do: true + def usually_no_space_after?({:"{", _}, {:dual_op, _, :-}, {:number, _, _}), do: true + def usually_no_space_after?({:"{", _}, {:dual_op, _, :-}, {:int, _, _}), do: true + def usually_no_space_after?({:"{", _}, {:dual_op, _, :-}, {:float, _, _}), do: true + def usually_no_space_after?({:"{", _}, {:dual_op, _, :-}, {:flt, _, _}), do: true def usually_no_space_after?({:",", _}, {:dual_op, _, :-}, {:identifier, _, _}), do: true def usually_no_space_after?({:",", _}, {:dual_op, _, :-}, {:number, _, _}), do: true def usually_no_space_after?({:",", _}, {:dual_op, _, :-}, {:int, _, _}), do: true diff --git a/.deps/credo/lib/credo/check/consistency/unused_variable_names/collector.ex b/.deps/credo/lib/credo/check/consistency/unused_variable_names/collector.ex @@ -3,19 +3,17 @@ defmodule Credo.Check.Consistency.UnusedVariableNames.Collector do use Credo.Check.Consistency.Collector - alias Credo.Code - def collect_matches(source_file, _params) do unused_variable_recorder = &record_unused_variable/2 - Code.prewalk(source_file, &traverse(unused_variable_recorder, &1, &2), %{}) + Credo.Code.prewalk(source_file, &traverse(unused_variable_recorder, &1, &2), %{}) end def find_locations_not_matching(expected, source_file) do location_recorder = &record_not_matching(expected, &1, &2) source_file - |> Code.prewalk(&traverse(location_recorder, &1, &2), []) + |> Credo.Code.prewalk(&traverse(location_recorder, &1, &2), []) |> Enum.reverse() end diff --git a/.deps/credo/lib/credo/check/readability/alias_as.ex b/.deps/credo/lib/credo/check/readability/alias_as.ex @@ -33,13 +33,11 @@ defmodule Credo.Check.Readability.AliasAs do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params) do source_file - |> Code.prewalk(&traverse(&1, &2, IssueMeta.for(source_file, params))) + |> Credo.Code.prewalk(&traverse(&1, &2, IssueMeta.for(source_file, params))) |> Enum.reverse() end diff --git a/.deps/credo/lib/credo/check/readability/alias_order.ex b/.deps/credo/lib/credo/check/readability/alias_order.ex @@ -41,7 +41,6 @@ defmodule Credo.Check.Readability.AliasOrder do """ ] - alias Credo.Code alias Credo.Code.Name @doc false @@ -49,7 +48,7 @@ defmodule Credo.Check.Readability.AliasOrder do def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end defp traverse({:defmodule, _, _} = ast, issues, issue_meta) do @@ -126,19 +125,23 @@ defmodule Credo.Check.Readability.AliasOrder do sorted_downcased_mod_list = Enum.sort(downcased_mod_list) if downcased_mod_list != sorted_downcased_mod_list do - trigger = - downcased_mod_list - |> Enum.with_index() - |> Enum.find_value(fn {downcased_mod_entry, index} -> - if downcased_mod_entry != Enum.at(sorted_downcased_mod_list, index) do - Enum.at(mod_list, index) - end - end) - - issue_opts(line_no, [base, trigger], trigger) + issue_opts(line_no, base, mod_list, downcased_mod_list, sorted_downcased_mod_list) end end + defp issue_opts(line_no, base, mod_list, downcased_mod_list, sorted_downcased_mod_list) do + trigger = + downcased_mod_list + |> Enum.with_index() + |> Enum.find_value(fn {downcased_mod_entry, index} -> + if downcased_mod_entry != Enum.at(sorted_downcased_mod_list, index) do + Enum.at(mod_list, index) + end + end) + + issue_opts(line_no, [base, trigger], trigger) + end + defp issue_opts(line_no, module, trigger) do %{ line_no: line_no, @@ -149,7 +152,7 @@ defmodule Credo.Check.Readability.AliasOrder do defp extract_alias_groups({:defmodule, _, _} = ast) do ast - |> Code.postwalk(&find_alias_groups/2) + |> Credo.Code.postwalk(&find_alias_groups/2) |> Enum.reverse() |> Enum.reduce([[]], fn definition, acc -> case definition do diff --git a/.deps/credo/lib/credo/check/readability/function_names.ex b/.deps/credo/lib/credo/check/readability/function_names.ex @@ -47,7 +47,7 @@ defmodule Credo.Check.Readability.FunctionNames do |> issues_list() end - defp empty_issues(), do: %{} + defp empty_issues, do: %{} defp add_issue(issues, name, arity, issue), do: Map.put_new(issues, {name, arity}, issue) diff --git a/.deps/credo/lib/credo/check/readability/large_numbers.ex b/.deps/credo/lib/credo/check/readability/large_numbers.ex @@ -30,8 +30,8 @@ defmodule Credo.Check.Readability.LargeNumbers do @doc false # TODO: consider for experimental check front-loader (tokens) def run(%SourceFile{} = source_file, params) do - issue_meta = IssueMeta.for(source_file, params) min_number = Params.get(params, :only_greater_than, __MODULE__) + issue_meta = IssueMeta.for(source_file, Keyword.merge(params, only_greater_than: min_number)) allowed_trailing_digits = case Params.get(params, :trailing_digits, __MODULE__) do @@ -198,9 +198,13 @@ defmodule Credo.Check.Readability.LargeNumbers do end defp issue_for(issue_meta, line_no, column, trigger, expected) do + params = IssueMeta.params(issue_meta) + only_greater_than = Params.get(params, :only_greater_than, __MODULE__) + format_issue( issue_meta, - message: "Large numbers should be written with underscores: #{Enum.join(expected, " or ")}", + message: + "Numbers larger than #{only_greater_than} should be written with underscores: #{Enum.join(expected, " or ")}", line_no: line_no, column: column, trigger: trigger diff --git a/.deps/credo/lib/credo/check/readability/max_line_length.ex b/.deps/credo/lib/credo/check/readability/max_line_length.ex @@ -28,8 +28,8 @@ defmodule Credo.Check.Readability.MaxLineLength do ] alias Credo.Code.Heredocs - alias Credo.Code.Strings alias Credo.Code.Sigils + alias Credo.Code.Strings @def_ops [:def, :defp, :defmacro] @url_regex ~r/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/ diff --git a/.deps/credo/lib/credo/check/readability/module_doc.ex b/.deps/credo/lib/credo/check/readability/module_doc.ex @@ -2,7 +2,7 @@ defmodule Credo.Check.Readability.ModuleDoc do use Credo.Check, param_defaults: [ ignore_names: [ - ~r/(\.\w+Controller|\.Endpoint|\.Repo|\.Router|\.\w+Socket|\.\w+View)$/ + ~r/(\.\w+Controller|\.Endpoint|\.\w+Live(\.\w+)?|\.Repo|\.Router|\.\w+Socket|\.\w+View)$/ ] ], explanations: [ diff --git a/.deps/credo/lib/credo/check/readability/multi_alias.ex b/.deps/credo/lib/credo/check/readability/multi_alias.ex @@ -21,23 +21,21 @@ defmodule Credo.Check.Readability.MultiAlias do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end # TODO: consider for experimental check front-loader (ast) defp traverse( - {:alias, _, [{{_, _, [{:__aliases__, opts, _base_alias}, :{}]}, _, [multi_alias | _]}]} = - ast, + {:alias, _, [{{_, _, [{alias, opts, _base_alias}, :{}]}, _, [multi_alias | _]}]} = ast, issues, issue_meta - ) do + ) + when alias in [:__aliases__, :__MODULE__] do {:__aliases__, _, module} = multi_alias module = Enum.join(module, ".") diff --git a/.deps/credo/lib/credo/check/readability/single_function_to_block_pipe.ex b/.deps/credo/lib/credo/check/readability/single_function_to_block_pipe.ex @@ -28,12 +28,10 @@ defmodule Credo.Check.Readability.SingleFunctionToBlockPipe do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params) do - Code.prewalk(source_file, &traverse(&1, &2, IssueMeta.for(source_file, params))) + Credo.Code.prewalk(source_file, &traverse(&1, &2, IssueMeta.for(source_file, params))) end defp traverse(ast, {false, issues}, _issue_meta) do diff --git a/.deps/credo/lib/credo/check/readability/strict_module_layout.ex b/.deps/credo/lib/credo/check/readability/strict_module_layout.ex @@ -68,7 +68,6 @@ defmodule Credo.Check.Readability.StrictModuleLayout do ignore: [] ] - alias Credo.Code alias Credo.CLI.Output.UI @doc false @@ -77,7 +76,7 @@ defmodule Credo.Check.Readability.StrictModuleLayout do params = normalize_params(params) source_file - |> Code.ast() + |> Credo.Code.ast() |> Credo.Code.Module.analyze() |> all_errors(params, IssueMeta.for(source_file, params)) |> Enum.sort_by(&{&1.line_no, &1.column}) diff --git a/.deps/credo/lib/credo/check/readability/string_sigils.ex b/.deps/credo/lib/credo/check/readability/string_sigils.ex @@ -1,6 +1,6 @@ defmodule Credo.Check.Readability.StringSigils do - alias Credo.SourceFile alias Credo.Code.Heredocs + alias Credo.SourceFile use Credo.Check, base_priority: :low, diff --git a/.deps/credo/lib/credo/check/readability/trailing_white_space.ex b/.deps/credo/lib/credo/check/readability/trailing_white_space.ex @@ -16,9 +16,8 @@ defmodule Credo.Check.Readability.TrailingWhiteSpace do ] ] - alias Credo.Code - alias Credo.Code.Strings alias Credo.Code.Heredocs + alias Credo.Code.Strings @doc false @impl true @@ -35,7 +34,7 @@ defmodule Credo.Check.Readability.TrailingWhiteSpace do source_file |> Strings.replace_with_spaces(".", ".") |> Heredocs.replace_with_spaces(".", ".", ".", source_file.filename) - |> Code.to_lines() + |> Credo.Code.to_lines() end defp to_lines(source_file, false) do diff --git a/.deps/credo/lib/credo/check/readability/unnecessary_alias_expansion.ex b/.deps/credo/lib/credo/check/readability/unnecessary_alias_expansion.ex @@ -21,14 +21,12 @@ defmodule Credo.Check.Readability.UnnecessaryAliasExpansion do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end # TODO: consider for experimental check front-loader (ast) diff --git a/.deps/credo/lib/credo/check/readability/with_custom_tagged_tuple.ex b/.deps/credo/lib/credo/check/readability/with_custom_tagged_tuple.ex @@ -40,8 +40,6 @@ defmodule Credo.Check.Readability.WithCustomTaggedTuple do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params \\ []) do @@ -51,7 +49,7 @@ defmodule Credo.Check.Readability.WithCustomTaggedTuple do end defp errors(source_file) do - {_ast, errors} = Macro.prewalk(Code.ast(source_file), MapSet.new(), &traverse/2) + {_ast, errors} = Macro.prewalk(Credo.Code.ast(source_file), MapSet.new(), &traverse/2) Enum.sort_by(errors, &{&1.line, &1.column}) end diff --git a/.deps/credo/lib/credo/check/readability/with_single_clause.ex b/.deps/credo/lib/credo/check/readability/with_single_clause.ex @@ -43,14 +43,12 @@ defmodule Credo.Check.Readability.WithSingleClause do """ ] - alias Credo.Code - @doc false @impl true def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end # TODO: consider for experimental check front-loader (ast) @@ -80,18 +78,24 @@ defmodule Credo.Check.Readability.WithSingleClause do end defp issue_if_one_pattern_clause_with_else(clauses, body, line, issue_meta) do + contains_unquote_splicing? = Enum.any?(clauses, &match?({:unquote_splicing, _, _}, &1)) pattern_clauses_count = Enum.count(clauses, &match?({:<-, _, _}, &1)) - if pattern_clauses_count <= 1 and Keyword.has_key?(body, :else) do - [ - format_issue(issue_meta, - message: - "`with` contains only one <- clause and an `else` branch, consider using `case` instead", - line_no: line - ) - ] - else - [] + cond do + contains_unquote_splicing? -> + [] + + pattern_clauses_count <= 1 and Keyword.has_key?(body, :else) -> + [ + format_issue(issue_meta, + message: + "`with` contains only one <- clause and an `else` branch, consider using `case` instead", + line_no: line + ) + ] + + true -> + [] end end end diff --git a/.deps/credo/lib/credo/check/refactor/apply.ex b/.deps/credo/lib/credo/check/refactor/apply.ex @@ -35,6 +35,8 @@ defmodule Credo.Check.Refactor.Apply do end end + defp issue({:apply, _meta, [{:__MODULE__, _, _}, _fun, _args]}, _issue_meta), do: nil + defp issue({:apply, meta, [fun, args]}, issue_meta) do do_issue(:apply2, fun, args, meta, issue_meta) end @@ -45,6 +47,8 @@ defmodule Credo.Check.Refactor.Apply do defp issue(_ast, _issue_meta), do: nil + defp do_issue(_apply, _fun, [{:|, _, _}], _meta, _issue_meta), do: nil + defp do_issue(:apply2, {name, _meta, nil}, args, meta, issue_meta) when is_atom(name) and is_list(args) do issue_for(meta, issue_meta) diff --git a/.deps/credo/lib/credo/check/refactor/module_dependencies.ex b/.deps/credo/lib/credo/check/refactor/module_dependencies.ex @@ -24,8 +24,8 @@ defmodule Credo.Check.Refactor.ModuleDependencies do ] ] - alias Credo.Code.Name alias Credo.Code.Module + alias Credo.Code.Name @doc false @impl true diff --git a/.deps/credo/lib/credo/check/refactor/negated_is_nil.ex b/.deps/credo/lib/credo/check/refactor/negated_is_nil.ex @@ -63,5 +63,12 @@ defmodule Credo.Check.Refactor.NegatedIsNil do {ast, [issue | issues]} end + defp traverse({:when, meta, [fun, {_ , _, [first_op | second_op]}]} = ast, issues, issue_meta) do + {_, first_op_issues} = traverse({:when, meta, [fun, first_op]}, issues, issue_meta) + {_, second_op_issues} = traverse({:when, meta, [fun, second_op]}, issues, issue_meta) + + {ast, first_op_issues ++ second_op_issues ++ issues} + end + defp traverse(ast, issues, _), do: {ast, issues} end diff --git a/.deps/credo/lib/credo/check/refactor/redundant_with_clause_result.ex b/.deps/credo/lib/credo/check/refactor/redundant_with_clause_result.ex @@ -24,7 +24,6 @@ defmodule Credo.Check.Refactor.RedundantWithClauseResult do """ ] - alias Credo.Code alias Credo.Code.Block require Logger @@ -36,7 +35,7 @@ defmodule Credo.Check.Refactor.RedundantWithClauseResult do @impl true def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end defp traverse({:with, meta, clauses_and_body} = ast, issues, issue_meta) do @@ -83,7 +82,7 @@ defmodule Credo.Check.Refactor.RedundantWithClauseResult do defp redundant?({:<-, _meta, [body, _expr]}, body), do: true defp redundant?({:<-, _meta, [match, _expr]}, body) do - Code.remove_metadata(match) == Code.remove_metadata(body) + Credo.Code.remove_metadata(match) == Credo.Code.remove_metadata(body) end defp redundant?(_last_clause, _body), do: false diff --git a/.deps/credo/lib/credo/check/refactor/with_clauses.ex b/.deps/credo/lib/credo/check/refactor/with_clauses.ex @@ -36,8 +36,6 @@ defmodule Credo.Check.Refactor.WithClauses do """ ] - alias Credo.Code - @message_first_clause_not_pattern "`with` doesn't start with a <- clause, move the non-pattern <- clauses outside of the `with`" @message_last_clause_not_pattern "`with` doesn't end with a <- clause, move the non-pattern <- clauses inside the body of the `with`" @@ -45,7 +43,7 @@ defmodule Credo.Check.Refactor.WithClauses do @impl true def run(%SourceFile{} = source_file, params) do issue_meta = IssueMeta.for(source_file, params) - Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) + Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta)) end # TODO: consider for experimental check front-loader (ast) diff --git a/.deps/credo/lib/credo/check/warning/forbidden_module.ex b/.deps/credo/lib/credo/check/warning/forbidden_module.ex @@ -20,11 +20,10 @@ defmodule Credo.Check.Warning.ForbiddenModule do ] ] - alias Credo.Code alias Credo.Code.Name @impl Credo.Check - def run(source_file = %SourceFile{}, params) do + def run(%SourceFile{} = source_file, params) do modules = Params.get(params, :modules, __MODULE__) modules = @@ -34,10 +33,13 @@ defmodule Credo.Check.Warning.ForbiddenModule do Enum.map(modules, fn key -> {Name.full(key), nil} end) end - Code.prewalk(source_file, &traverse(&1, &2, modules, IssueMeta.for(source_file, params))) + Credo.Code.prewalk( + source_file, + &traverse(&1, &2, modules, IssueMeta.for(source_file, params)) + ) end - defp traverse(ast = {:__aliases__, meta, modules}, issues, forbidden_modules, issue_meta) do + defp traverse({:__aliases__, meta, modules} = ast, issues, forbidden_modules, issue_meta) do module = Name.full(modules) issues = put_issue_if_forbidden(issues, issue_meta, meta[:line], module, forbidden_modules) @@ -46,7 +48,7 @@ defmodule Credo.Check.Warning.ForbiddenModule do end defp traverse( - ast = {:alias, _meta, [{{_, _, [{:__aliases__, _opts, base_alias}, :{}]}, _, aliases}]}, + {:alias, _meta, [{{_, _, [{:__aliases__, _opts, base_alias}, :{}]}, _, aliases}]} = ast, issues, forbidden_modules, issue_meta diff --git a/.deps/credo/lib/credo/check/warning/unused_function_return_helper.ex b/.deps/credo/lib/credo/check/warning/unused_function_return_helper.ex @@ -237,7 +237,7 @@ defmodule Credo.Check.Warning.UnusedFunctionReturnHelper do candidate ) when is_atom(fun_name) and is_atom(module) and is_list(arguments) do - # IO.inspect(ast, label: "Mod.fun() (#{Macro.to_string(candidate)} #{acc})") + # IO.inspect(ast, label: "Mod.fun() /1 (#{Macro.to_string(candidate)} #{acc})") if Credo.Code.contains_child?(arguments, candidate) do {nil, :VERIFIED} @@ -253,7 +253,7 @@ defmodule Credo.Check.Warning.UnusedFunctionReturnHelper do candidate ) when is_atom(fun_name) and is_atom(module) and is_list(arguments) do - # IO.inspect(ast, label: "Mod.fun() (#{Macro.to_string(candidate)} #{acc})") + # IO.inspect(ast, label: "Mod.fun() /2 (#{Macro.to_string(candidate)} #{acc})") if Credo.Code.contains_child?(arguments, candidate) do {nil, :VERIFIED} @@ -269,7 +269,23 @@ defmodule Credo.Check.Warning.UnusedFunctionReturnHelper do candidate ) when is_atom(fun_name) and is_list(mods) and is_list(arguments) do - # IO.inspect(ast, label: "Mod.fun() (#{Macro.to_string(candidate)} #{acc})") + # IO.inspect(ast, label: "Mod.fun() /3 (#{Macro.to_string(candidate)} #{acc})") + + if Credo.Code.contains_child?(arguments, candidate) do + {nil, :VERIFIED} + else + {ast, acc} + end + end + + # module.my_fun() + defp verify_candidate( + {{:., _, [{module_variable, _, nil}, fun_name]}, _, arguments} = ast, + :not_verified = acc, + candidate + ) + when is_atom(fun_name) and is_atom(module_variable) and is_list(arguments) do + # IO.inspect(ast, label: "Mod.fun() /4 (#{Macro.to_string(candidate)} #{acc})") if Credo.Code.contains_child?(arguments, candidate) do {nil, :VERIFIED} diff --git a/.deps/credo/lib/credo/cli/command/diff/diff_command.ex b/.deps/credo/lib/credo/cli/command/diff/diff_command.ex @@ -6,11 +6,11 @@ defmodule Credo.CLI.Command.Diff.DiffCommand do alias Credo.CLI.Task alias Credo.Execution + alias Credo.CLI.Command.Diff.Task.FilterIssues + alias Credo.CLI.Command.Diff.Task.FilterIssuesForExitStatus alias Credo.CLI.Command.Diff.Task.GetGitDiff alias Credo.CLI.Command.Diff.Task.PrintBeforeInfo - alias Credo.CLI.Command.Diff.Task.FilterIssues alias Credo.CLI.Command.Diff.Task.PrintResultsAndSummary - alias Credo.CLI.Command.Diff.Task.FilterIssuesForExitStatus use Credo.CLI.Command, short_description: "Suggest code objects to look at next (based on git-diff)", @@ -127,7 +127,7 @@ defmodule Credo.CLI.Command.Diff.DiffCommand do end end - defp git_present?() do + defp git_present? do case System.cmd("git", ["--help"], stderr_to_stdout: true) do {_output, 0} -> true {_output, _} -> false diff --git a/.deps/credo/lib/credo/cli/command/diff/output/default.ex b/.deps/credo/lib/credo/cli/command/diff/output/default.ex @@ -447,7 +447,7 @@ defmodule Credo.CLI.Command.Diff.Output.Default do end end - defp diff_marker() do + defp diff_marker do [:faint, " ", :reset, ""] end diff --git a/.deps/credo/lib/credo/cli/command/diff/task/filter_issues.ex b/.deps/credo/lib/credo/cli/command/diff/task/filter_issues.ex @@ -30,7 +30,8 @@ defmodule Credo.CLI.Command.Diff.Task.FilterIssues do old_issues = Enum.map(old_issues, fn issue -> %Issue{issue | diff_marker: :old} end) - # TODO: we have to rewrite the filename to make it look like the file is in the current dir instead of the generated tmp dir + # TODO: we have to rewrite the filename to make it look like the file is in the current dir + # instead of the generated tmp dir fixed_issues = Enum.map(fixed_issues, fn issue -> %Issue{issue | diff_marker: :fixed} end) new_issues = Enum.map(new_issues, fn issue -> %Issue{issue | diff_marker: :new} end) diff --git a/.deps/credo/lib/credo/cli/command/explain/explain_command.ex b/.deps/credo/lib/credo/cli/command/explain/explain_command.ex @@ -6,10 +6,10 @@ defmodule Credo.CLI.Command.Explain.ExplainCommand do cli_switches: Credo.CLI.Command.Suggest.SuggestCommand.cli_switches() alias Credo.Check - alias Credo.Execution alias Credo.CLI.Command.Explain.ExplainOutput, as: Output alias Credo.CLI.Filename alias Credo.CLI.Task + alias Credo.Execution alias Credo.Issue alias Credo.SourceFile diff --git a/.deps/credo/lib/credo/code.ex b/.deps/credo/lib/credo/code.ex @@ -74,18 +74,16 @@ defmodule Credo.Code do @doc false def ast(source, filename \\ "nofilename") when is_binary(source) do - try do - case Code.string_to_quoted(source, line: 1, columns: true, file: filename) do - {:ok, value} -> - {:ok, value} - - {:error, error} -> - {:error, [issue_for(error, filename)]} - end - rescue - e in UnicodeConversionError -> - {:error, [issue_for({1, e.message, nil}, filename)]} + case Code.string_to_quoted(source, line: 1, columns: true, file: filename) do + {:ok, value} -> + {:ok, value} + + {:error, error} -> + {:error, [issue_for(error, filename)]} end + rescue + e in UnicodeConversionError -> + {:error, [issue_for({1, e.message, nil}, filename)]} end defp issue_for({line_no, error_message, _}, filename) do @@ -157,6 +155,8 @@ defmodule Credo.Code do Credo.Code.prewalk(parent, &find_child(&1, &2, child), false) end + defp find_child({parent, _meta, child}, _acc, child), do: {parent, true} + defp find_child(parent, acc, child), do: {parent, acc || parent == child} @doc """ diff --git a/.deps/credo/lib/credo/code/module.ex b/.deps/credo/lib/credo/code/module.ex @@ -4,7 +4,6 @@ defmodule Credo.Code.Module do functions or module attributes. """ - alias Credo.Code alias Credo.Code.Block alias Credo.Code.Name @@ -76,7 +75,7 @@ defmodule Credo.Code.Module do @doc "Reads an attribute from a module's `ast`" def attribute(ast, attr_name) do - case Code.postwalk(ast, &find_attribute(&1, &2, attr_name), {:error, nil}) do + case Credo.Code.postwalk(ast, &find_attribute(&1, &2, attr_name), {:error, nil}) do {:ok, value} -> value @@ -104,14 +103,14 @@ defmodule Credo.Code.Module do def def_count({:defmodule, _, _arguments} = ast) do ast - |> Code.postwalk(&collect_defs/2) + |> Credo.Code.postwalk(&collect_defs/2) |> Enum.count() end def defs(nil), do: [] def defs({:defmodule, _, _arguments} = ast) do - Code.postwalk(ast, &collect_defs/2) + Credo.Code.postwalk(ast, &collect_defs/2) end @doc "Returns the arity of the given function definition `ast`" @@ -168,7 +167,7 @@ defmodule Credo.Code.Module do def def_names({:defmodule, _, _arguments} = ast) do ast - |> Code.postwalk(&collect_defs/2) + |> Credo.Code.postwalk(&collect_defs/2) |> Enum.map(&def_name/1) |> Enum.uniq() end @@ -178,7 +177,7 @@ defmodule Credo.Code.Module do def def_names_with_op({:defmodule, _, _arguments} = ast) do ast - |> Code.postwalk(&collect_defs/2) + |> Credo.Code.postwalk(&collect_defs/2) |> Enum.map(&def_name_with_op/1) |> Enum.uniq() end @@ -188,7 +187,7 @@ defmodule Credo.Code.Module do def def_names_with_op({:defmodule, _, _arguments} = ast, arity) do ast - |> Code.postwalk(&collect_defs/2) + |> Credo.Code.postwalk(&collect_defs/2) |> Enum.map(&def_name_with_op(&1, arity)) |> Enum.reject(&is_nil/1) |> Enum.uniq() @@ -213,7 +212,7 @@ defmodule Credo.Code.Module do @doc "Returns the list of modules used in a given module source code." def modules({:defmodule, _, _arguments} = ast) do ast - |> Code.postwalk(&find_dependent_modules/2) + |> Credo.Code.postwalk(&find_dependent_modules/2) |> Enum.uniq() end diff --git a/.deps/credo/lib/credo/code/scope.ex b/.deps/credo/lib/credo/code/scope.ex @@ -22,7 +22,7 @@ defmodule Credo.Code.Scope do names = String.split(scope_name, ".") base_name = List.last(names) - if String.match?(base_name, ~r/^[a-z]/) do + if String.match?(base_name, ~r/^[_a-z]/) do names |> Enum.slice(0..(length(names) - 2)) |> Enum.join(".") diff --git a/.deps/credo/lib/credo/code/token.ex b/.deps/credo/lib/credo/code/token.ex @@ -34,242 +34,236 @@ defmodule Credo.Code.Token do """ def position(token) - # Elixir >= 1.6.0 - defdelegate position(token), to: __MODULE__.PositionHelper + def position({_, {line_no, col_start, _}, atom_or_charlist, _, _, _}) do + position_tuple(atom_or_charlist, line_no, col_start) + end - defmodule PositionHelper do - @moduledoc false + def position({_, {line_no, col_start, _}, atom_or_charlist, _, _}) do + position_tuple(atom_or_charlist, line_no, col_start) + end - @doc false - def position({_, {line_no, col_start, _}, atom_or_charlist, _, _, _}) do - position_tuple(atom_or_charlist, line_no, col_start) - end + def position({_, {line_no, col_start, _}, atom_or_charlist, _}) do + position_tuple(atom_or_charlist, line_no, col_start) + end - def position({_, {line_no, col_start, _}, atom_or_charlist, _, _}) do - position_tuple(atom_or_charlist, line_no, col_start) - end + def position({:bin_string, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end - def position({_, {line_no, col_start, _}, atom_or_charlist, _}) do - position_tuple(atom_or_charlist, line_no, col_start) - end + def position({:list_string, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end - def position({:bin_string, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + def position({:bin_heredoc, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_heredoc(atom_or_charlist, line_no, col_start) + end - def position({:list_string, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + def position({:list_heredoc, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_heredoc(atom_or_charlist, line_no, col_start) + end - def position({:bin_heredoc, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple_for_heredoc(atom_or_charlist, line_no, col_start) - end + def position({:atom_unsafe, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end + + # Elixir >= 1.10.0 tuple syntax + def position({:sigil, {line_no, col_start, nil}, _, atom_or_charlist, _list, _number, _binary}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end - def position({:atom_unsafe, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + # Elixir >= 1.9.0 tuple syntax + def position({{line_no, col_start, nil}, {_line_no2, _col_start2, nil}, atom_or_charlist}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end - # Elixir >= 1.10.0 tuple syntax - def position( - {:sigil, {line_no, col_start, nil}, _, atom_or_charlist, _list, _number, _binary} - ) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + def position({:kw_identifier_unsafe, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) + end - # Elixir >= 1.9.0 tuple syntax - def position({{line_no, col_start, nil}, {_line_no2, _col_start2, nil}, atom_or_charlist}) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + # Elixir < 1.9.0 tuple syntax + def position({_, {line_no, col_start, _}, atom_or_charlist}) do + position_tuple(atom_or_charlist, line_no, col_start) + end - def position({:kw_identifier_unsafe, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple_for_quoted_string(atom_or_charlist, line_no, col_start) - end + def position({atom_or_charlist, {line_no, col_start, _}}) do + position_tuple(atom_or_charlist, line_no, col_start) + end - # Elixir < 1.9.0 tuple syntax - def position({_, {line_no, col_start, _}, atom_or_charlist}) do - position_tuple(atom_or_charlist, line_no, col_start) - end + # interpolation + def position({{line_no, col_start, _}, list}) when is_list(list) do + {line_no, col_start, line_no_end, col_end} = + position_tuple_for_quoted_string(list, line_no, col_start) - def position({atom_or_charlist, {line_no, col_start, _}}) do - position_tuple(atom_or_charlist, line_no, col_start) - end + {line_no, col_start, line_no_end, col_end} + end - # interpolation - def position({{line_no, col_start, _}, list}) when is_list(list) do - {line_no, col_start, line_no_end, col_end} = - position_tuple_for_quoted_string(list, line_no, col_start) + # - {line_no, col_start, line_no_end, col_end} - end + defp position_tuple(list, line_no, col_start) when is_list(list) do + binary = to_string(list) + col_end = col_start + String.length(binary) - # + {line_no, col_start, line_no, col_end} + end - defp position_tuple(list, line_no, col_start) when is_list(list) do - binary = to_string(list) - col_end = col_start + String.length(binary) + defp position_tuple(atom, line_no, col_start) when is_atom(atom) do + binary = to_string(atom) + col_end = col_start + String.length(binary) - {line_no, col_start, line_no, col_end} - end + {line_no, col_start, line_no, col_end} + end - defp position_tuple(atom, line_no, col_start) when is_atom(atom) do - binary = to_string(atom) - col_end = col_start + String.length(binary) + defp position_tuple(number, line_no, col_start) when is_number(number) do + binary = to_string([number]) + col_end = col_start + String.length(binary) - {line_no, col_start, line_no, col_end} - end + {line_no, col_start, line_no, col_end} + end - defp position_tuple(number, line_no, col_start) when is_number(number) do - binary = to_string([number]) - col_end = col_start + String.length(binary) + defp position_tuple(_, _line_no, _col_start), do: nil - {line_no, col_start, line_no, col_end} - end + defp position_tuple_for_heredoc(list, line_no, col_start) + when is_list(list) do + # add 3 for """ (closing double quote) + {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) - defp position_tuple(_, _line_no, _col_start), do: nil + col_end = col_end + 3 - defp position_tuple_for_heredoc(list, line_no, col_start) - when is_list(list) do - # add 3 for """ (closing double quote) - {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) + {line_no, col_start, line_no_end, col_end} + end - col_end = col_end + 3 + @doc false + def position_tuple_for_quoted_string(list, line_no, col_start) + when is_list(list) do + # add 1 for " (closing double quote) + {line_no_end, col_end, terminator} = convert_to_col_end(line_no, col_start, list) - {line_no, col_start, line_no_end, col_end} - end + {line_no_end, col_end} = + case terminator do + :eol -> + # move to next line + {line_no_end + 1, 1} - @doc false - def position_tuple_for_quoted_string(list, line_no, col_start) - when is_list(list) do - # add 1 for " (closing double quote) - {line_no_end, col_end, terminator} = convert_to_col_end(line_no, col_start, list) + _ -> + # add 1 for " (closing double quote) + {line_no_end, col_end + 1} + end - {line_no_end, col_end} = - case terminator do - :eol -> - # move to next line - {line_no_end + 1, 1} + {line_no, col_start, line_no_end, col_end} + end - _ -> - # add 1 for " (closing double quote) - {line_no_end, col_end + 1} - end + # - {line_no, col_start, line_no_end, col_end} - end + defp convert_to_col_end(line_no, col_start, list) when is_list(list) do + Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) + end - # + # Elixir < 1.9.0 + # + # {{1, 25, 32}, [{:identifier, {1, 27, 31}, :name}]} + defp convert_to_col_end(_, _, {{line_no, col_start, _}, list}) do + {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) - defp convert_to_col_end(line_no, col_start, list) when is_list(list) do - Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) - end - - # Elixir < 1.9.0 - # - # {{1, 25, 32}, [{:identifier, {1, 27, 31}, :name}]} - defp convert_to_col_end(_, _, {{line_no, col_start, _}, list}) do - {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) - - # add 1 for } (closing parens of interpolation) - col_end = col_end + 1 - - {line_no_end, col_end, :interpolation} - end - - # Elixir >= 1.9.0 - # - # {{1, 25, nil}, {1, 31, nil}, [{:identifier, {1, 27, nil}, :name}]} - defp convert_to_col_end( - _, - _, - {{line_no, col_start, nil}, {_line_no2, _col_start2, nil}, list} - ) do - {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) - - # add 1 for } (closing parens of interpolation) - col_end = col_end + 1 - - {line_no_end, col_end, :interpolation} - end - - defp convert_to_col_end(_, _, {:eol, {line_no, col_start, _}}) do - {line_no, col_start, :eol} - end - - defp convert_to_col_end(_, _, {value, {line_no, col_start, _}}) do - {line_no, to_col_end(col_start, value), nil} - end - - defp convert_to_col_end(_, _, {:bin_string, {line_no, col_start, nil}, list}) - when is_list(list) do - # add 2 for opening and closing " - {line_no, col_end, terminator} = - Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) - - {line_no, col_end + 2, terminator} - end - - defp convert_to_col_end(_, _, {:bin_string, {line_no, col_start, nil}, value}) do - # add 2 for opening and closing " - {line_no, to_col_end(col_start, value, 2), :bin_string} - end - - defp convert_to_col_end(_, _, {:list_string, {line_no, col_start, nil}, value}) do - # add 2 for opening and closing ' - {line_no, to_col_end(col_start, value, 2), :bin_string} - end - - defp convert_to_col_end(_, _, {_, {line_no, col_start, nil}, list}) - when is_list(list) do - Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) - end + # add 1 for } (closing parens of interpolation) + col_end = col_end + 1 - defp convert_to_col_end(_, _, {_, {line_no, col_start, nil}, value}) do - {line_no, to_col_end(col_start, value), nil} - end + {line_no_end, col_end, :interpolation} + end - defp convert_to_col_end(_, _, {:aliases, {line_no, col_start, _}, list}) do - value = Enum.map(list, &to_string/1) + # Elixir >= 1.9.0 + # + # {{1, 25, nil}, {1, 31, nil}, [{:identifier, {1, 27, nil}, :name}]} + defp convert_to_col_end( + _, + _, + {{line_no, col_start, nil}, {_line_no2, _col_start2, nil}, list} + ) do + {line_no_end, col_end, _terminator} = convert_to_col_end(line_no, col_start, list) - {line_no, to_col_end(col_start, value), nil} - end + # add 1 for } (closing parens of interpolation) + col_end = col_end + 1 - defp convert_to_col_end(_, _, {_, {line_no, col_start, _}, value}) do - {line_no, to_col_end(col_start, value), nil} - end + {line_no_end, col_end, :interpolation} + end - defp convert_to_col_end(_, _, {:sigil, {line_no, col_start, nil}, _, list, _, _}) - when is_list(list) do - Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) - end - - # Elixir >= 1.11 - defp convert_to_col_end( - _, - _, - {:sigil, {line_no, col_start, nil}, _, list, _list, _number, _binary} - ) - when is_list(list) do + defp convert_to_col_end(_, _, {:eol, {line_no, col_start, _}}) do + {line_no, col_start, :eol} + end + + defp convert_to_col_end(_, _, {value, {line_no, col_start, _}}) do + {line_no, to_col_end(col_start, value), nil} + end + + defp convert_to_col_end(_, _, {:bin_string, {line_no, col_start, nil}, list}) + when is_list(list) do + # add 2 for opening and closing " + {line_no, col_end, terminator} = Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) - end - defp convert_to_col_end(_, _, {:sigil, {line_no, col_start, nil}, _, value, _, _}) do - {line_no, to_col_end(col_start, value), nil} - end + {line_no, col_end + 2, terminator} + end + + defp convert_to_col_end(_, _, {:bin_string, {line_no, col_start, nil}, value}) do + # add 2 for opening and closing " + {line_no, to_col_end(col_start, value, 2), :bin_string} + end + + defp convert_to_col_end(_, _, {:list_string, {line_no, col_start, nil}, value}) do + # add 2 for opening and closing ' + {line_no, to_col_end(col_start, value, 2), :bin_string} + end + + defp convert_to_col_end(_, _, {_, {line_no, col_start, nil}, list}) + when is_list(list) do + Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) + end + + defp convert_to_col_end(_, _, {_, {line_no, col_start, nil}, value}) do + {line_no, to_col_end(col_start, value), nil} + end + + defp convert_to_col_end(_, _, {:aliases, {line_no, col_start, _}, list}) do + value = Enum.map(list, &to_string/1) + + {line_no, to_col_end(col_start, value), nil} + end - defp convert_to_col_end(line_no, col_start, value) do - {line_no, to_col_end(col_start, value), nil} - end + defp convert_to_col_end(_, _, {_, {line_no, col_start, _}, value}) do + {line_no, to_col_end(col_start, value), nil} + end - # + defp convert_to_col_end(_, _, {:sigil, {line_no, col_start, nil}, _, list, _, _}) + when is_list(list) do + Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) + end + + # Elixir >= 1.11 + defp convert_to_col_end( + _, + _, + {:sigil, {line_no, col_start, nil}, _, list, _list, _number, _binary} + ) + when is_list(list) do + Enum.reduce(list, {line_no, col_start, nil}, &reduce_to_col_end/2) + end - defp reduce_to_col_end(value, {current_line_no, current_col_start, _}) do - convert_to_col_end(current_line_no, current_col_start, value) - end + defp convert_to_col_end(_, _, {:sigil, {line_no, col_start, nil}, _, value, _, _}) do + {line_no, to_col_end(col_start, value), nil} + end + + defp convert_to_col_end(line_no, col_start, value) do + {line_no, to_col_end(col_start, value), nil} + end + + # + + defp reduce_to_col_end(value, {current_line_no, current_col_start, _}) do + convert_to_col_end(current_line_no, current_col_start, value) + end - # + # - def to_col_end(col_start, value, add \\ 0) do - col_start + String.length(to_string(value)) + add - end + def to_col_end(col_start, value, add \\ 0) do + col_start + String.length(to_string(value)) + add end end diff --git a/.deps/credo/lib/credo/execution.ex b/.deps/credo/lib/credo/execution.ex @@ -422,7 +422,16 @@ defmodule Credo.Execution do Credo.Execution.get_assign(exec, "foo", 42) # => 42 """ - def get_assign(exec, name, default \\ nil) do + def get_assign(exec, name_or_list, default \\ nil) + + def get_assign(exec, path, default) when is_list(path) do + case get_in(exec.assigns, path) do + nil -> default + value -> value + end + end + + def get_assign(exec, name, default) do Map.get(exec.assigns, name, default) end @@ -432,10 +441,29 @@ defmodule Credo.Execution do Credo.Execution.put_assign(exec, "foo", 42) # => %Credo.Execution{...} """ + def put_assign(exec, name_or_list, value) + + def put_assign(exec, path, value) when is_list(path) do + %__MODULE__{exec | assigns: do_put_nested_assign(exec.assigns, path, value)} + end + def put_assign(exec, name, value) do %__MODULE__{exec | assigns: Map.put(exec.assigns, name, value)} end + defp do_put_nested_assign(map, [last_key], value) do + Map.put(map, last_key, value) + end + + defp do_put_nested_assign(map, [next_key | rest], value) do + new_map = + map + |> Map.get(next_key, %{}) + |> do_put_nested_assign(rest, value) + + Map.put(map, next_key, new_map) + end + # Config Files @doc false @@ -485,6 +513,13 @@ defmodule Credo.Execution do end @doc """ + Returns all issues grouped by filename for the given `exec` struct. + """ + def get_issues_grouped_by_filename(exec) do + ExecutionIssues.to_map(exec) + end + + @doc """ Returns all issues for the given `exec` struct that relate to the given `filename`. """ def get_issues(exec, filename) do diff --git a/.deps/credo/lib/credo/execution/execution_timing.ex b/.deps/credo/lib/credo/execution/execution_timing.ex @@ -29,7 +29,7 @@ defmodule Credo.Execution.ExecutionTiming do @doc """ Returns the current timestamp in the same format (microseconds) as the returned starting times of `run/1`. """ - def now(), do: :os.system_time(:microsecond) + def now, do: :os.system_time(:microsecond) @doc """ Runs the given `fun` and returns a tuple of `{started_at, duration, result}`. diff --git a/.deps/credo/lib/credo/execution/task.ex b/.deps/credo/lib/credo/execution/task.ex @@ -63,8 +63,8 @@ defmodule Credo.Execution.Task do import Credo.Execution - alias Credo.Execution alias Credo.CLI.Output.UI + alias Credo.Execution @impl true def call(%Execution{halted: false} = exec) do diff --git a/.deps/credo/lib/credo/execution/task/assign_exit_status_for_issues.ex b/.deps/credo/lib/credo/execution/task/assign_exit_status_for_issues.ex @@ -2,7 +2,8 @@ defmodule Credo.Execution.Task.AssignExitStatusForIssues do @moduledoc false use Credo.Execution.Task - use Bitwise + + import Bitwise def call(exec, _opts) do exit_status = diff --git a/.deps/credo/lib/credo/execution/task/convert_cli_options_to_config.ex b/.deps/credo/lib/credo/execution/task/convert_cli_options_to_config.ex @@ -3,8 +3,8 @@ defmodule Credo.Execution.Task.ConvertCLIOptionsToConfig do use Credo.Execution.Task - alias Credo.ConfigBuilder alias Credo.CLI.Output.UI + alias Credo.ConfigBuilder @exit_status Credo.CLI.ExitStatus.config_parser_error() diff --git a/.deps/credo/lib/credo/execution/task/write_debug_report.ex b/.deps/credo/lib/credo/execution/task/write_debug_report.ex @@ -6,8 +6,8 @@ defmodule Credo.Execution.Task.WriteDebugReport do use Credo.Execution.Task - alias Credo.Execution.ExecutionTiming alias Credo.CLI.Output.UI + alias Credo.Execution.ExecutionTiming def call(%Credo.Execution{debug: true} = exec, _opts) do Logger.flush() diff --git a/.deps/credo/lib/credo/priority.ex b/.deps/credo/lib/credo/priority.ex @@ -78,7 +78,7 @@ defmodule Credo.Priority do |> Enum.slice(0..(length(names) - 2)) |> Enum.join(".") - mod_prio = lookup[mod_name] + mod_prio = lookup[mod_name] || 0 {scope_name, prio + mod_prio} else diff --git a/.deps/credo/lib/credo/test/case.ex b/.deps/credo/lib/credo/test/case.ex @@ -132,9 +132,9 @@ defmodule Credo.Test.Case do end end + alias Credo.Test.Assertions alias Credo.Test.CheckRunner alias Credo.Test.SourceFiles - alias Credo.Test.Assertions @doc """ Refutes the presence of any issues. diff --git a/.deps/credo/mix.exs b/.deps/credo/mix.exs @@ -1,7 +1,7 @@ defmodule Credo.Mixfile do use Mix.Project - @version "1.6.4" + @version "1.6.7" def project do [ @@ -31,12 +31,23 @@ defmodule Credo.Mixfile do extra_section: "GUIDES", assets: "guides/assets", formatters: ["html"], + nest_modules_by_prefix: nest_modules_by_prefix(), groups_for_modules: groups_for_modules(), extras: extras(), groups_for_extras: groups_for_extras() ] end + defp nest_modules_by_prefix do + [ + Credo.Check.Design, + Credo.Check.Readability, + Credo.Check.Refactor, + Credo.Check.Warning, + Credo.Check.Consistency + ] + end + defp extras do [ "CHANGELOG.md", @@ -132,7 +143,7 @@ defmodule Credo.Mixfile do defp deps do [ {:file_system, "~> 0.2.8"}, - {:bunt, "~> 0.2.0"}, + {:bunt, "~> 0.2.1"}, {:jason, "~> 1.0"}, {:ex_doc, "~> 0.25", only: :dev, runtime: false}, {:excoveralls, "~> 0.10", only: :test}, diff --git a/mix.lock b/mix.lock @@ -1,13 +1,13 @@ %{ "absinthe": {:hex, :absinthe, "1.7.0", "36819e7b1fd5046c9c734f27fe7e564aed3bda59f0354c37cd2df88fd32dd014", [:mix], [{:dataloader, "~> 1.0.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0 or ~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "566a5b5519afc9b29c4d367f0c6768162de3ec03e9bf9916f9dc2bcbe7c09643"}, "absinthe_plug": {:hex, :absinthe_plug, "1.5.8", "38d230641ba9dca8f72f1fed2dfc8abd53b3907d1996363da32434ab6ee5d6ab", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bbb04176647b735828861e7b2705465e53e2cf54ccf5a73ddd1ebd855f996e5a"}, - "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"}, + "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"}, "castore": {:hex, :castore, "0.1.18", "deb5b9ab02400561b6f5708f3e7660fc35ca2d51bfc6a940d2f513f89c2975fc", [:mix], [], "hexpm", "61bbaf6452b782ef80b33cdb45701afbcf0a918a45ebe7e73f1130d661e66a06"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, "cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"}, - "credo": {:hex, :credo, "1.6.4", "ddd474afb6e8c240313f3a7b0d025cc3213f0d171879429bf8535d7021d9ad78", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "c28f910b61e1ff829bffa056ef7293a8db50e87f2c57a9b5c3f57eee124536b7"}, + "credo": {:hex, :credo, "1.6.7", "323f5734350fd23a456f2688b9430e7d517afb313fbd38671b8a4449798a7854", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "41e110bfb007f7eda7f897c10bf019ceab9a0b269ce79f015d54b0dcf4fc7dd3"}, "db_connection": {:hex, :db_connection, "2.4.2", "f92e79aff2375299a16bcb069a14ee8615c3414863a6fef93156aee8e86c2ff3", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4fe53ca91b99f55ea249693a0229356a08f4d1a7931d8ffa79289b145fe83668"}, "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, "dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"},