As a wise man once said, "You can't please everyone", and that is true for code patterns. But don't you worry! You can fully customize Codacy to match your expectations.
A Code Pattern is an algorithm that Codacy uses to detect issues in your project.
1. Pattern details and filters
Each pattern has a title and a short description. To see a detailed explanation you can click on Show Details in the top right corner (mouse over the pattern and the Show Details option will appear):
The pattern explanation shows more detail about the issues it can detect and how to fix them.
You can filter the patterns by category using the side menu:
The issues detected by Codacy belong to 8 different categories:
Code Style - Code formatting and syntax problems. Ex: variable name style, enforce the use of brackets and quotation marks
Code Complexity - Highly complex methods and classes that should be refactored
Performance - Code that could have performance problems
Compatibility - Used mainly for frontend code, detects compatibility problems across different browser versions
Unused Code - Unused variables and methods, code that can't be reached
Security - Security problems
Documentation - Detects methods and classes that do not have the correct comment annotations
2. Configure your project patterns
To configure the patterns used to analyse your project simply click on the checkbox on the left of the title:
3. Account vs Project Patterns
We already have selected a collection of patterns so that you get the most satisfying experience out of the box. But, in case you want to customize the patterns you use, you can do so by Account or by Project.
Here you can choose the patterns you like, for all the languages available on our website. These are the default patterns that new projects will use. Account Settings -> Default Patterns
Here you can specify the patterns you want to use on each project. This selection of patterns is not affected when you change your account patterns. Code patterns on the Project view
4. I already have my tool configuration file
If you have configuration files for your static analysis tool of choice, you can add it to your repository (and Codacy will pick it up automatically).
Supported Configuration files
Codacy currently supports configuration files for several tools. To have results accordingly to your configuration file, you need to go to the Code Patterns view and select "Configuration file" for the respective tool and select the option as shown in the example below.
The known file names for each tool are the following:
|Tool name||Language||Files detected||Other info|
|Checkstyle||Java||checkstyle.xml||Supports config file in other dirs than root and can search up to 5 dirs into the project.|
|Supports config file in other dirs than root and can search up to 5 dirs into the project.|
|Findbugs||Java||findbugs.xml, findbugs-includes.xml, findbugs-excludes.xml||Supports config file in other dirs than root and can search up to 5 dirs into the project.|
|Findbugs Security||Java||findbugs.xml, findbugs-includes.xml, findbugs-excludes.xml||Supports config file in other dirs than root and can search up to 5 dirs into the project.|
|PHP CodeSniffer||PHP||phpcs.xml, phpcs.xml.dist|
To solve flagged valid Python "assert" statements, create a bandit.yml in the root of the repo containing: skips: ['B101']
|Prospector||Python||.landscape.yml, .landscape.yaml, landscape.yml, landscape.yaml,
.prospector.yml, .prospector.yaml, prospector.yml ,prospector.yaml
|Stylelint||LESS, SASS, CSS||.stylelintrc, stylelint.config.js, .stylelintrc.json, .stylelintrc.yaml, .stylelintrc.js, stylelintrc.yml||Supports config file in other dirs than root and can search up to 5 dirs into the project.|
|Remark-Lint||Markdown||.remarkrc, .remarkrc.json, .remarkrc.yaml, .remarkrc.yml, .remarkrc.js|
5. Configuring the project root directory for analysis
By default, Codacy starts the analysis on the repository's root. However, you can set up a different project folder on which to start the analysis using a Codacy configuration file. This file needs to be named ".codacy.yaml" or ".codacy.yml" and must be placed in the project's root.
See example below: