From 3dd2d9deddd68edd24bbe3f6b089a10c302c961e Mon Sep 17 00:00:00 2001 From: Filip Vavera Date: Thu, 11 Oct 2018 11:00:10 +0200 Subject: [PATCH] Fix Credo message types (#1963) * Add more Credo message types * Add tests --- ale_linters/elixir/credo.vim | 14 +++++++++++--- test/handler/test_credo_handler.vader | 26 +++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/ale_linters/elixir/credo.vim b/ale_linters/elixir/credo.vim index 6e949677..d778471c 100644 --- a/ale_linters/elixir/credo.vim +++ b/ale_linters/elixir/credo.vim @@ -11,10 +11,18 @@ function! ale_linters#elixir#credo#Handle(buffer, lines) abort let l:type = l:match[3] let l:text = l:match[4] - if l:type is# 'C' - let l:type = 'E' - elseif l:type is# 'R' + " Refactoring opportunities + if l:type is# 'F' let l:type = 'W' + " Consistency + elseif l:type is# 'C' + let l:type = 'W' + " Software Design + elseif l:type is# 'D' + let l:type = 'I' + " Code Readability + elseif l:type is# 'R' + let l:type = 'I' endif call add(l:output, { diff --git a/test/handler/test_credo_handler.vader b/test/handler/test_credo_handler.vader index 5eb0e967..1fd54bb5 100644 --- a/test/handler/test_credo_handler.vader +++ b/test/handler/test_credo_handler.vader @@ -10,20 +10,44 @@ Execute(The credo handler should parse lines correctly): \ { \ 'bufnr': 347, \ 'lnum': 1, + \ 'col': 24, + \ 'text': 'This code can be refactored', + \ 'type': 'W', + \ }, + \ { + \ 'bufnr': 347, + \ 'lnum': 1, \ 'col': 4, \ 'text': 'There is no whitespace around parentheses/brackets most of the time, but here there is.', - \ 'type': 'E', + \ 'type': 'W', + \ }, + \ { + \ 'bufnr': 347, + \ 'lnum': 5, + \ 'col': 21, + \ 'text': 'TODO comment', + \ 'type': 'I', \ }, \ { \ 'bufnr': 347, \ 'lnum': 26, \ 'col': 0, \ 'text': 'If/else blocks should not have a negated condition in `if`.', + \ 'type': 'I', + \ }, + \ { + \ 'bufnr': 347, + \ 'lnum': 15, + \ 'col': 1, + \ 'text': 'Warning in the code', \ 'type': 'W', \ }, \ ], \ ale_linters#elixir#credo#Handle(347, [ \ 'This line should be ignored completely', + \ 'lib/my_code/test.ex:1:24: F: This code can be refactored', \ 'lib/filename.ex:1:4: C: There is no whitespace around parentheses/brackets most of the time, but here there is.', + \ 'lib/my_code/test.ex:5:21: D: TODO comment', \ 'lib/phoenix/channel.ex:26: R: If/else blocks should not have a negated condition in `if`.', + \ 'lib/my_code/test.ex:15:1: W: Warning in the code', \ ])