diff options
author | Arie Oldman <arie.oldman@vhs7.tv> | 2021-11-18 14:54:10 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-18 12:54:10 +0900 |
commit | 3b8ff6536e6eb4b9af946e2028164e8966ec5458 (patch) | |
tree | 2a83e0663a948d7e00910afab90433d69e42e157 | |
parent | 31dc6a61a07839ea906f6f0b80be713fb8cad1c7 (diff) | |
download | ale-3b8ff6536e6eb4b9af946e2028164e8966ec5458.zip |
Adds PHPActor Linter (LSP) (#3975)
* Adds phpactor lsp linter
* Fixes missing comma
* Adds tests for phpactor lsp linter
* Adds note that this part is not my own work
* Removes unused variable
* Adds phpactor to supported tools list
* Fixes doc sorting
* Wraps phpactor in code tags
-rw-r--r-- | ale_linters/php/phpactor.vim | 23 | ||||
-rw-r--r-- | doc/ale-supported-languages-and-tools.txt | 1 | ||||
-rw-r--r-- | supported-tools.md | 1 | ||||
-rw-r--r-- | test/linter/test_phpactor.vader | 20 |
4 files changed, 45 insertions, 0 deletions
diff --git a/ale_linters/php/phpactor.vim b/ale_linters/php/phpactor.vim new file mode 100644 index 00000000..b137eaf1 --- /dev/null +++ b/ale_linters/php/phpactor.vim @@ -0,0 +1,23 @@ +" Author: Arizard <https://github.com/Arizard> +" Description: PHPactor integration for ALE + +" Copied from langserver.vim +function! ale_linters#php#phpactor#GetProjectRoot(buffer) abort + let l:composer_path = ale#path#FindNearestFile(a:buffer, 'composer.json') + + if (!empty(l:composer_path)) + return fnamemodify(l:composer_path, ':h') + endif + + let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git') + + return !empty(l:git_path) ? fnamemodify(l:git_path, ':h:h') : '' +endfunction + +call ale#linter#Define('php', { +\ 'name': 'phpactor', +\ 'lsp': 'stdio', +\ 'executable': 'phpactor', +\ 'command': '%e language-server', +\ 'project_root': function('ale_linters#php#phpactor#GetProjectRoot'), +\}) diff --git a/doc/ale-supported-languages-and-tools.txt b/doc/ale-supported-languages-and-tools.txt index 5a780803..492071a2 100644 --- a/doc/ale-supported-languages-and-tools.txt +++ b/doc/ale-supported-languages-and-tools.txt @@ -382,6 +382,7 @@ Notes: * `phan` * `php -l` * `php-cs-fixer` + * `phpactor` * `phpcbf` * `phpcs` * `phpmd` diff --git a/supported-tools.md b/supported-tools.md index 03d1ebb8..b03c4c66 100644 --- a/supported-tools.md +++ b/supported-tools.md @@ -391,6 +391,7 @@ formatting. * [phan](https://github.com/phan/phan) see `:help ale-php-phan` to instructions * [php -l](https://secure.php.net/) * [php-cs-fixer](http://cs.sensiolabs.org/) + * [phpactor](https://github.com/phpactor/phpactor) * [phpcbf](https://github.com/squizlabs/PHP_CodeSniffer) * [phpcs](https://github.com/squizlabs/PHP_CodeSniffer) * [phpmd](https://phpmd.org) diff --git a/test/linter/test_phpactor.vader b/test/linter/test_phpactor.vader new file mode 100644 index 00000000..8968bba1 --- /dev/null +++ b/test/linter/test_phpactor.vader @@ -0,0 +1,20 @@ +Before: + call ale#assert#SetUpLinterTest('php', 'phpactor') + +After: + call ale#assert#TearDownLinterTest() + +Execute(The default executable path should be correct): + AssertLinter 'phpactor', + \ ale#Escape('phpactor') . ' language-server' + +Execute(The project path should be correct for .git directories): + call ale#test#SetFilename('../test-files/php/with-git/test.php') + silent! call mkdir('../test-files/php/with-git/.git') + + AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/php/with-git') + +Execute(The project path should be correct for composer.json file): + call ale#test#SetFilename('../test-files/php/with-composer/test.php') + + AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/php/with-composer') |