Elvis - an Erlang linter

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

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.

Some kind soul got to it before I did :slight_smile:

1 Like