diff options
author | w0rp <devw0rp@gmail.com> | 2017-11-19 12:46:06 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-11-19 12:46:06 +0000 |
commit | b16c82f2f19aa7b1f1472e6d3cd2908708b56a00 (patch) | |
tree | 11e5bc836241d4091c0a0e969965a6737fb4071a | |
parent | d7a60ade77a30d4eed517030a0c50a5eee059be0 (diff) | |
download | ale-b16c82f2f19aa7b1f1472e6d3cd2908708b56a00.zip |
#852 - Capture error codes for swaglint
-rw-r--r-- | ale_linters/yaml/swaglint.vim | 8 | ||||
-rw-r--r-- | test/handler/test_swaglint_handler.vader | 21 |
2 files changed, 22 insertions, 7 deletions
diff --git a/ale_linters/yaml/swaglint.vim b/ale_linters/yaml/swaglint.vim index 454cad05..75a496c5 100644 --- a/ale_linters/yaml/swaglint.vim +++ b/ale_linters/yaml/swaglint.vim @@ -27,6 +27,14 @@ function! ale_linters#yaml#swaglint#Handle(buffer, lines) abort \ 'text': l:match[4], \} + " Parse the code if it's there. + let l:code_match = matchlist(l:obj.text, '\v^(.+) \(([^ (]+)\)$') + + if !empty(l:code_match) + let l:obj.text = l:code_match[1] + let l:obj.code = l:code_match[2] + endif + call add(l:output, l:obj) endfor diff --git a/test/handler/test_swaglint_handler.vader b/test/handler/test_swaglint_handler.vader index fbbae269..7ab10439 100644 --- a/test/handler/test_swaglint_handler.vader +++ b/test/handler/test_swaglint_handler.vader @@ -10,43 +10,50 @@ Execute(The swaglint handler should parse lines correctly): \ { \ 'lnum': 1, \ 'col': 1, - \ 'text': 'Missing required property: info (sway_object_missing_required_property)', + \ 'text': 'Missing required property: info', + \ 'code': 'sway_object_missing_required_property', \ 'type': 'E', \ }, \ { \ 'lnum': 6, \ 'col': 9, - \ 'text': 'Not a valid response definition (sway_one_of_missing)', + \ 'text': 'Not a valid response definition', + \ 'code': 'sway_one_of_missing', \ 'type': 'E', \ }, \ { \ 'lnum': 7, \ 'col': 11, - \ 'text': 'Missing required property: description (sway_object_missing_required_property)', + \ 'text': 'Missing required property: description', + \ 'code': 'sway_object_missing_required_property', \ 'type': 'E', \ }, \ { \ 'lnum': 7, \ 'col': 11, - \ 'text': 'Missing required property: $ref (sway_object_missing_required_property)', + \ 'text': 'Missing required property: $ref', + \ 'code': 'sway_object_missing_required_property', \ 'type': 'E', \ }, \ { \ 'lnum': 1, \ 'col': 10, - \ 'text': 'Expected type string but found type integer (sway_invalid_type)', + \ 'text': 'Expected type string but found type integer', + \ 'code': 'sway_invalid_type', \ 'type': 'E', \ }, \ { \ 'lnum': 1, \ 'col': 10, - \ 'text': 'No enum match for: 2 (sway_enum_mismatch)', + \ 'text': 'No enum match for: 2', + \ 'code': 'sway_enum_mismatch', \ 'type': 'E', \ }, \ { \ 'lnum': 14, \ 'col': 3, - \ 'text': 'Definition is not used: #/definitions/Foo (sway_unused_definition)', + \ 'text': 'Definition is not used: #/definitions/Foo', + \ 'code': 'sway_unused_definition', \ 'type': 'W', \ }, \ ], |