API Reference Credo v1.6.4

Modules

Credo builds upon four building blocks

Credo.CLI is the entrypoint for both the Mix task and the escript.

Command is used to describe commands which can be executed from the command line.

This module can be used to handle filenames given at the command line.

The Options struct represents the options given on the command line.

This module provides helper functions regarding command line output.

This module can be used to easily delegate print-statements for different formats to different modules.

This module provides functions used to create the UI.

Check modules represent the checks which are run during Credo's analysis.

ConfigComment structs represent comments which follow control Credo's behaviour.

A behavior for modules that walk through source files and identify consistency issues.

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

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

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

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

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

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

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

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

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

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

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

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

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

This module provides functions for handling parameters ("params") given to checks through .credo.exs (i.e. the Credo.ConfigFile).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This check has a base priority of high and requires Elixir < 1.7.0-dev.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This check has a base priority of high and requires Elixir < 1.8.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This check has a base priority of high and requires Elixir < 1.7.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Credo.Code contains a lot of utility or helper functions that deal with the analysis of - you guessed it - code.

This module provides helper functions to analyse blocks, e.g. the block taken by the if macro.

This module lets you strip charlists from source code.

This module lets you strip heredocs from source code.

This module provides helper functions to analyse modules, return the defined functions or module attributes.

This module provides helper functions to process names of functions, module attributes and modules.

This module provides helper functions to analyse the parameters taken by a function.

This is an internal Issue raised by Credo when it finds itself unable to parse the source code in a file.

This module provides helper functions to determine the scope name at a certain point in the analysed code.

This module lets you strip sigils from source code.

This module lets you strip strings from source code.

This module provides helper functions to analyse tokens returned by Credo.Code.to_tokens/1.

ConfigFile structs represent all loaded and merged config files in a run.

Every run of Credo is configured via an Credo.Execution struct, which is created and manipulated via the Credo.Execution module.

The ExecutionTiming module can help in timing the execution of code parts and storing those timing inside the Credo.Execution struct.

A Task is a step in a pipeline, which is given an Credo.Execution struct and must return one as well.

Issue structs represent all issues found during the code analysis.

IssueMeta provides helper functions for meta information which a check wants to pass to the issue_for(...) function, i.e. the current SourceFile and check params (by default).

Plugins are module which can provide additional functionality to Credo.

SourceFile structs represent a source file in the codebase.

This module is used to find and read all source files for analysis.

Conveniences for testing Credo custom checks and plugins.

Mix Tasks

Run code analysis (use --help for options)

Generate a new custom check for Credo

Generate a new config for Credo