A Scala compiler plugin for static code analysis that detects bugs, non-idiomatic code, and style violations.
Scapegoat is a Scala compiler plugin that performs static code analysis to identify bugs, non-idiomatic usage, and style violations in Scala code. It integrates into the build process and provides detailed reports to help developers improve code quality and catch issues early.
Scala developers and teams who want to enforce code quality standards, catch potential bugs, and maintain consistent coding practices across their projects.
Developers choose Scapegoat for its extensive set of inspections, seamless integration with build tools, and ability to complement other linters by focusing on a wide range of issues beyond just style, making it a comprehensive static analysis tool for Scala.
Scala compiler plugin for static code analysis
With over 120 built-in inspections for Scala 2, it catches a wide range of issues from potential bugs like unsafe type conversions to performance anti-patterns such as List.size on non-indexed sequences.
Works seamlessly with SBT, Maven, and Gradle via plugins or manual configuration, as shown in the README with detailed examples for each build tool.
Generates reports in multiple formats including HTML, XML, Markdown, and GitLab Code Quality, allowing teams to integrate findings into their preferred workflows.
Allows enabling or disabling specific inspections, overriding warning levels, and suppressing warnings via annotations or flags, providing fine-tuned analysis for different project needs.
The README clearly states only 5 inspections are available for Scala 3, making it ineffective for projects transitioning to or heavily using Scala 3's newer features.
Requires non-trivial compiler plugin configuration with specific flags and dependencies, especially for manual setups in Maven or Gradle, which can lead to errors and increased onboarding time.
The inspection list includes a 'todo: finish rest of detailed descriptions,' indicating gaps in documentation that hinder understanding and proper use of the tool.
Like many linters, it can flag intentional code or style choices as warnings, requiring manual suppression and potentially adding noise to the development process.
A PHP parser written in PHP
:sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript
Static Type Checker for Python
🐶 Automated code review tool integrated with any code analysis tools regardless of programming language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.