fix phpstan: use configured level 0 (#5053)

Use configured g:ale_php_phpstan_level if it is 0 (as a number rather
than string).

0 (number) is considered to be empty, but '0' (string) is not.
This commit is contained in:
Bill Ruddock
2025-10-26 06:51:03 +00:00
committed by GitHub
parent ed26d1f1d9
commit 21d5de18b2
2 changed files with 11 additions and 0 deletions

View File

@@ -27,6 +27,10 @@ function! ale_linters#php#phpstan#GetCommand(buffer, version) abort
let l:level = ale#Var(a:buffer, 'php_phpstan_level') let l:level = ale#Var(a:buffer, 'php_phpstan_level')
if type(l:level) is v:t_number
let l:level = string(l:level)
endif
if empty(l:level) && empty(ale_linters#php#phpstan#FindConfigFile(a:buffer)) if empty(l:level) && empty(ale_linters#php#phpstan#FindConfigFile(a:buffer))
" if no configuration file is found, then use 4 as a default level " if no configuration file is found, then use 4 as a default level
let l:level = '4' let l:level = '4'

View File

@@ -59,6 +59,13 @@ Execute(project with level set to 3):
AssertLinter 'phpstan', AssertLinter 'phpstan',
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('3') . ' %s' \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('3') . ' %s'
Execute(project with level set to 0):
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
let g:ale_php_phpstan_level = 0
AssertLinter 'phpstan',
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('0') . ' %s'
Execute(Custom phpstan configuration file): Execute(Custom phpstan configuration file):
let g:ale_php_phpstan_configuration = 'phpstan_config' let g:ale_php_phpstan_configuration = 'phpstan_config'