summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-11-19 12:46:06 +0000
committerw0rp <devw0rp@gmail.com>2017-11-19 12:46:06 +0000
commitb16c82f2f19aa7b1f1472e6d3cd2908708b56a00 (patch)
tree11e5bc836241d4091c0a0e969965a6737fb4071a
parentd7a60ade77a30d4eed517030a0c50a5eee059be0 (diff)
downloadale-b16c82f2f19aa7b1f1472e6d3cd2908708b56a00.zip
#852 - Capture error codes for swaglint
-rw-r--r--ale_linters/yaml/swaglint.vim8
-rw-r--r--test/handler/test_swaglint_handler.vader21
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',
\ },
\ ],