diff --git a/src/elvis_style.erl b/src/elvis_style.erl index 312f8d4..fc41a93 100644 --- a/src/elvis_style.erl +++ b/src/elvis_style.erl @@ -1175,7 +1175,7 @@ atom_naming_convention(Config, Target, RuleConfig) -> ForbiddenEnclosedRegex = specific_or_default(option(forbidden_enclosed_regex, RuleConfig, atom_naming_convention), ForbiddenRegex), - AtomNodes = elvis_code:find(fun is_atom_node/1, Root, #{traverse => all, mode => node}), + AtomNodes = elvis_code:find(fun is_atom_node/1, Root, #{traverse => all, mode => zipper}), check_atom_names(Regex, ForbiddenRegex, RegexEnclosed, @@ -1800,7 +1800,10 @@ re_compile_for_atom_type(true = _IsEnclosed, _Regex, RegexEnclosed) -> %% @private is_atom_node(MaybeAtom) -> - ktn_code:type(MaybeAtom) =:= atom. + ktn_code:type( + zipper:node(MaybeAtom)) + =:= atom + andalso not check_parent_remote(MaybeAtom). %% Variables name %% @private @@ -2141,6 +2144,16 @@ check_parent_match_or_macro(Zipper) -> end end. +%% @private +check_parent_remote(Zipper) -> + case zipper:up(Zipper) of + undefined -> + false; + ParentZipper -> + Parent = zipper:node(ParentZipper), + remote == ktn_code:type(Parent) + end. + %% State record in OTP module %% @private diff --git a/test/examples/atom_naming_convention_utils.erl b/test/examples/atom_naming_convention_utils.erl new file mode 100644 index 0000000..2888958 --- /dev/null +++ b/test/examples/atom_naming_convention_utils.erl @@ -0,0 +1,5 @@ +-module(atom_naming_convention_utils). + +-export([thisIsIgnored/0]). + +thisIsIgnored() -> ok. diff --git a/test/examples/pass_atom_naming_convention.erl b/test/examples/pass_atom_naming_convention.erl index 9536ef8..90e14dd 100644 --- a/test/examples/pass_atom_naming_convention.erl +++ b/test/examples/pass_atom_naming_convention.erl @@ -11,4 +11,5 @@ for_test() -> non200, % valid, even without underscores valid_200even_if_numb3rs_appear_between_letters, blahblah_SUITE, - x. + x, + atom_naming_convention_utils:thisIsIgnored().