forked from github-mirrors/ale
add phpstan local executable detection (#3809)
This commit is contained in:
parent
2a5a7baffc
commit
9a9fd24b17
|
@ -6,6 +6,7 @@ let g:ale_php_phpstan_executable = get(g:, 'ale_php_phpstan_executable', 'phpsta
|
||||||
let g:ale_php_phpstan_level = get(g:, 'ale_php_phpstan_level', '')
|
let g:ale_php_phpstan_level = get(g:, 'ale_php_phpstan_level', '')
|
||||||
let g:ale_php_phpstan_configuration = get(g:, 'ale_php_phpstan_configuration', '')
|
let g:ale_php_phpstan_configuration = get(g:, 'ale_php_phpstan_configuration', '')
|
||||||
let g:ale_php_phpstan_autoload = get(g:, 'ale_php_phpstan_autoload', '')
|
let g:ale_php_phpstan_autoload = get(g:, 'ale_php_phpstan_autoload', '')
|
||||||
|
call ale#Set('php_phpstan_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||||
|
|
||||||
function! ale_linters#php#phpstan#GetCommand(buffer, version) abort
|
function! ale_linters#php#phpstan#GetCommand(buffer, version) abort
|
||||||
let l:configuration = ale#Var(a:buffer, 'php_phpstan_configuration')
|
let l:configuration = ale#Var(a:buffer, 'php_phpstan_configuration')
|
||||||
|
@ -64,10 +65,16 @@ endfunction
|
||||||
|
|
||||||
call ale#linter#Define('php', {
|
call ale#linter#Define('php', {
|
||||||
\ 'name': 'phpstan',
|
\ 'name': 'phpstan',
|
||||||
\ 'executable': {b -> ale#Var(b, 'php_phpstan_executable')},
|
\ 'executable': {buffer -> ale#path#FindExecutable(buffer, 'php_phpstan', [
|
||||||
|
\ 'vendor/bin/phpstan',
|
||||||
|
\ 'phpstan'
|
||||||
|
\ ])},
|
||||||
\ 'command': {buffer -> ale#semver#RunWithVersionCheck(
|
\ 'command': {buffer -> ale#semver#RunWithVersionCheck(
|
||||||
\ buffer,
|
\ buffer,
|
||||||
\ ale#Var(buffer, 'php_phpstan_executable'),
|
\ ale#path#FindExecutable(buffer, 'php_phpstan', [
|
||||||
|
\ 'vendor/bin/phpstan',
|
||||||
|
\ 'phpstan'
|
||||||
|
\ ]),
|
||||||
\ '%e --version',
|
\ '%e --version',
|
||||||
\ function('ale_linters#php#phpstan#GetCommand'),
|
\ function('ale_linters#php#phpstan#GetCommand'),
|
||||||
\ )},
|
\ )},
|
||||||
|
|
|
@ -21,6 +21,26 @@ After:
|
||||||
unlet! g:old_dir
|
unlet! g:old_dir
|
||||||
call ale#assert#TearDownLinterTest()
|
call ale#assert#TearDownLinterTest()
|
||||||
|
|
||||||
|
Execute(The local phpstan executable should be used):
|
||||||
|
call mkdir('vendor/bin', 'p', 0750)
|
||||||
|
call writefile([''], 'vendor/bin/phpstan')
|
||||||
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
||||||
|
|
||||||
|
let g:executable = ale#path#Simplify(g:dir . '/vendor/bin/phpstan')
|
||||||
|
|
||||||
|
AssertLinter g:executable,
|
||||||
|
\ ale#Escape(g:executable) . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('4') . ' %s'
|
||||||
|
|
||||||
|
Execute(use_global should override local executable detection):
|
||||||
|
let g:ale_php_phpstan_use_global = 1
|
||||||
|
|
||||||
|
call mkdir('vendor/bin', 'p', 0750)
|
||||||
|
call writefile([''], 'vendor/bin/phpstan')
|
||||||
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
||||||
|
|
||||||
|
AssertLinter 'phpstan',
|
||||||
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json -l ' . ale#Escape('4') . ' %s'
|
||||||
|
|
||||||
Execute(Custom executables should be used for the executable and command):
|
Execute(Custom executables should be used for the executable and command):
|
||||||
let g:ale_php_phpstan_executable = 'phpstan_test'
|
let g:ale_php_phpstan_executable = 'phpstan_test'
|
||||||
|
|
||||||
|
@ -65,7 +85,7 @@ Execute(Configuration dist file exists in current directory):
|
||||||
|
|
||||||
AssertLinter 'phpstan', [
|
AssertLinter 'phpstan', [
|
||||||
\ ale#Escape('phpstan') . ' --version',
|
\ ale#Escape('phpstan') . ' --version',
|
||||||
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw %s'
|
\ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat json %s'
|
||||||
\ ]
|
\ ]
|
||||||
|
|
||||||
Execute(Configuration file exists in current directory, but force phpstan level):
|
Execute(Configuration file exists in current directory, but force phpstan level):
|
||||||
|
|
Loading…
Reference in New Issue