rebar.config

{minimum_otp_vsn, "21.0"}.

{erl_opts,
 [debug_info,
  warn_export_all,
  warn_export_vars,
  warn_missing_spec,
  warn_untyped_record,
  warn_unused_record,
  warn_bif_clash,
  warn_obsolete_guard,
  warn_unused_vars,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_deprecated_function]}.

{xref_checks,
 [undefined_function_calls,
  undefined_functions,
  locals_not_used,
  deprecated_function_calls,
  deprecated_functions]}.

{dialyzer,
 [{warnings,
   [
    unmatched_returns,
    error_handling,
    race_conditions,
    unknown
   ]}
 ]}.

{elvis_output_format, plain}.

{elvis,
 [#{dirs => ["."],
    filter => "rebar.config",
    rules =>
        [{elvis_style, line_length, #{limit => 120, skip_comments => false}},
         {elvis_style, no_tabs},
         {elvis_style, no_trailing_whitespace}]},
  #{dirs => ["src"],
    filter => "*.erl",
    rules =>
        [{elvis_style, line_length, #{limit => 120, skip_comments => false}},
         {elvis_style, no_tabs},
         {elvis_style, no_trailing_whitespace},
         {elvis_style, macro_module_names},
         {elvis_style, operator_spaces, #{rules => [{right, ","}, {right, "++"}, {left, "++"}]}},
         {elvis_style, used_ignored_variable},
         {elvis_style, no_behavior_info},
         {elvis_style, module_naming_convention, #{regex => "^([a-z][a-z0-9]*_?)*(_SUITE)?$"}},
         {elvis_style, function_naming_convention, #{regex => "^[a-z][a-z0-9_]*$"}},
         {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 => []}},
         {elvis_style, no_common_caveats_call}]},
  #{dirs => ["src"],
    filter => "*.app.src",
    rules =>
        [{elvis_style, line_length, #{limit => 120, skip_comments => false}},
         {elvis_style, no_tabs},
         {elvis_style, no_trailing_whitespace}]},
  #{dirs => ["."],
    filter => "Makefile",
    ruleset => makefiles}
 ]}.

{profiles,
 [{test,
   [{erl_opts, [nowarn_export_all,
                nowarn_missing_spec]}
   ]},
  {lint,
   [{plugins,
     [{rebar3_lint, "0.1.10"}]}
   ]}
 ]}.

%% Local Variables:
%% mode: erlang
%% End:
%% vim: set filetype=erlang tabstop=8: