Add pycodestyle Python linter support (#872)

Add a pycodestyle linter
This commit is contained in:
Michael
2017-08-25 04:46:56 -07:00
committed by w0rp
parent 4bea50b82f
commit 8f8d015dae
6 changed files with 144 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
Before:
runtime ale_linters/python/pycodestyle.vim
Save g:ale_python_pycodestyle_executable,
\ g:ale_python_pycodestyle_options,
\ g:ale_python_pycodestyle_use_global
After:
call ale#linter#Reset()
Restore
Execute(The pycodestyle command callback should return default string):
AssertEqual '''pycodestyle'' -',
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
Execute(The pycodestyle command callback should allow options):
let g:ale_python_pycodestyle_options = '--exclude=test*.py'
AssertEqual '''pycodestyle'' --exclude=test*.py -',
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))
Execute(The pycodestyle executable should be configurable):
let g:ale_python_pycodestyle_executable = '~/.local/bin/pycodestyle'
AssertEqual '''~/.local/bin/pycodestyle'' -',
\ ale_linters#python#pycodestyle#GetCommand(bufnr(''))

View File

@@ -0,0 +1,48 @@
Before:
runtime ale_linters/python/pycodestyle.vim
After:
call ale#linter#Reset()
silent file something_else.py
Execute(The pycodestyle handler should parse output):
AssertEqual
\ [
\ {
\ 'lnum': 69,
\ 'col': 11,
\ 'text': 'E401 multiple imports on one line',
\ 'type': 'E',
\ },
\ {
\ 'lnum': 77,
\ 'col': 1,
\ 'text': 'E302 expected 2 blank lines, found 1',
\ 'type': 'E',
\ },
\ {
\ 'lnum': 88,
\ 'col': 5,
\ 'text': 'E301 expected 1 blank line, found 0',
\ 'type': 'E',
\ },
\ {
\ 'lnum': 222,
\ 'col': 34,
\ 'text': 'W602 deprecated form of raising exception',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 544,
\ 'col': 21,
\ 'text': 'W601 .has_key() is deprecated, use ''in''',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#python#pycodestyle#Handle(bufnr(''), [
\ 'stdin:69:11: E401 multiple imports on one line',
\ 'stdin:77:1: E302 expected 2 blank lines, found 1',
\ 'stdin:88:5: E301 expected 1 blank line, found 0',
\ 'stdin:222:34: W602 deprecated form of raising exception',
\ 'example.py:544:21: W601 .has_key() is deprecated, use ''in''',
\ ])