Tools for code analysis are commonly called linters. A linter is a program dedicated to automatically identify code smells, bugs, vulnerabilities, formatting issues, … They typically use static analysis for that purpose. Most of the linters are open source and maintained by a community of developers. A linter is often dedicated to a single language. Some tools aggregate multiple linters, such as SonarQube or Megalinter, to cover multiple programming languages.
Linters are used by developers while coding, before committing, and during CI/CD process. They are configurable to let developers decide which rules to apply.
This infographic is not exhaustive and you can find more tools for code analysis on platforms like Github. However, we put effort to identify those that are, in May 2021, actively maintained.
The PDF version is available here to get all linters’ links.
The PNG version is available below, click to zoom.