A comprehensive static analysis and linting tool for the D programming language.
D-Scanner is a static analysis and linting tool specifically designed for the D programming language. It analyzes D source code to enforce style guidelines, detect bugs, and improve code quality through automated checks and fixes. It serves as a comprehensive toolkit for maintaining clean and consistent D codebases.
D developers and teams who want to enforce coding standards, catch potential issues early, and integrate code quality checks into their CI/CD pipelines or editors.
Developers choose D-Scanner because it offers a wide range of D-specific analyses, auto-fixing capabilities, and flexible output formats, making it the go‑to tool for maintaining high‑quality D code with minimal manual effort.
Swiss-army knife for D source code
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enforces Phobos style guidelines with over 30 specific checks, including naming conventions, cyclomatic complexity, and const correctness, ensuring consistent D code.
Offers interactive and automatic fixes for issues like making functions const, with JSON output for tool integration, reducing manual refactoring effort.
Supports multiple output formats including JSON, GitHub Actions annotations, and custom formats, making it easy to integrate into CI/CD pipelines and editors.
Calculates token counts, SLOC, cyclomatic complexity, and generates CTags/ETags, providing valuable insights for code quality and navigation.
Building from source can be time-consuming with older D compiler versions, and configuration requires managing dscanner.ini files, adding initial overhead.
Import listing does not account for imports within mixins or version/static if blocks, which can be a significant limitation for complex D codebases.
Useful checks like documenting public functions or sorting imports are disabled by default, requiring manual configuration to enable, potentially leading to missed issues.