diff --git a/ale_linters/php/phpstan.vim b/ale_linters/php/phpstan.vim index b99e4f58..24762086 100644 --- a/ale_linters/php/phpstan.vim +++ b/ale_linters/php/phpstan.vim @@ -4,6 +4,7 @@ " Set to change the ruleset let g:ale_php_phpstan_executable = get(g:, 'ale_php_phpstan_executable', 'phpstan') let g:ale_php_phpstan_level = get(g:, 'ale_php_phpstan_level', '4') +let g:ale_php_phpstan_configuration = get(g:, 'ale_php_phpstan_configuration', '') function! ale_linters#php#phpstan#GetExecutable(buffer) abort return ale#Var(a:buffer, 'php_phpstan_executable') @@ -12,10 +13,16 @@ endfunction function! ale_linters#php#phpstan#GetCommand(buffer) abort let l:executable = ale_linters#php#phpstan#GetExecutable(a:buffer) + let l:configuration = ale#Var(a:buffer, 'php_phpstan_configuration') + let l:configuration_option = !empty(l:configuration) + \ ? ' -c ' . l:configuration + \ : '' + return ale#Escape(l:executable) \ . ' analyze -l' \ . ale#Var(a:buffer, 'php_phpstan_level') \ . ' --errorFormat raw' + \ . l:configuration_option \ . ' %s' endfunction diff --git a/doc/ale-php.txt b/doc/ale-php.txt index adaca08a..bae6d7d0 100644 --- a/doc/ale-php.txt +++ b/doc/ale-php.txt @@ -124,5 +124,13 @@ g:ale_php_phpstan_level *g:ale_php_phpstan_level* strictest. +g:ale_php_phpstan_configuration *g:ale_php_phpstan_configuration* + *b:ale_php_phpstan_configuration* + Type: |String| + Default: `''` + + This variable sets path to phpstan configuration file. + + =============================================================================== vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: diff --git a/test/command_callback/test_phpstan_command_callbacks.vader b/test/command_callback/test_phpstan_command_callbacks.vader index 7366df8b..169c5bb7 100644 --- a/test/command_callback/test_phpstan_command_callbacks.vader +++ b/test/command_callback/test_phpstan_command_callbacks.vader @@ -1,9 +1,11 @@ Before: Save g:ale_php_phpstan_executable Save g:ale_php_phpstan_level + Save g:ale_php_phpstan_configuration unlet! g:ale_php_phpstan_executable unlet! g:ale_php_phpstan_level + unlet! g:ale_php_phpstan_configuration runtime ale_linters/php/phpstan.vim @@ -27,3 +29,10 @@ Execute(project with level set to 3): AssertEqual \ ale#Escape('phpstan') . ' analyze -l3 --errorFormat raw %s', \ ale_linters#php#phpstan#GetCommand(bufnr('')) + +Execute(Custom phpstan configuration file): + let g:ale_php_phpstan_configuration = 'phpstan_config' + + AssertEqual + \ ale#Escape('phpstan') . ' analyze -l4 --errorFormat raw -c phpstan_config %s', + \ ale_linters#php#phpstan#GetCommand(bufnr(''))