LexCredo.Check.Design.NoNestedModules (LexCredo v0.1.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

Do not nest module definitions inside other modules.

Nested modules can cause cyclic dependencies and compilation errors. Each module should live in its own file.

# BAD
defmodule Outer do
  defmodule Inner do
    # ...
  end
end

# GOOD — separate files, separate modules
defmodule Outer do
  # ...
end

defmodule Outer.Inner do
  # ...
end

Check-Specific Parameters

Use the following parameters to configure this check:

:exclude_test_files

When true, skips test files. Default: true. Set to false to also flag nested modules in test helpers.

This parameter defaults to true.

General Parameters

Like with all checks, general params can be applied.

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