%% -*- mode: erlang -*-
{erl_opts, [
    debug_info,

    bin_opt_info,

    warn_bif_clash,
    warn_export_all,
    warn_obsolete_guard,

    warn_unused_import,

    warn_unused_record,
    warn_untyped_record,

    warn_shadow_vars,
    warn_unused_vars,
    warn_export_vars,
    warn_exported_vars,

    warn_unused_function,
    warn_deprecated_function,

    strict_validation
    %, warn_missing_spec
]}.

{deps, []}.

{project_plugins, [
    erlfmt,
    rebar3_proper,
    rebar3_bench
]}.

{erlfmt, [
    write,
    {print_width, 120},
    {files, [
        "{src,include,test}/*.{hrl,erl}",
        "src/*.app.src",
        "rebar.config"
    ]}
]}.

{profiles, [
    {docs, [
        {erl_opts, [nowarn_export_all]}
    ]},
    {test, [
        {erl_opts, [nowarn_export_all]},
        {deps, [proper]}
    ]}
]}.

{eunit_opts, [
    {report, {eunit_progress, [colored, profile]}},
    {print_depth, 100}
]}.
{eunit_compile_opts, [export_all]}.

{ct_opts, []}.
{ct_compile_opts, [{i, "./include/"}]}.

{cover_enabled, true}.
{cover_print_enabled, true}.

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

{dialyzer, [
    {warnings, [unknown]},
    {plt_apps, all_deps}
]}.
