forcedotcom / forcedotcom/code-analyzer
[Feature Request] File based regex rules
- Langage dominant
- TypeScript
- Étoiles
- 240
- Forks
- 52
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 5
Description
### Product Area
The "code-analyzer" CLI
### Your Need or Problem
Allow for regex rules to be placed into their own files and referenced from `code-analyzer.yml` so that they can be more easily shared between projects instead of merging them into existing files.
### Your Desired Solution
Lets say we had the rule:
```yaml
name: Salesforce Code Analyzer Configuration
version: 1.0.0
rulesets: []
engines:
regex:
custom_rules:
ProhibitSuppressWarnings:
regex: /@SuppressWarnings\([^)]*\)|\/\/\s*NOPMD/gi
file_extensions: ['.apex', '.cls', '.trigger']
description:
'Prohibits the use of @SuppressWarnings annotations and
NOPMD comments in Apex code. Suppressions hide code quality
issues; prefer fixing the underlying problems or improving
rules instead.'
violation_message:
'Suppression of warnings is not allowed. Fix the underlying
issue or improve the rule instead of suppressing violations.'
severity: 'High'
tags: ['CodeStyle', 'Recommended']
```
I would like to take the details of that rule and put them in a different .yaml file, then refer to that .yaml file from code-analyzer.yml
### Alternatives Considered
Keep adding rules to code-analyzer.yml like today, using a pre-processor/script ahead of every run, etc
### Additional Context (Screenshots, Files, etc)
_No response_
### Workaround
_No response_
### Urgency
Low
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez au point d’entrée de CLI qui charge code-analyzer.yml et suivez la façon dont les regex custom_rules sont analysées. Examinez comment un fichier de règles YAML externe pourrait être référencé et partagé, puis vérifiez que les règles inline existantes continuent de fonctionner avec les règles basées sur des fichiers lors d’une exécution représentative de CLI.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- cli, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100