Skip to content

Commit

Permalink
fix(lint): don't mark plugin diagnostic as fixable, if it's not (deno…
Browse files Browse the repository at this point in the history
…land#28147)

A vector with fixes was always created, even if there were no
applicable fixes.
  • Loading branch information
bartlomieju authored Feb 17, 2025
1 parent 70d775c commit 1f169f4
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 4 deletions.
12 changes: 8 additions & 4 deletions cli/ops/lint.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,14 @@ impl LintPluginContainer {
})
.collect::<Result<Vec<LintFixChange>, LintReportError>>()?;

let fixes = vec![LintFix {
changes,
description: format!("Fix this {} problem", id).into(),
}];
let mut fixes = vec![];

if !changes.is_empty() {
fixes.push(LintFix {
changes,
description: format!("Fix this {} problem", id).into(),
});
}

let lint_diagnostic = LintDiagnostic {
specifier,
Expand Down
6 changes: 6 additions & 0 deletions tests/specs/lint/lint_plugin_no_fixer/__test__.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"tempDir": true,
"args": "lint a.ts",
"output": "lint.out",
"exitCode": 1
}
1 change: 1 addition & 0 deletions tests/specs/lint/lint_plugin_no_fixer/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
const _a = "foo";
5 changes: 5 additions & 0 deletions tests/specs/lint/lint_plugin_no_fixer/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"lint": {
"plugins": ["./plugin.ts"]
}
}
9 changes: 9 additions & 0 deletions tests/specs/lint/lint_plugin_no_fixer/lint.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
error[test-plugin/my-rule]: should be _b
--> [WILDCARD]a.ts:1:7
|
1 | const _a = "foo";
| ^^


Found 1 problem
Checked 1 file
19 changes: 19 additions & 0 deletions tests/specs/lint/lint_plugin_no_fixer/plugin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
export default {
name: "test-plugin",
rules: {
"my-rule": {
create(context) {
return {
Identifier(node) {
if (node.name === "_a") {
context.report({
node,
message: "should be _b",
});
}
},
};
},
},
},
};

0 comments on commit 1f169f4

Please sign in to comment.