Credence (credence v0.6.0)

Copy Markdown

Credence — Semantic Linter for Elixir.

Routes analysis and fixing through three phases:

  1. Syntax — string-level fixes for code that won't parse
  2. Semantic — fixes for compiler warnings (unused vars, undefined fns)
  3. Pattern — AST-level anti-pattern rules (the bulk of Credence)

Each phase has its own Rule behaviour and discovers rules automatically.

Summary

Functions

analyze(code_string, opts \\ [])

@spec analyze(
  String.t(),
  keyword()
) :: %{valid: boolean(), issues: [Credence.Issue.t()]}

fix(code_string, opts \\ [])

@spec fix(
  String.t(),
  keyword()
) :: %{
  code: String.t(),
  issues: [Credence.Issue.t()],
  applied_rules: [{module(), non_neg_integer() | :reverted}]
}