ForgeCredoChecks.NoInlineRegex (forge_credo_checks v0.7.0)

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 high and works with any version of Elixir.

Explanation

Define regex literals as module attributes instead of inline function-body sigils.

Why

Inline ~r and ~R sigils inside functions hide reusable parsing rules in implementation code. Module attributes give the pattern a name, keep related regexes near the top of the module, and make lexical searches for regex definitions reliable.

Bad

def valid?(value), do: value =~ ~r/^ok$/

def valid?(value) do
  Regex.match?(~r/^ok$/, value)
end

Good

@valid_value ~r/^ok$/

def valid?(value), do: value =~ @valid_value

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.