diff --git a/src/elvis_config.erl b/src/elvis_config.erl index f29ce86..5c021ad 100644 --- a/src/elvis_config.erl +++ b/src/elvis_config.erl @@ -8,6 +8,7 @@ normalize/1, %% Geters dirs/1, + include_dirs/1, ignore/1, filter/1, files/1, @@ -27,6 +28,7 @@ -define(DEFAULT_CONFIG_PATH, "./elvis.config"). -define(DEFAULT_REBAR_CONFIG_PATH, "./rebar.config"). -define(DEFAULT_FILTER, "*.erl"). +-define(DEFAULT_INCLUDE_DIRS, ["include"]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Public @@ -116,6 +118,17 @@ dirs(_RuleGroup = #{dirs := Dirs}) -> dirs(#{}) -> []. +% Only get `include_dirs' value for erl files RuleGroup, discard other ones. +-spec include_dirs(Config::config() | map()) -> [string()]. +include_dirs(Config) when is_list(Config) -> + lists:flatmap(fun include_dirs/1, Config); +include_dirs(RuleGroup = #{ruleset := "erl_files"}) when is_map(RuleGroup) -> + maps:get(include_dirs, RuleGroup, ?DEFAULT_INCLUDE_DIRS); +include_dirs(RuleGroup = #{filter := "*.erl"}) when is_map(RuleGroup) -> + maps:get(include_dirs, RuleGroup, ?DEFAULT_INCLUDE_DIRS); +include_dirs(_) -> + []. + -spec ignore(config() | map()) -> [string()]. ignore(Config) when is_list(Config) -> lists:flatmap(fun ignore/1, Config);