From 7123f7236b5415c29f1b48c01d2528f71c457be2 Mon Sep 17 00:00:00 2001 From: w0rp Date: Sun, 19 Nov 2017 00:54:09 +0000 Subject: [PATCH] #852 - Capture error codes for reek --- ale_linters/ruby/reek.vim | 11 ++++++----- test/handler/test_reek_handler.vader | 15 ++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ale_linters/ruby/reek.vim b/ale_linters/ruby/reek.vim index 10bc9a8..a11b9cf 100644 --- a/ale_linters/ruby/reek.vim +++ b/ale_linters/ruby/reek.vim @@ -13,6 +13,7 @@ function! ale_linters#ruby#reek#Handle(buffer, lines) abort \ 'lnum': l:location, \ 'type': 'W', \ 'text': s:BuildText(a:buffer, l:error), + \ 'code': l:error.smell_type, \}) endfor endfor @@ -21,19 +22,19 @@ function! ale_linters#ruby#reek#Handle(buffer, lines) abort endfunction 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') - let l:text .= ' ' . a:error.context + call add(l:parts, a:error.context) endif - let l:text .= ' ' . a:error.message + call add(l:parts, a:error.message) 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 - return l:text + return join(l:parts, ' ') endfunction call ale#linter#Define('ruby', { diff --git a/test/handler/test_reek_handler.vader b/test/handler/test_reek_handler.vader index 6861428..db0a111 100644 --- a/test/handler/test_reek_handler.vader +++ b/test/handler/test_reek_handler.vader @@ -12,17 +12,20 @@ Execute(The reek handler should parse JSON correctly, with only context enabled) \ [ \ { \ 'lnum': 12, - \ 'text': 'Rule1: Context#method violates rule number one', + \ 'text': 'Context#method violates rule number one', + \ 'code': 'Rule1', \ 'type': 'W', \ }, \ { \ 'lnum': 34, - \ 'text': 'Rule2: Context#method violates rule number two', + \ 'text': 'Context#method violates rule number two', + \ 'code': 'Rule2', \ 'type': 'W', \ }, \ { \ 'lnum': 56, - \ 'text': 'Rule2: Context#method violates rule number two', + \ 'text': 'Context#method violates rule number two', + \ 'code': 'Rule2', \ 'type': 'W', \ }, \ ], @@ -38,7 +41,8 @@ Execute(The reek handler should parse JSON correctly, with no context or wiki li \ [ \ { \ 'lnum': 12, - \ 'text': 'Rule1: violates rule number one', + \ 'text': 'violates rule number one', + \ 'code': 'Rule1', \ 'type': 'W', \ }, \ ], @@ -54,7 +58,8 @@ Execute(The reek handler should parse JSON correctly, with both context and wiki \ [ \ { \ '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', \ }, \ ],