ExSlop.Check.Readability.DocFalseOnPublicFunction (ExSlop v0.4.2)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

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

Explanation

Multiple @doc false on public functions in the same module is a code smell — typically cargo-culted from Phoenix generators.

A single @doc false is a deliberate choice. But when an LLM sprays it across every function, it's hiding the API surface.

# bad — every public function has @doc false
defmodule MyAppWeb.UserController do
  @doc false
  def index(conn, _params), do: ...

  @doc false
  def show(conn, %{"id" => id}), do: ...

  @doc false
  def create(conn, %{"user" => params}), do: ...
end

# good — either document or make private
defmodule MyAppWeb.UserController do
  def index(conn, _params), do: ...
  def show(conn, %{"id" => id}), do: ...
end

Check-Specific Parameters

Use the following parameters to configure this check:

:min_count

Minimum @doc false count per module to trigger (default: 2).

This parameter defaults to 2.

General Parameters

Like with all checks, general params can be applied.

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