mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-10 05:22:31 +08:00
Add support for Erlang dialyzer (#2509)
* Add support for Erlang dialyzer * Add an option to specify rebar3 profile In doing so, the use of the `**` wildcard becomes unnecessary.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('erlang', 'dialyzer')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default command should be correct.):
|
||||
AssertLinter 'dialyzer',
|
||||
\ ale#Escape('dialyzer')
|
||||
\ . ' -n --plt ' . ale#Escape(expand('$HOME/.dialyzer_plt'))
|
||||
\ . ' -Wunmatched_returns'
|
||||
\ . ' -Werror_handling'
|
||||
\ . ' -Wrace_conditions'
|
||||
\ . ' -Wunderspecs'
|
||||
\ . ' %s'
|
||||
|
||||
Execute(The command should accept configured executable.):
|
||||
let b:ale_erlang_dialyzer_executable = '/usr/bin/dialyzer'
|
||||
AssertLinter '/usr/bin/dialyzer',
|
||||
\ ale#Escape('/usr/bin/dialyzer')
|
||||
\ . ' -n --plt ' . ale#Escape(expand('$HOME/.dialyzer_plt'))
|
||||
\ . ' -Wunmatched_returns'
|
||||
\ . ' -Werror_handling'
|
||||
\ . ' -Wrace_conditions'
|
||||
\ . ' -Wunderspecs'
|
||||
\ . ' %s'
|
||||
|
||||
Execute(The command should accept configured PLT file.):
|
||||
let b:ale_erlang_dialyzer_plt_file = 'custom-plt'
|
||||
AssertLinter 'dialyzer',
|
||||
\ ale#Escape('dialyzer')
|
||||
\ . ' -n --plt ' . ale#Escape(expand('custom-plt'))
|
||||
\ . ' -Wunmatched_returns'
|
||||
\ . ' -Werror_handling'
|
||||
\ . ' -Wrace_conditions'
|
||||
\ . ' -Wunderspecs'
|
||||
\ . ' %s'
|
||||
27
test/handler/test_erlang_dialyzer_handler.vader
Normal file
27
test/handler/test_erlang_dialyzer_handler.vader
Normal file
@@ -0,0 +1,27 @@
|
||||
Before:
|
||||
runtime ale_linters/erlang/dialyzer.vim
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The dialyzer handler should handle error messages.):
|
||||
AssertEqual
|
||||
\[
|
||||
\ {
|
||||
\ 'lnum': 3,
|
||||
\ 'lcol': 0,
|
||||
\ 'text': 'Callback info about the provider behaviour is not available',
|
||||
\ 'type': 'W'
|
||||
\ }
|
||||
\],
|
||||
\ ale_linters#erlang#dialyzer#Handle(bufnr(''), ['erl_tidy_prv_fmt.erl:3: Callback info about the provider behaviour is not available'])
|
||||
|
||||
Execute(The dialyzer handler should handle empty file.):
|
||||
AssertEqual
|
||||
\[],
|
||||
\ ale_linters#erlang#dialyzer#Handle(bufnr(''), [])
|
||||
|
||||
Execute(The dialyzer handler should handle empty lines.):
|
||||
AssertEqual
|
||||
\[],
|
||||
\ ale_linters#erlang#dialyzer#Handle(bufnr(''), [''])
|
||||
Reference in New Issue
Block a user