forcedotcom / forcedotcom/code-analyzer

[BUG][code-analyzer] regex:NoMixedIndentation: False positive on ApexDocs

Abierto
#2,012 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
240
Forks
52
Merge medio
1 d 23 h
PR fusionados (30 d)
5

Descripción

### Have you tried to resolve this issue yourself first?

- [x] I confirm I have gone through the above steps and still have an issue to report.

### Bug Description

`v5.11.0` seems to have introduced a new `regex:NoMixedIndentation` rule, which flags apex files that use a mixture of tabs and spaces for indentation. However, this is causing false positive results on method-level ApexDoc comments, example below:

```apex
/**
* @description An example of a class-level ApexDoc
*/
public class SomeApexClass {
/**
* @description An example of a method-level ApexDoc
* @param bar Some input parameter
* @return Some output parameter
*/
public Object foo(Object bar) {
return null; // Not important...
}
}
```

ApexDocs are an [officially supported](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_doc_format.htm) comment format, so it doesn't make sense for these to be flagged as a violation.

### Output / Logs

```shell
jsiders@jsiders-mac salesforce % sf plugins install code-analyzer@5.10.0
removed 4 packages in 6s
@salesforce/cli: Installing plugin code-analyzer@5.10.0... installed v5.10.0

jsiders@jsiders-mac salesforce % sf code-analyzer run -t force-app/main/default/classes/SomeApexClass.cls

Streaming logs in real time to:
/var/folders/8d/0t7sckgj10xcb32zycf088480000gp/T/sfca-2026_03_24_10_52_21_277.log

Selecting rules... done.
Executing rules... done. Executed rules from cpd, pmd, regex.

=== Summary

Found 0 violations.

Additional log information written to:
/var/folders/8d/0t7sckgj10xcb32zycf088480000gp/T/sfca-2026_03_24_10_52_21_277.log

jsiders@jsiders-mac salesforce % sf plugins install code-analyzer@5.11.0
Polling for new version(s) to become available on npm... done
Successfully validated digital signature for @salesforce/plugin-code-analyzer.
Finished digital signature check.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
added 15 packages, removed 51 packages, and changed 93 packages in 8s
@salesforce/cli: Installing plugin code-analyzer@5.11.0... installed v5.11.0

jsiders@jsiders-mac salesforce % sf code-analyzer run -t force-app/main/default/classes/SomeApexClass.cls

Streaming logs in real time to:
/var/folders/8d/0t7sckgj10xcb32zycf088480000gp/T/sfca-2026_03_24_10_50_59_383.log

Selecting rules... done.
Code Analyzer [10:51:1.984]:
No violations were suppressed by inline suppression markers.

Executing rules... done. Executed rules from regex, cpd, pmd.

Violation file paths relative to '/Users/jsiders/Documents/VSCode/Nasuni/salesforce/force-app/main/default/classes'.
# Severity Rule Location Message
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 3 (Moderate) regex:NoMixedIndentation SomeApexClass.cls:6:1 Leading indentation contains mixed spaces and tabs. To fix this, use either spaces or tabs.
2 3 (Moderate) regex:NoMixedIndentation SomeApexClass.cls:7:1 Leading indentation contains mixed spaces and tabs. To fix this, use either spaces or tabs.
3 3 (Moderate) regex:NoMixedIndentation SomeApexClass.cls:8:1 Leading indentation contains mixed spaces and tabs. To fix this, use either spaces or tabs.
4 3 (Moderate) regex:NoMixedIndentation SomeApexClass.cls:9:1 Leading indentation contains mixed spaces and tabs. To fix this, use either spaces or tabs.

=== Summary

Found 4 violation(s) across 1 file(s):
4 Moderate severity violation(s) found.

Additional log information written to:
/var/folders/8d/0t7sckgj10xcb32zycf088480000gp/T/sfca-2026_03_24_10_50_59_383.log
```

### Steps To Reproduce

1. Create an Apex class which implements a method-level ApexDoc comment block (example above)
2. Install `code-analyzer@5.10.0`
3. Run code-analyzer against the apex class
4. Observe 0 violations
5. Install `code-analyzer@5.11.0`
6. Run code-analyzer against this same class
7. Observe 1 `regex:NoMixedIndentation` violation (moderate) for each line of the method-level ApexDoc comment.

### Expected Behavior

ApexDocs should not trigger this violation.

All other instances of mixed tabs/spaces should trigger this violation.

### Operating System

macOS Tahoe 26.3

### Salesforce CLI Version

@salesforce/cli/2.126.4 darwin-arm64 node-v22.20.0

### Code Analyzer Plugin (code-analyzer) Version

5.11.0

### Node Version

v22.20.0

### Java Version

openjdk version "17.0.13" 2024-10-15

### Python Version

Python 3.13.1

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

_No response_

### Workaround

Reduce the severity of the rule to `Low` or `Info`, though this is not ideal for users who wish to report genuine violations.

### Urgency

Low

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.