diff options
author | Brandon Maier <brandon.maier@gmail.com> | 2024-01-14 05:47:42 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-14 20:47:42 +0900 |
commit | d63f5e6a77f7883e29ec1cbd8861a87c2fc6fe1a (patch) | |
tree | 46e0b76490242cc3739aa263975542a4a61b1093 /test/handler | |
parent | ebc6718c0a31c609a1b6500bfdca2aae16ce4721 (diff) | |
download | ale-d63f5e6a77f7883e29ec1cbd8861a87c2fc6fe1a.zip |
Add end_col and end_lnum to ShellCheck (#4692)
* Add end_col and end_lnum to ShellCheck
ShellCheck supports a JSON format mode which includes an 'endLine' and
'endColumn' field.
We must use the newer 'json1' format as it properly treats tabs as a
single character. 'json1' was not supported until v0.7.0 in 2019[1], so
we maintain support for the older GCC based format.
[1] https://github.com/koalaman/shellcheck/blob/v0.9.0/CHANGELOG.md?plain=1#L121
* Add wiki link to ShellCheck json output
Diffstat (limited to 'test/handler')
-rw-r--r-- | test/handler/test_shellcheck_handler.vader | 114 |
1 files changed, 110 insertions, 4 deletions
diff --git a/test/handler/test_shellcheck_handler.vader b/test/handler/test_shellcheck_handler.vader index 33f12989..7d9e620b 100644 --- a/test/handler/test_shellcheck_handler.vader +++ b/test/handler/test_shellcheck_handler.vader @@ -4,7 +4,7 @@ Before: After: call ale#linter#Reset() -Execute(The shellcheck handler should handle basic errors or warnings): +Execute(The shellcheck handler should handle basic errors or warnings <0.7.0): AssertEqual \ [ \ { @@ -22,12 +22,12 @@ Execute(The shellcheck handler should handle basic errors or warnings): \ 'code': 'SC1068', \ }, \ ], - \ ale#handlers#shellcheck#Handle(bufnr(''), [ + \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 6, 0], [ \ '-:2:1: warning: In POSIX sh, ''let'' is not supported. [SC2039]', \ '-:2:3: error: Don''t put spaces around the = in assignments. [SC1068]', \ ]) -Execute(The shellcheck handler should handle notes): +Execute(The shellcheck handler should handle notes <0.7.0): AssertEqual \ [ \ { @@ -38,6 +38,112 @@ Execute(The shellcheck handler should handle notes): \ 'code': 'SC2086', \ }, \ ], - \ ale#handlers#shellcheck#Handle(bufnr(''), [ + \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 6, 0], [ \ '-:3:3: note: Double quote to prevent globbing and word splitting. [SC2086]', \ ]) + +Execute(The shellcheck handler should handle basic errors or warnings >=0.7.0): + AssertEqual + \ [ + \ { + \ 'lnum': 2, + \ 'end_lnum': 3, + \ 'col': 1, + \ 'end_col': 1, + \ 'type': 'W', + \ 'text': 'In POSIX sh, ''let'' is not supported.', + \ 'code': 'SC2039', + \ 'detail': 'In POSIX sh, ''let'' is not supported.' . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . 'SC2039', + \ }, + \ { + \ 'lnum': 2, + \ 'end_lnum': 3, + \ 'col': 3, + \ 'end_col': 3, + \ 'type': 'E', + \ 'text': 'Don''t put spaces around the = in assignments.', + \ 'code': 'SC1068', + \ 'detail': 'Don''t put spaces around the = in assignments.' . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . 'SC1068', + \ }, + \ ], + \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 7, 0], [ + \ '{ + \ "comments": [ + \ { + \ "file":"-", + \ "line":2, + \ "endLine":3, + \ "column":1, + \ "endColumn":2, + \ "level":"warning", + \ "code":2039, + \ "message":"In POSIX sh, ''let'' is not supported.", + \ "fix": null + \ }, + \ { + \ "file":"-", + \ "line":2, + \ "endLine":3, + \ "column":3, + \ "endColumn":4, + \ "level":"error", + \ "code":1068, + \ "message":"Don''t put spaces around the = in assignments.", + \ "fix": null + \ } + \ ] + \ }' + \ ]) + +Execute(The shellcheck handler should handle info and style >=0.7.0): + AssertEqual + \ [ + \ { + \ 'lnum': 3, + \ 'end_lnum': 5, + \ 'col': 3, + \ 'end_col': 4, + \ 'type': 'I', + \ 'text': 'Double quote to prevent globbing and word splitting.', + \ 'code': 'SC2086', + \ 'detail': 'Double quote to prevent globbing and word splitting.' . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . 'SC2086', + \ }, + \ { + \ 'lnum': 13, + \ 'end_lnum': 13, + \ 'col': 17, + \ 'end_col': 27, + \ 'type': 'I', + \ 'text': '$/${} is unnecessary on arithmetic variables.', + \ 'code': 'SC2004', + \ 'detail': '$/${} is unnecessary on arithmetic variables.' . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . 'SC2004', + \ } + \ ], + \ ale#handlers#shellcheck#Handle(bufnr(''), [0, 7, 0], [ + \ '{ + \ "comments": [ + \ { + \ "file": "-", + \ "line": 3, + \ "endLine": 5, + \ "column": 3, + \ "endColumn": 5, + \ "level": "info", + \ "code": 2086, + \ "message": "Double quote to prevent globbing and word splitting.", + \ "fix": null + \ }, + \ { + \ "file": "-", + \ "line": 13, + \ "endLine": 13, + \ "column": 17, + \ "endColumn": 28, + \ "level": "style", + \ "code": 2004, + \ "message": "$/${} is unnecessary on arithmetic variables.", + \ "fix": null + \ } + \ ] + \ }' + \ ]) |