mirror of
https://github.com/dense-analysis/ale.git
synced 2026-04-14 03:39:36 +08:00
When phpcs.xml sets installed_paths to a relative path (e.g. vendor/slevomat/coding-standard), running phpcs from the file's directory causes it to fail because the path is resolved relative to cwd rather than the config file location. Change cwd to find the nearest composer.json and use that directory, matching how most PHP ecosystem tools expect to operate. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
43 lines
1.5 KiB
Plaintext
43 lines
1.5 KiB
Plaintext
Before:
|
|
call ale#assert#SetUpLinterTest('php', 'phpcs')
|
|
|
|
After:
|
|
unlet! g:executable
|
|
|
|
call ale#assert#TearDownLinterTest()
|
|
|
|
Execute(The local phpcs executable should be used):
|
|
call ale#test#SetFilename('../test-files/phpcs/project-with-phpcs/foo/test.php')
|
|
|
|
let g:executable = ale#path#Simplify(g:dir . '/../test-files/phpcs/project-with-phpcs/vendor/bin/phpcs')
|
|
|
|
AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/phpcs/project-with-phpcs')
|
|
AssertLinter g:executable, ale#Escape(g:executable)
|
|
\ . ' -s --report=emacs --stdin-path=%s'
|
|
|
|
Execute(use_global should override local executable detection):
|
|
let g:ale_php_phpcs_use_global = 1
|
|
|
|
call ale#test#SetFilename('../test-files/phpcs/project-with-phpcs/foo/test.php')
|
|
|
|
AssertLinter 'phpcs', ale#Escape('phpcs')
|
|
\ . ' -s --report=emacs --stdin-path=%s'
|
|
|
|
Execute(Projects without local executables should use the global one):
|
|
call ale#test#SetFilename('../test-files/phpcs/project-without-phpcs/foo/test.php')
|
|
|
|
AssertLinter 'phpcs', ale#Escape('phpcs')
|
|
\ . ' -s --report=emacs --stdin-path=%s'
|
|
|
|
Execute(User provided options should be used):
|
|
let g:ale_php_phpcs_options = '--my-user-provided-option my-value'
|
|
|
|
AssertLinter 'phpcs', ale#Escape('phpcs')
|
|
\ . ' -s --report=emacs --stdin-path=%s --my-user-provided-option my-value'
|
|
|
|
Execute(The _standard option should be used):
|
|
let g:ale_php_phpcs_standard = 'foobar'
|
|
|
|
AssertLinter 'phpcs', ale#Escape('phpcs')
|
|
\ . ' -s --report=emacs --stdin-path=%s --standard=' . ale#Escape('foobar')
|