diff options
author | w0rp <w0rp@users.noreply.github.com> | 2016-10-02 10:16:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-02 10:16:10 +0200 |
commit | b36d3eb6355591858e6b456c6e38233eb0de604e (patch) | |
tree | 25f98f1efb29aab02d5e4974be1e337a6d614fe9 /ale_linters | |
parent | abd1249e74e6186a14d07d28db69bca4994674b9 (diff) | |
parent | 8c7193347cafadb0865f877f25e8c5a672d8c410 (diff) | |
download | ale-b36d3eb6355591858e6b456c6e38233eb0de604e.zip |
Merge pull request #19 from prashcr/master
Add coffeelint for coffeescript
Diffstat (limited to 'ale_linters')
-rw-r--r-- | ale_linters/coffee/coffeelint.vim | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ale_linters/coffee/coffeelint.vim b/ale_linters/coffee/coffeelint.vim new file mode 100644 index 00000000..4a1d7320 --- /dev/null +++ b/ale_linters/coffee/coffeelint.vim @@ -0,0 +1,51 @@ +" Author: prashcr - https://github.com/prashcr + +if exists('g:loaded_ale_linters_coffee_coffeelint') + finish +endif + +let g:loaded_ale_linters_coffee_coffeelint = 1 + +function! ale_linters#coffee#coffeelint#Handle(buffer, lines) + " Matches patterns like the following: + " + " path,lineNumber,lineNumberEnd,level,message + " stdin,14,,error,Throwing strings is forbidden + " + " Note that we currently ignore lineNumberEnd for multiline errors + let pattern = 'stdin,\(\d\+\),\(\d*\),\(.\+\),\(.\+\)' + let output = [] + + for line in a:lines + let l:match = matchlist(line, pattern) + + if len(l:match) == 0 + continue + endif + + let line = l:match[1] + 0 + let column = 1 + let type = l:match[3] ==# 'error' ? 'error' : 'warn' + let text = type . ': ' . l:match[4] + + " vcol is needed to indicate that the column is a character + call add(output, { + \ 'bufnr': a:buffer, + \ 'lnum': line, + \ 'vcol': 0, + \ 'col': column, + \ 'text': text, + \ 'type': type, + \ 'nr': -1, + \}) + endfor + + return output +endfunction + +call ALEAddLinter('coffee', { +\ 'name': 'coffeelint', +\ 'executable': 'coffeelint', +\ 'command': 'coffeelint --stdin --reporter csv', +\ 'callback': 'ale_linters#coffee#coffeelint#Handle', +\}) |