%% -*- erlang -*-
[
 {
   elvis,
   [
    {config,
     [
      #{dirs => ["src"],
        filter => "*.erl",
        rules => [   {elvis_text_style, line_length, #{ limit => 80 }}
                   , {elvis_text_style, no_trailing_whitespace}
                   , {elvis_style, operator_spaces,
                      #{ rules => [ {right,","}
                                  , {right,"+"}
                                  , {left,"+"}
                                  , {right,"*"}
                                  , {left,"*"}
                                  , {right,"--"}
                                  , {left,"--"}
                                  , {right,"++"}
                                  , {left,"++"}
                                  ]
                       }}
                   , {elvis_style, nesting_level,
                      #{ level => 3,
                         ignore => []
                       }}
                   , {elvis_style, god_modules,
                      #{ limit => 25,
                         ignore => [avro]
                       }}
                   , {elvis_style, no_nested_try_catch}
                   , {elvis_style, invalid_dynamic_call,
                      #{ignore => []
                       }}
                   , {elvis_style, used_ignored_variable}
                   , {elvis_style, no_behavior_info}
                   , {elvis_style, module_naming_convention,
                      #{ ignore => [],
                         regex => "^([a-z][a-z0-9]*_?)([a-z0-9]*_?)*$"
                       }}
                   , {elvis_style, function_naming_convention,
                      #{ regex => "^([a-z][a-z0-9]*_?)([a-z0-9]*_?)*$"
                       }}
                   , {elvis_style, variable_naming_convention,
                      #{ regex => "^_?([A-Z][0-9a-zA-Z_]*)$"
                       }}
                   , {elvis_style, state_record_and_type}
                   , {elvis_style, no_spec_with_records}
                   , {elvis_style, dont_repeat_yourself,
                      #{ min_complexity => 15
                       }}
                   , {elvis_style, no_debug_call,
                      #{ignore => [avro_decoder_hooks]}}

                 ]
       },
      #{dirs => ["test"],
        filter => "*.erl",
        rules => [ {elvis_text_style, line_length, #{ limit => 80 }}
                 , {elvis_text_style, no_trailing_whitespace}
                 ]
       }
     ]
    }
   ]
 }
].

%%%_* Emacs ====================================================================
%%% Local Variables:
%%% allout-layout: t
%%% erlang-indent-level: 2
%%% End:
