Skip to content

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

@dschach

Description

@dschach

Product Area

The "code-analyzer" CLI

Your Need or Problem

I like the

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

engines:
  pmd:
    ignores:
      - "selfRegister.cmp"
      - "CommunityTemplate.page"

or

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions