include resolved autofixes in `--report` output
for unresolved ones, just return a string "resolvable"
This commit is contained in:
parent
cae7d595b8
commit
340a5f59e7
|
|
@ -91,6 +91,11 @@ dscanner -S source/
|
||||||
dscanner --report source/
|
dscanner --report source/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The `--report` switch includes all information, plus cheap to compute autofixes
|
||||||
|
that are already resolved ahead of time, as well as the names for the autofixes
|
||||||
|
that need to be resolved using the `--resolveMessage` switch like described
|
||||||
|
below.
|
||||||
|
|
||||||
You can also specify custom formats using `-f` / `--errorFormat`, where there
|
You can also specify custom formats using `-f` / `--errorFormat`, where there
|
||||||
are also built-in formats for GitHub Actions:
|
are also built-in formats for GitHub Actions:
|
||||||
|
|
||||||
|
|
@ -101,7 +106,7 @@ dscanner -S -f github source/
|
||||||
dscanner -S -f '{filepath}({line}:{column})[{type}]: {message}' source/
|
dscanner -S -f '{filepath}({line}:{column})[{type}]: {message}' source/
|
||||||
```
|
```
|
||||||
|
|
||||||
To collect automatic issue fixes for a given location use
|
To resolve automatic issue fixes for a given location use
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# collecting automatic issue fixes
|
# collecting automatic issue fixes
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,9 @@ class DScannerJsonReporter
|
||||||
|
|
||||||
private static JSONValue toJson(Issue issue)
|
private static JSONValue toJson(Issue issue)
|
||||||
{
|
{
|
||||||
|
import std.sumtype : match;
|
||||||
|
import dscanner.analysis.base : AutoFix;
|
||||||
|
|
||||||
// dfmt off
|
// dfmt off
|
||||||
JSONValue js = JSONValue([
|
JSONValue js = JSONValue([
|
||||||
"key": JSONValue(issue.message.key),
|
"key": JSONValue(issue.message.key),
|
||||||
|
|
@ -80,6 +83,27 @@ class DScannerJsonReporter
|
||||||
"message": JSONValue(a.message),
|
"message": JSONValue(a.message),
|
||||||
])
|
])
|
||||||
).array
|
).array
|
||||||
|
),
|
||||||
|
"autofixes": JSONValue(
|
||||||
|
issue.message.autofixes.map!(a =>
|
||||||
|
JSONValue([
|
||||||
|
"name": JSONValue(a.name),
|
||||||
|
"replacements": a.replacements.match!(
|
||||||
|
(const AutoFix.CodeReplacement[] replacements) => JSONValue(
|
||||||
|
replacements.map!(r => JSONValue([
|
||||||
|
"range": JSONValue([
|
||||||
|
JSONValue(r.range[0]),
|
||||||
|
JSONValue(r.range[1])
|
||||||
|
]),
|
||||||
|
"newText": JSONValue(r.newText)
|
||||||
|
])).array
|
||||||
|
),
|
||||||
|
(const AutoFix.ResolveContext context) => JSONValue(
|
||||||
|
"resolvable"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
])
|
||||||
|
).array
|
||||||
)
|
)
|
||||||
]);
|
]);
|
||||||
// dfmt on
|
// dfmt on
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,45 @@
|
||||||
"message": "Zero-parameter '@property' function should be marked 'const', 'inout', or 'immutable'.",
|
"message": "Zero-parameter '@property' function should be marked 'const', 'inout', or 'immutable'.",
|
||||||
"name": "function_attribute_check",
|
"name": "function_attribute_check",
|
||||||
"supplemental": [],
|
"supplemental": [],
|
||||||
"type": "warn"
|
"type": "warn",
|
||||||
|
"autofixes": [
|
||||||
|
{
|
||||||
|
"name": "Mark function `const`",
|
||||||
|
"replacements": [
|
||||||
|
{
|
||||||
|
"newText": " const",
|
||||||
|
"range": [
|
||||||
|
24,
|
||||||
|
24
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mark function `inout`",
|
||||||
|
"replacements": [
|
||||||
|
{
|
||||||
|
"newText": " inout",
|
||||||
|
"range": [
|
||||||
|
24,
|
||||||
|
24
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mark function `immutable`",
|
||||||
|
"replacements": [
|
||||||
|
{
|
||||||
|
"newText": " immutable",
|
||||||
|
"range": [
|
||||||
|
24,
|
||||||
|
24
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"lineOfCodeCount": 0,
|
"lineOfCodeCount": 0,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue