View Source mix credo suggest

suggest suggests issues to fix in your code.

examples

Examples

$ mix credo
$ mix credo suggest                 # same thing, since it's the default command
$ mix credo --strict --format=json  # include low priority issues, output as JSON
$ mix credo suggest --help          # more options

$ mix credo suggest --format json
$ mix credo suggest lib/**/*.ex --only consistency --strict
$ mix credo suggest --checks-without-tag formatter --checks-without-tag controversial

command-line-switches

Command Line Switches

Name, shorthandDescription
--all, -aShow all issues for each category
--all-priorities, -AShow all issues including low priority ones
--checksOnly include checks that match the given comma-seperated patterns
--checks-with-tagOnly include checks that match the given tag
--checks-without-tagIgnore checks that match the given tag
--config-fileUse the given config file as Credo's config
--config-nameUse the given config instead of "default"
--enable-disabled-checksRe-enable disabled checks that match the given comma-seperated patterns
--files-includedOnly include these files
--files-excludedExclude these files
--formatDisplay the list in a specific format (json, flycheck, or oneline)
--ignore-checksIgnore checks that match the given comma-seperated patterns
--ignoreAlias for --ignore-checks
--min-priorityMinimum priority to show issues
--mute-exit-statusExit with status zero even if there are issues
--onlyAlias for --checks
--strictAlias for --all-priorities
--verboseAdditionally print the check and the source code that raised the issue

descriptions

Descriptions

all

--all

Show all issues for each category

By default, Credo's report is limited to 5 issues per category.

$ mix credo --all

all-priorities-aliased-as-strict

--all-priorities (aliased as --strict)

Show all issues including low priority ones

By default, Credo's report is limited to high priority issues as indicated by the arrows (↑ ↗ → ↘ ↓) next to each issue.

$ mix credo --strict

checks-aliased-as-only

--checks (aliased as --only)

Only include checks that match the given comma-seperated patterns

# Run only checks where the name matches "readability" or "space" (case-insensitive),
# e.g. `Credo.Check.Readability.ModuleDoc` or `Credo.Check.Consistency.SpaceAroundOperators`
$ mix credo --only readability,space

The patterns are also compiled using Regex.compile/2, which allows for more complex queries:

# Run only checks where the name matches "readability" and "space"
# (case-insensitive), e.g. `Credo.Check.Readability.SpaceAfterCommas`
$ mix credo --only readability.+space

checks-with-tag

--checks-with-tag

Only include checks that match the given tag (can be used multiple times)

$ mix credo --checks-with-tag experimental --checks-with-tag controversial

checks-without-tag

--checks-without-tag

Ignore checks that match the given tag (can be used multiple times)

$ mix credo --checks-without-tag formatter

config-file

--config-file

Use the given config file as Credo's config

$ mix credo --config-file ./path/to/credo.exs

This disables Transitive configuration files and only the given config file is

config-name

--config-name

Use the given config instead of "default"

$ mix credo --config-name special-ci-config

enable-disabled-checks

--enable-disabled-checks

Re-enable disabled checks that match the given comma-seperated patterns

# Enable all disabled checks where the name matches "readability" or "space" (case-insensitive),
# e.g. `Credo.Check.Readability.ModuleDoc` or `Credo.Check.Consistency.SpaceAroundOperators`
$ mix credo --enable-disabled-checks readability,space

The patterns are also compiled using Regex.compile/2, which allows for more complex queries:

# Enable all previously disabled checks where the name matches "readability" and "space"
# (case-insensitive), e.g. `Credo.Check.Readability.SpaceAfterCommas`
$ mix credo --enable-disabled-checks readability.+space

# Enable *all* disabled checks by simply using:
$ mix credo --enable-disabled-checks .+

files-included

--files-included

Only include these files (accepts globs, can be used multiple times)

$ mix credo --files-included "./lib/**/*.ex" --files-included "./src/**/*.ex"

files-excluded

--files-excluded

Exclude these files (accepts globs, can be used multiple times)

$ mix credo --files-excluded "./test/**/*.exs"

format

--format

Display the list in a specific format (json, flycheck, or oneline)

$ mix credo --format json

ignore-checks-aliased-as-ignore

--ignore-checks (aliased as --ignore)

Ignore checks that match the given comma-seperated patterns

# Ignore checks where the name matches "readability" or "space" (case-insensitive),
# e.g. `Credo.Check.Readability.ModuleDoc` or `Credo.Check.Consistency.SpaceAroundOperators`
$ mix credo --ignore readability,space

The patterns are also compiled using Regex.compile/2, which allows for more complex queries:

# Ignore checks where the name matches "readability" and "space"
# (case-insensitive), e.g. `Credo.Check.Readability.SpaceAfterCommas`
$ mix credo --ignore readability.+space

ignore

--ignore

Alias for --ignore-checks

min-priority

--min-priority

Minimum priority to show issues (higher,high,normal,low,ignore or number)

$ mix credo --min-priority high

mute-exit-status

--mute-exit-status

Exit with status zero even if there are issues

$ mix credo --format json
# ...

$ echo $?
0

only

--only

Alias for --checks

strict

--strict

Alias for --all-priorities

verbose

--verbose

Additionally print the check and the source code that raised the issue

$ mix credo --verbose

# ...

┃ [W] ↗ There should be no calls to IO.inspect/1. [Credo.Check.Warning.IoInspect]
┃       lib/foo/bar.ex:121:6 #(Foo.Bar.run)
┃       |> IO.inspect(label: "Arguments given")
┃          ^^^^^^^^^^