[ {elvis, [ {verbose, true}, {config, [ #{ dirs => ["apps/**/src", "apps/**/include"], filter => "*.erl", ruleset => erl_files, rules => [ %% Common settings {elvis_text_style, line_length, #{limit => 120}}, {elvis_style, nesting_level, #{level => 3}}, {elvis_style, atom_naming_convention, #{ignore => [ff_pipeline]}}, {elvis_style, function_naming_convention, #{regex => "^[a-z]([a-z0-9]*_?)*$"}}, {elvis_style, no_if_expression, disable}, {elvis_style, state_record_and_type, disable}, {elvis_style, god_modules, #{ignore => [ff_withdrawal]}}, %% Project settings % Verbose authorization code triggers this otherwise {elvis_style, dont_repeat_yourself, #{ min_complexity => 32, ignore => [ ff_source_machinery_schema, ff_deposit_machinery_schema, ff_destination_machinery_schema, ff_identity_machinery_schema, ff_wallet_machinery_schema, ff_withdrawal_machinery_schema, ff_withdrawal_session_machinery_schema ] }} ] }, #{ dirs => ["apps/**/test"], filter => "*.erl", ruleset => erl_files, rules => [ {elvis_text_style, line_length, #{limit => 120}}, {elvis_style, nesting_level, #{level => 3}}, {elvis_style, no_if_expression, disable}, {elvis_style, invalid_dynamic_call, #{ignore => [ff_ct_provider_handler]}}, % We want to use `ct:pal/2` and friends in test code. {elvis_style, no_debug_call, disable}, % Assert macros can trigger use of ignored binding, yet we want them for better % readability. {elvis_style, used_ignored_variable, disable}, % Tests are usually more comprehensible when a bit more verbose. {elvis_style, dont_repeat_yourself, #{min_complexity => 50}}, {elvis_style, god_modules, disable} ] }, #{ dirs => ["."], filter => "Makefile", ruleset => makefiles }, #{ dirs => ["."], filter => "elvis.config", ruleset => elvis_config }, #{ dirs => [".", "apps/*"], filter => "rebar.config", ruleset => rebar_config, rules => [ {elvis_text_style, line_length, #{limit => 120}}, {elvis_text_style, no_tabs}, {elvis_text_style, no_trailing_whitespace}, %% Temporarily disabled till regex pattern is available {elvis_project, no_deps_master_rebar, disable} ] }, #{ dirs => ["apps/*/src"], filter => "*.app.src", rules => [ {elvis_text_style, line_length, #{limit => 120}}, {elvis_text_style, no_tabs}, {elvis_text_style, no_trailing_whitespace} ] } ]} ]} ].