summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-11-18 23:15:23 +0000
committerw0rp <devw0rp@gmail.com>2017-11-18 23:15:23 +0000
commitcefc5dc5b8fc7cec75222f3cd4d090c1bd48f796 (patch)
treef8f134e90d2697e3c2d2a654e30bf4e6221b13d7
parent2b50e68c7e2fb5df831f83ba89a7bd088629e1aa (diff)
downloadale-cefc5dc5b8fc7cec75222f3cd4d090c1bd48f796.zip
#852 - Capture error codes for csslint
-rw-r--r--autoload/ale/handlers/css.vim25
-rw-r--r--test/handler/test_common_handlers.vader6
2 files changed, 16 insertions, 15 deletions
diff --git a/autoload/ale/handlers/css.vim b/autoload/ale/handlers/css.vim
index 4c1b81cb..c7ae7c42 100644
--- a/autoload/ale/handlers/css.vim
+++ b/autoload/ale/handlers/css.vim
@@ -14,23 +14,22 @@ function! ale#handlers#css#HandleCSSLintFormat(buffer, lines) abort
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
- let l:text = l:match[4]
- let l:type = l:match[3]
+ let l:item = {
+ \ 'lnum': l:match[1] + 0,
+ \ 'col': l:match[2] + 0,
+ \ 'type': l:match[3] is# 'Warning' ? 'W' : 'E',
+ \ 'text': l:match[4],
+ \}
- let l:group_match = matchlist(l:text, '\v^(.+) \((.+)\)$')
+ let l:code_match = matchlist(l:match[4], '\v(.+) \(([^(]+)\)$')
- " Put the error group at the front, so we can see what kind of error
- " it is on small echo lines.
- if !empty(l:group_match)
- let l:text = '(' . l:group_match[2] . ') ' . l:group_match[1]
+ " Split up the error code and the text if we find one.
+ if !empty(l:code_match)
+ let l:item.text = l:code_match[1]
+ let l:item.code = l:code_match[2]
endif
- call add(l:output, {
- \ 'lnum': l:match[1] + 0,
- \ 'col': l:match[2] + 0,
- \ 'text': l:text,
- \ 'type': l:type is# 'Warning' ? 'W' : 'E',
- \})
+ call add(l:output, l:item)
endfor
return l:output
diff --git a/test/handler/test_common_handlers.vader b/test/handler/test_common_handlers.vader
index 65026d80..ee29da36 100644
--- a/test/handler/test_common_handlers.vader
+++ b/test/handler/test_common_handlers.vader
@@ -5,13 +5,15 @@ Execute(HandleCSSLintFormat should handle CSS errors):
\ 'lnum': 2,
\ 'col': 1,
\ 'type': 'E',
- \ 'text': '(errors) Expected RBRACE at line 2, col 1.',
+ \ 'text': 'Expected RBRACE at line 2, col 1.',
+ \ 'code': 'errors',
\ },
\ {
\ 'lnum': 2,
\ 'col': 5,
\ 'type': 'W',
- \ 'text': '(known-properties) Expected ... but found ''wat''.',
+ \ 'text': 'Expected ... but found ''wat''.',
+ \ 'code': 'known-properties',
\ },
\ ],
\ ale#handlers#css#HandleCSSLintFormat(42, [