Ignore fixes for the elm.json file

This commit is contained in:
Jeroen Engels 2020-03-07 17:34:31 +01:00
parent bfade4d4c2
commit 0a811c5b43
2 changed files with 18 additions and 10 deletions

View File

@ -10,16 +10,20 @@ When creating a [`Review.Rule.Error`](./Review-Rule#Error), you can provide an a
fix for the error using [`Review.Rule.withFixes`](./Review-Rule#withFixes) so that the
user doesn't need to fix the problem themselves.
In the [CLI](https://github.com/jfmengels/node-elm-review), the user can ask to
fix the errors automatically, and in doing so, they will be presented by a fix
which they can accept or refuse. If the fix gets refused, then the next fixable
error will be presented. Otherwise, if the fix gets accepted, the file will be
applied and the fixed file content get analyzed again by the different rules in
the user's configuration, and then another fix will be presented. When there are
no more fixable errors, the remaining errors will be reported, just like when
the user doesn't request errors to be automatically fixed.
In the [CLI], the user can ask to fix the errors automatically, and in doing so,
they will be presented by a fix which they can accept or refuse. If the fix gets
refused, then the next fixable error will be presented. Otherwise, if the fix
gets accepted, the file will be applied and the fixed file content get analyzed
again by the different rules in the user's configuration, and then another fix
will be presented. When there are no more fixable errors, the remaining errors
will be reported, just like when the user doesn't request errors to be automatically
fixed.
In summary, errors will be presented one by one and the user will validate them.
The [CLI] also proposes an option to fix all the errors, which applies each fix
one by one and then asks the user to confirm the cummulated fix.
Automatic fixes for the `elm.json` are ignored and won't be applied.
# Guidelines
@ -27,7 +31,7 @@ In summary, errors will be presented one by one and the user will validate them.
An automatic fix, when applied, should resolve the reported error completely.
This means that when the automatic fix is applied, the user should not have to
think about the error anymore or have to do additional work. Imagine if the user
applies a lot of automatic fixes all at once, we don't want them to have to
applies a lot of automatic fixes all at once. We don't want them to have to
remember having to do something, otherwise we may have just offloaded a lot of
work that they may forget to do. In that case, it is better not to provide a fix
at all, so that they keep a reminder and the details of how to fix the problem.
@ -123,6 +127,8 @@ in the context of your rule.
@docs FixResult, Problem, fix
[CLI]: https://github.com/jfmengels/node-elm-review
-}
import Array

View File

@ -2237,6 +2237,8 @@ If you pass `withFixes` an empty list, the error will be considered as having no
automatic fix available. Calling `withFixes` several times on an error will
overwrite the previous fixes.
Fixes for the `elm.json` file will be ignored.
**Note**: Each fix applies on a location in the code, defined by a range. To avoid an
unpredictable result, those ranges may not overlap. The order of the fixes does
not matter.
@ -2244,7 +2246,7 @@ not matter.
-}
withFixes : List Fix -> Error -> Error
withFixes fixes (Error err) =
if List.isEmpty fixes then
if List.isEmpty fixes || String.endsWith ".json" err.filePath then
Error { err | fixes = Nothing }
else