forcedotcom / forcedotcom/code-analyzer
[Feature Request] Filename-based suppression per engine or file
- Lenguaje dominante
- TypeScript
- Estrellas
- 240
- Forks
- 52
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 5
Descripción
### 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
Guía de contribución
Línea de trabajo
El punto de entrada es la configuración de la CLI de code-analyzer; empieza por rastrear cómo se analiza y aplica la configuración YAML de nivel superior `ignores.files`. Compara las formas solicitadas a nivel de motor y por regla, y luego define una cobertura que demuestre que la supresión de nombres de archivo puede limitarse sin afectar a otros motores o reglas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript, yaml
- Área
- cli, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100