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/
|
||||
```
|
||||
|
||||
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
|
||||
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/
|
||||
```
|
||||
|
||||
To collect automatic issue fixes for a given location use
|
||||
To resolve automatic issue fixes for a given location use
|
||||
|
||||
```sh
|
||||
# collecting automatic issue fixes
|
||||
|
|
|
|||
|
|
@ -55,6 +55,9 @@ class DScannerJsonReporter
|
|||
|
||||
private static JSONValue toJson(Issue issue)
|
||||
{
|
||||
import std.sumtype : match;
|
||||
import dscanner.analysis.base : AutoFix;
|
||||
|
||||
// dfmt off
|
||||
JSONValue js = JSONValue([
|
||||
"key": JSONValue(issue.message.key),
|
||||
|
|
@ -80,6 +83,27 @@ class DScannerJsonReporter
|
|||
"message": JSONValue(a.message),
|
||||
])
|
||||
).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
|
||||
|
|
|
|||
|
|
@ -15,7 +15,45 @@
|
|||
"message": "Zero-parameter '@property' function should be marked 'const', 'inout', or 'immutable'.",
|
||||
"name": "function_attribute_check",
|
||||
"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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue