forcedotcom / forcedotcom/code-analyzer

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

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

Description

### 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

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.