From 07af1799b1ea43e7fc83374b544bc069a2d306c5 Mon Sep 17 00:00:00 2001 From: w0rp Date: Wed, 14 Jun 2017 16:40:03 +0100 Subject: [PATCH] #430 Use the style sub_type for flake8 problems --- ale_linters/python/flake8.vim | 12 ++++++++++-- test/handler/test_flake8_handler.vader | 22 ++++++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/ale_linters/python/flake8.vim b/ale_linters/python/flake8.vim index 7af02d4..df09105 100644 --- a/ale_linters/python/flake8.vim +++ b/ale_linters/python/flake8.vim @@ -117,7 +117,6 @@ function! ale_linters#python#flake8#Handle(buffer, lines) abort " Matches patterns line the following: " " stdin:6:6: E111 indentation is not a multiple of four - " test.yml:35: [EANSIBLE0002] Trailing whitespace let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):?(\d+)?: ([[:alnum:]]+) (.*)$' let l:output = [] @@ -134,9 +133,18 @@ function! ale_linters#python#flake8#Handle(buffer, lines) abort \ 'lnum': l:match[1] + 0, \ 'col': l:match[2] + 0, \ 'text': l:code . ': ' . l:match[4], - \ 'type': l:code[:0] ==# 'E' ? 'E' : 'W', + \ 'type': 'W', \} + if l:code[:0] ==# 'F' + let l:item.type = 'E' + elseif l:code[:0] ==# 'E' + let l:item.type = 'E' + let l:item.sub_type = 'style' + elseif l:code[:0] ==# 'W' + let l:item.sub_type = 'style' + endif + let l:end_col_pattern = get(s:end_col_pattern_map, l:code, '') if !empty(l:end_col_pattern) diff --git a/test/handler/test_flake8_handler.vader b/test/handler/test_flake8_handler.vader index 969d4ec..7de2827 100644 --- a/test/handler/test_flake8_handler.vader +++ b/test/handler/test_flake8_handler.vader @@ -4,7 +4,7 @@ Before: After: call ale#linter#Reset() -Execute(The flake8 handler should handle basic errors): +Execute(The flake8 handler should handle basic warnings): AssertEqual \ [ \ { @@ -12,10 +12,19 @@ Execute(The flake8 handler should handle basic errors): \ 'col': 6, \ 'type': 'E', \ 'text': 'E111: indentation is not a multiple of four', + \ 'sub_type': 'style', + \ }, + \ { + \ 'lnum': 7, + \ 'col': 6, + \ 'type': 'W', + \ 'text': 'W123: some warning', + \ 'sub_type': 'style', \ }, \ ], \ ale_linters#python#flake8#Handle(1, [ \ 'stdin:6:6: E111 indentation is not a multiple of four', + \ 'stdin:7:6: W123 some warning', \ ]) Execute(The flake8 handler should set end column indexes should be set for certain errors): @@ -24,35 +33,35 @@ Execute(The flake8 handler should set end column indexes should be set for certa \ { \ 'lnum': 25, \ 'col': 1, - \ 'type': 'W', + \ 'type': 'E', \ 'end_col': 3, \ 'text': 'F821: undefined name ''foo''', \ }, \ { \ 'lnum': 28, \ 'col': 5, - \ 'type': 'W', + \ 'type': 'E', \ 'end_col': 9, \ 'text': 'F405: hello may be undefined, or defined from star imports: x', \ }, \ { \ 'lnum': 104, \ 'col': 5, - \ 'type': 'W', + \ 'type': 'E', \ 'end_col': 12, \ 'text': 'F999: ''continue'' not properly in loop', \ }, \ { \ 'lnum': 106, \ 'col': 5, - \ 'type': 'W', + \ 'type': 'E', \ 'end_col': 9, \ 'text': 'F999: ''break'' outside loop', \ }, \ { \ 'lnum': 109, \ 'col': 5, - \ 'type': 'W', + \ 'type': 'E', \ 'end_col': 8, \ 'text': 'F841: local variable ''test'' is assigned to but never used', \ }, @@ -110,6 +119,7 @@ Execute (The flake8 handler should handle names with spaces): \ 'col': 6, \ 'type': 'E', \ 'text': 'E111: indentation is not a multiple of four', + \ 'sub_type': 'style', \ }, \ ], \ ale_linters#python#flake8#Handle(42, [