forcedotcom / forcedotcom/code-analyzer

[Feature Request] Filename-based suppression per engine or file

Open
#2,028 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
240
Forks
52
Avg merge
1d 23h
Merged PRs (30d)
5

Description

### Product Area

The "code-analyzer" CLI

### Your Need or Problem

I like the
```yaml
ignores:
files:
- "**/utils.js"
```
feature.

Currently, it exists at the top level, meaning we can only exclude filenames for all engines. I would like to exclude at the engine or file level.

The background: Salesforce provides some stock/standard files (JavaScript, Visualforce, Aura, LWC) that have rule violations in them. Instead of having to fix them all when importing starter metadata, I want to exclude them... but I would like to do that from the config file.

IDEALLY, I could do a suppression PER RULE, but I fear that is too much to ask.

This is resulting in a LOT of false-positives and noise, and is stopping our pipeline every time we create a new kind of Experience Cloud site.

### Your Desired Solution

```yaml
engines:
pmd:
ignores:
- "selfRegister.cmp"
- "CommunityTemplate.page"
```
or

```yaml
rules:
pmd:
"LoadCSSApexStylesheet":
severity: 2
ignores:
- "CommunityTemplate.page"
tags:
- AppExchange
- Security
- Visualforce
```

My vision for using Code Analyzer is that I have a standard config file I use for all my projects as a starting point, and that one would include suppressing checks on those files. I could load that as a default in each of my repos/projects.

### Alternatives Considered

PMD doesn't have a robust "ignore this rule for this filepath" from the ruleset feature, so I know I'm asking for a lot here.

I can exclude files in my custom ruleset, but that only applies to pmd rules.

I can override the specific rule and make a very long XPath exception property, which works, and might be good for some files, but isn't ideal.

### Additional Context (Screenshots, Files, etc)

_No response_

### Workaround

I have been able to suppress for most files (not JavaScript) by editing the file. But I don't want to have to edit each default file as Salesforce creates them.

### Urgency

Moderate

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.