diff --git a/ets2panda/linter/src/cli/LinterCLI.ts b/ets2panda/linter/src/cli/LinterCLI.ts index e45d56a7d5513400fd06b8e040abbe7d258725b8..355850ed9e053c48bd8890d8e5cbe0ec936b96fa 100644 --- a/ets2panda/linter/src/cli/LinterCLI.ts +++ b/ets2panda/linter/src/cli/LinterCLI.ts @@ -110,12 +110,27 @@ function mergeLintProblems( return onlyArkts2SyntaxRules.has(problem.ruleTag); }); } - if (cmdOptions.scanWholeProjectInHomecheck && !cmdOptions.inputFiles.includes(filePath)) { - filteredProblems = problems.filter((problem) => { - return problem.rule.includes('s2d'); - }); - } mergedProblems.get(filePath)!.push(...filteredProblems); + + if (cmdOptions.scanWholeProjectInHomecheck) { + for (const file of mergedProblems.keys()) { + if (cmdOptions.inputFiles.includes(file)) { + continue; + } + const totalProblems = mergedProblems.get(file); + if (totalProblems === undefined) { + continue; + } + filteredProblems = totalProblems.filter((problem) => { + return problem.rule.includes('s2d'); + }); + if (filteredProblems.length > 0) { + mergedProblems.set(file, filteredProblems); + } else { + mergedProblems.delete(file); + } + } + } } async function generateReportFile(reportData, reportPath?: string): Promise {