#852 - Capture error codes for reek

This commit is contained in:
w0rp 2017-11-19 00:54:09 +00:00
parent c012563984
commit 7123f7236b
2 changed files with 16 additions and 10 deletions

View File

@ -13,6 +13,7 @@ function! ale_linters#ruby#reek#Handle(buffer, lines) abort
\ 'lnum': l:location, \ 'lnum': l:location,
\ 'type': 'W', \ 'type': 'W',
\ 'text': s:BuildText(a:buffer, l:error), \ 'text': s:BuildText(a:buffer, l:error),
\ 'code': l:error.smell_type,
\}) \})
endfor endfor
endfor endfor
@ -21,19 +22,19 @@ function! ale_linters#ruby#reek#Handle(buffer, lines) abort
endfunction endfunction
function! s:BuildText(buffer, error) abort function! s:BuildText(buffer, error) abort
let l:text = a:error.smell_type . ':' let l:parts = []
if ale#Var(a:buffer, 'ruby_reek_show_context') if ale#Var(a:buffer, 'ruby_reek_show_context')
let l:text .= ' ' . a:error.context call add(l:parts, a:error.context)
endif endif
let l:text .= ' ' . a:error.message call add(l:parts, a:error.message)
if ale#Var(a:buffer, 'ruby_reek_show_wiki_link') if ale#Var(a:buffer, 'ruby_reek_show_wiki_link')
let l:text .= ' [' . a:error.wiki_link . ']' call add(l:parts, '[' . a:error.wiki_link . ']')
endif endif
return l:text return join(l:parts, ' ')
endfunction endfunction
call ale#linter#Define('ruby', { call ale#linter#Define('ruby', {

View File

@ -12,17 +12,20 @@ Execute(The reek handler should parse JSON correctly, with only context enabled)
\ [ \ [
\ { \ {
\ 'lnum': 12, \ 'lnum': 12,
\ 'text': 'Rule1: Context#method violates rule number one', \ 'text': 'Context#method violates rule number one',
\ 'code': 'Rule1',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ { \ {
\ 'lnum': 34, \ 'lnum': 34,
\ 'text': 'Rule2: Context#method violates rule number two', \ 'text': 'Context#method violates rule number two',
\ 'code': 'Rule2',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ { \ {
\ 'lnum': 56, \ 'lnum': 56,
\ 'text': 'Rule2: Context#method violates rule number two', \ 'text': 'Context#method violates rule number two',
\ 'code': 'Rule2',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ ], \ ],
@ -38,7 +41,8 @@ Execute(The reek handler should parse JSON correctly, with no context or wiki li
\ [ \ [
\ { \ {
\ 'lnum': 12, \ 'lnum': 12,
\ 'text': 'Rule1: violates rule number one', \ 'text': 'violates rule number one',
\ 'code': 'Rule1',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ ], \ ],
@ -54,7 +58,8 @@ Execute(The reek handler should parse JSON correctly, with both context and wiki
\ [ \ [
\ { \ {
\ 'lnum': 12, \ 'lnum': 12,
\ 'text': 'Rule1: Context#method violates rule number one [https://example.com/Rule1.md]', \ 'text': 'Context#method violates rule number one [https://example.com/Rule1.md]',
\ 'code': 'Rule1',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ ], \ ],