Behaviours: hank_rule.
A rule to detect hrl attributes used in just one module: Attributes supported: -define -record It will suggest to place those attributes inside the module to avoid having (and including) a hrl file.
This rule assumes that hrl files will not be used outside your project. If you are writing a library that requires your clients to use some of your header files and attributes, you can add an ignore rule in rebar.config for it.
| analyze/2 | This builds a list of header files with its attributes. |
| ignored/2 | Rule ignore specifications. |
analyze(FilesAndASTs::hank_rule:asts(), Context::hank_context:t()) -> [hank_rule:result()]
This builds a list of header files with its attributes. Then traverse the file ASTs mapping their macros and records And checks whether they were used just once.
ignored(RecordName::hank_rule:ignore_pattern(), MacroName::term()) -> false
Rule ignore specifications. Example:
-hank([{single_use_hrl_attrs,
["ALL", %% Will ignore ?ALL, ?ALL() and ?ALL(X)
{"ZERO", 0}, %% Will ignore ?ZERO() but not ?ZERO(X) nor ?ZERO
{"ONE", 1}, %% Will ignore ?ONE(X) but not ?ONE() nor ?ONE
{"NONE", none}, %% Will ignore ?NONE but not ?NONE(X) nor ?NONE()
record_name %% Will ignore #record_name
]},
Generated by EDoc