Elvis
I’m opening the main thread here for the Elvis-related libraries:
elvis_core | Hex - The heart of all Elvis libraries, where all the rules are implemented.
elvis | Hex - The CLI that you can use to run Elvis in your projects if you don’t use rebar3 or erlang.mk .
rebar3_lint | Hex - The plugin that you can use to run Elvis in your rebar3-managed projects.
https://github.com/inaka/elvis.mk - The plugin that you can use to run Elvis in your elrang.mk-bound projects.
What’s Elvis?
Elvis is an Erlang linter. You can find more about it in its repository: GitHub - inaka/elvis_core: The core of an Erlang linter
Or watching this somewhat old video:
8 Likes
The newest version of Elvis is published!!
You can find all the new stuff in elvis_core docs .
It includes 6 new rules, fixes for plenty of others, support for OTP28 (with some rules for the new constructs, too), modernized and expanded documentation , and much more!
These are the Hex releases:
Thanks @belltoy , @williamthome , @pablobrud and all the other contributors!
And congratulations to the maintainers (@paulo-f-oliveira , @bormilan1 ) for their awesome job!
9 Likes
Fwiw, katana_code | Hex (now 2.4.1) also got a release to fully support OTP 28.
2 Likes
phild
June 23, 2025, 10:20am
4
Good stuff.
I might have spotted an issue in the documentation:
There is a rule named No &
, the text of which which says:
Use of $
should be avoided.
The config option is:
{elvis_style, no_dollar_space, #{}}
Thus it looks like it is the title that is incorrect.
2 Likes
You’re 100% correct. An bug report and/or a PR to fix this would be highly appreciated.
phild
June 24, 2025, 8:15am
6
Some kind soul got to it before I did
1 Like