summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorrhysd <lin90162@yahoo.co.jp>2017-11-17 15:21:18 +0900
committerrhysd <lin90162@yahoo.co.jp>2017-11-17 15:34:07 +0900
commit44cd07d39c860c32016d85b4d4f0c8aec901064d (patch)
tree92f8c934ed4dd0f5eb792295e939396ec680ef52 /autoload
parent1f4f19cbd422e30ae95e63df6fae26d99651dc03 (diff)
downloadale-44cd07d39c860c32016d85b4d4f0c8aec901064d.zip
redpen support for asciidoc, reST, LaTeX and Re:VIEW
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/handlers/redpen.vim29
1 files changed, 29 insertions, 0 deletions
diff --git a/autoload/ale/handlers/redpen.vim b/autoload/ale/handlers/redpen.vim
new file mode 100644
index 00000000..89ad5fc7
--- /dev/null
+++ b/autoload/ale/handlers/redpen.vim
@@ -0,0 +1,29 @@
+" Author: rhysd https://rhysd.github.io
+" Description: Redpen, a proofreading tool (http://redpen.cc)
+
+function! ale#handlers#redpen#HandleRedpenOutput(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: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: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:item.lnum = l:err.lineNum
+ let l:item.col = l:err.sentenceStartColumnNum + 1
+ endif
+ call add(l:output, l:item)
+ endfor
+ return l:output
+endfunction
+