# rrrene/credo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rrrene-credo).**

5,193 stars · 448 forks · Elixir · MIT

## Links

- GitHub: https://github.com/rrrene/credo
- Homepage: http://credo-ci.org/
- awesome-repositories: https://awesome-repositories.com/repository/rrrene-credo.md

## Description

Credo is a static analysis tool and linter for Elixir. It functions as a code quality analyzer that scans source code to identify stylistic inconsistencies, common mistakes, and potential security vulnerabilities.

The tool provides a customizable framework for defining and testing specialized rules to enforce project-specific coding standards. It identifies complex code fragments and duplication to highlight opportunities for refactoring and simplification.

Its capabilities cover automated code reviews, the enforcement of Elixir coding standards, and real-time developer feedback through editor integrations.

## Tags

### Programming Languages & Runtimes

- [Elixir Static Analyzers](https://awesome-repositories.com/f/programming-languages-runtimes/elixir-static-analyzers.md) — Provides specialized static analysis for scanning Elixir source code to find stylistic inconsistencies and common mistakes.

### Development Tools & Productivity

- [Code Linters](https://awesome-repositories.com/f/development-tools-productivity/code-linters.md) — Identifies and reports on patterns in Elixir source code to enforce consistent standards and improve quality.
- [Code Refactoring Tools](https://awesome-repositories.com/f/development-tools-productivity/code-refactoring-tools.md) — Assists in restructuring and simplifying complex Elixir code fragments without changing external behavior.
- [Editor Feedback Systems](https://awesome-repositories.com/f/development-tools-productivity/editor-feedback-systems.md) — Provides immediate visual cues and automated corrections for code issues directly within the development environment. ([source](https://cdn.jsdelivr.net/gh/rrrene/credo@main/README.md))
- [IDE Real-time Feedback](https://awesome-repositories.com/f/development-tools-productivity/ide-real-time-feedback.md) — Surfaces analysis results and remediation guidance immediately within the code editor during the writing process.
- [AST Node Location Mapping](https://awesome-repositories.com/f/development-tools-productivity/source-map-generators/ast-node-location-mapping.md) — Maps abstract syntax tree nodes back to original character offsets to pinpoint the exact location of errors.

### Security & Cryptography

- [Source Code Vulnerability Scanning](https://awesome-repositories.com/f/security-cryptography/source-code-vulnerability-scanning.md) — Scans source code for security vulnerabilities, coding flaws, and stylistic inconsistencies using predefined logic checks.

### Software Engineering & Architecture

- [Coding Standards Enforcement](https://awesome-repositories.com/f/software-engineering-architecture/coding-standards-enforcement.md) — Provides automated systems for maintaining project guidelines and enforcing consistent Elixir coding standards.
- [Custom Analysis Rules](https://awesome-repositories.com/f/software-engineering-architecture/custom-analysis-rules.md) — Offers a framework for defining metadata-driven custom rules to identify specific patterns in source code. ([source](https://hexdocs.pm/credo))
- [Pluggable Rule Sets](https://awesome-repositories.com/f/software-engineering-architecture/schema-validated-rule-sets/pluggable-rule-sets.md) — Provides modular collections of validation constraints that can be extended via custom rule definitions.
- [Static Code Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/static-code-analyzers.md) — Parses Elixir code to identify structures and map them to tokens for consistency and quality analysis. ([source](https://cdn.jsdelivr.net/gh/rrrene/credo@main/README.md))
- [Code Complexity Metrics](https://awesome-repositories.com/f/software-engineering-architecture/code-complexity-metrics.md) — Calculates structural indicators and complexity metrics to flag overly complex code fragments for refactoring.
- [Syntax Tree Analysis](https://awesome-repositories.com/f/software-engineering-architecture/syntax-tree-analysis.md) — Implements techniques for parsing and comparing code based on abstract syntax trees to identify stylistic deviations.

### Testing & Quality Assurance

- [Code Quality Analyzers](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/code-quality-tools/code-quality-analyzers.md) — Categorizes code patterns and configuration issues by severity to enforce project-specific quality standards.
- [Static Code Analysis](https://awesome-repositories.com/f/testing-quality-assurance/static-code-analysis.md) — Scans source code to detect bugs, vulnerabilities, and maintainability issues without executing the program.
- [Automated Code Review](https://awesome-repositories.com/f/testing-quality-assurance/code-quality-review/automated-code-review.md) — Analyzes source code to identify bugs and security vulnerabilities as part of an automated review process. ([source](https://cdn.jsdelivr.net/gh/rrrene/credo@main/README.md))

### Part of an Awesome List

- [Code Analysis and Refactoring](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-refactoring.md) — Parses and inspects the codebase to highlight complex fragments and suggest simpler implementation logic. ([source](https://hexdocs.pm/credo))
- [Code Analysis](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis.md) — Static code analysis for consistency and style.
- [Static Analysis Tools](https://awesome-repositories.com/f/awesome-lists/devtools/static-analysis-tools.md) — Elixir static analysis tool focusing on consistency and teaching.
