Merge pull request #1441 from adrigzr/bugfix-1207-remark-lint-ranges

Handle ranges for the remark linter #1207
This commit is contained in:
w0rp 2018-03-22 15:20:25 +00:00 committed by GitHub
commit ec5750f57b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 7 deletions

View file

@ -1,18 +1,24 @@
" Author rhysd https://rhysd.github.io/
" Author rhysd https://rhysd.github.io/, Dirk Roorda (dirkroorda), Adrián González Rus (@adrigzr)
" Description: remark-lint for Markdown files
function! ale_linters#markdown#remark_lint#Handle(buffer, lines) abort
" matches: ' 1:4 warning Incorrect list-item indent: add 1 space list-item-indent remark-lint'
let l:pattern = '^ \+\(\d\+\):\(\d\+\) \(warning\|error\) \(.\+\)$'
" matches: ' 18:71-19:1 error Missing new line after list item list-item-spacing remark-lint',
let l:pattern = '^ \+\(\d\+\):\(\d\+\)\(-\(\d\+\):\(\d\+\)\)\? \(warning\|error\) \(.\+\)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
let l:item = {
\ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0,
\ 'type': l:match[3] is# 'error' ? 'E' : 'W',
\ 'text': l:match[4],
\})
\ 'type': l:match[6] is# 'error' ? 'E' : 'W',
\ 'text': l:match[7],
\}
if l:match[3] isnot# ''
let l:item.end_lnum = l:match[4] + 0
let l:item.end_col = l:match[5] + 0
endif
call add(l:output, l:item)
endfor
return l:output

View file

@ -19,12 +19,21 @@ Execute(Warning and error messages should be handled correctly):
\ 'type': 'E',
\ 'text': 'Incorrect list-item indent: remove 1 space list-item-indent remark-lint',
\ },
\ {
\ 'lnum': 18,
\ 'col': 71,
\ 'end_lnum': 19,
\ 'end_col': 1,
\ 'type': 'E',
\ 'text': 'Missing new line after list item list-item-spacing remark-lint',
\ },
\ ],
\ ale_linters#markdown#remark_lint#Handle(1, [
\ 'foo.md',
\ ' 1:4 warning Incorrect list-item indent: add 1 space list-item-indent remark-lint',
\ ' 3:5 error Incorrect list-item indent: remove 1 space list-item-indent remark-lint',
\ ' 18:71-19:1 error Missing new line after list item list-item-spacing remark-lint',
\ '',
\ '⚠ 1 warnings',
\ '✘ 1 errors',
\ '✘ 2 errors',
\])