View Source Credo.Check.Readability.PredicateFunctionNames (Credo v1.7.2-rc.4)

This check has a base priority of high and works with any version of Elixir.

Explanation

Predicate functions/macros should be named accordingly:

  • For functions, they should end in a question mark.

    # preferred

    defp user?(cookie) do end

    defp has_attachment?(mail) do end

    # NOT preferred

    defp is_user?(cookie) do end

    defp is_user(cookie) do end

  • For guard-safe macros they should have the prefix is_ and not end in a question mark.

    # preferred

    defmacro is_user(cookie) do end

    # NOT preferred

    defmacro is_user?(cookie) do end

    defmacro user?(cookie) do end

Like all Readability issues, this one is not a technical concern. But you can improve the odds of others reading and liking your code by making it easier to follow.

Check-Specific Parameters

There are no specific parameters for this check.

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.