summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/markdown/redpen.vim27
-rw-r--r--test/handler/test_redpen_handler.vader2
2 files changed, 17 insertions, 12 deletions
diff --git a/ale_linters/markdown/redpen.vim b/ale_linters/markdown/redpen.vim
index 00a19a93..38fe2308 100644
--- a/ale_linters/markdown/redpen.vim
+++ b/ale_linters/markdown/redpen.vim
@@ -5,23 +5,26 @@ function! ale_linters#markdown#redpen#HandleErrors(buffer, lines) abort
" Only one file was passed to redpen. So response array has only one
" element.
let l:res = json_decode(join(a:lines))[0]
- let l:errors = []
+ let l:output = []
for l:err in l:res.errors
+ let l:item = {
+ \ 'text': l:err.message . ' (' . l:err.validator . ')',
+ \ 'type': 'W',
+ \}
if has_key(l:err, 'startPosition')
- let l:lnum = l:err.startPosition.lineNum
- let l:col = l:err.startPosition.offset
+ let l:item.lnum = l:err.startPosition.lineNum
+ let l:item.col = l:err.startPosition.offset
+ if has_key(l:err, 'endPosition')
+ let l:item.end_lnum = l:err.endPosition.lineNum
+ let l:item.end_col = l:err.endPosition.offset
+ endif
else
- let l:lnum = l:err.lineNum
- let l:col = l:err.sentenceStartColumnNum + 1
+ let l:item.lnum = l:err.lineNum
+ let l:item.col = l:err.sentenceStartColumnNum + 1
endif
- call add(l:errors, {
- \ 'lnum': l:lnum,
- \ 'col': l:col,
- \ 'text': l:err.message . ' (' . l:err.validator . ')',
- \ 'type': 'W',
- \})
+ call add(l:output, l:item)
endfor
- return l:errors
+ return l:output
endfunction
call ale#linter#Define('markdown', {
diff --git a/test/handler/test_redpen_handler.vader b/test/handler/test_redpen_handler.vader
index 2ea3a2ff..a1ad65d1 100644
--- a/test/handler/test_redpen_handler.vader
+++ b/test/handler/test_redpen_handler.vader
@@ -10,6 +10,8 @@ Execute(redpen handler should handle errors output):
\ {
\ 'lnum': 1,
\ 'col': 9,
+ \ 'end_lnum': 1,
+ \ 'end_col': 15,
\ 'text': 'Found possibly misspelled word "plugin". (Spelling)',
\ 'type': 'W',
\ },