diff options
author | David Sierra DiazGranados <davidsierradz@gmail.com> | 2017-11-05 13:53:12 -0500 |
---|---|---|
committer | w0rp <w0rp@users.noreply.github.com> | 2017-11-05 18:53:12 +0000 |
commit | 7086586b1776d2b5f3bf87a7f0c25595a5d7e1b0 (patch) | |
tree | 6291c26a2c6529864ae80444b1d360bb9e7b4cf5 | |
parent | 7b5108d934d8682490ab3d9af25361e06a3df3f8 (diff) | |
download | ale-7086586b1776d2b5f3bf87a7f0c25595a5d7e1b0.zip |
Add executable option for phpmd linter (resolves #1076) (#1078)
* Add executable option for phpmd linter (resolves #1076)
* Add test for phpmd executable option
-rw-r--r-- | ale_linters/php/phpmd.vim | 15 | ||||
-rw-r--r-- | doc/ale-php.txt | 8 | ||||
-rw-r--r-- | test/command_callback/test_phpmd_command_callbacks.vader | 20 |
3 files changed, 40 insertions, 3 deletions
diff --git a/ale_linters/php/phpmd.vim b/ale_linters/php/phpmd.vim index e4192c70..e9450752 100644 --- a/ale_linters/php/phpmd.vim +++ b/ale_linters/php/phpmd.vim @@ -1,11 +1,20 @@ -" Author: medains <https://github.com/medains> +" Author: medains <https://github.com/medains>, David Sierra <https://github.com/davidsierradz> " Description: phpmd for PHP files +let g:ale_php_phpmd_executable = get(g:, 'ale_php_phpmd_executable', 'phpmd') + " Set to change the ruleset let g:ale_php_phpmd_ruleset = get(g:, 'ale_php_phpmd_ruleset', 'cleancode,codesize,controversial,design,naming,unusedcode') +function! ale_linters#php#phpmd#GetExecutable(buffer) abort + return ale#Var(a:buffer, 'php_phpmd_executable') +endfunction + function! ale_linters#php#phpmd#GetCommand(buffer) abort - return 'phpmd %s text ' + let l:executable = ale_linters#php#phpmd#GetExecutable(a:buffer) + + return ale#Escape(l:executable) + \ . ' %s text ' \ . ale#Var(a:buffer, 'php_phpmd_ruleset') \ . ' --ignore-violations-on-exit %t' endfunction @@ -30,7 +39,7 @@ endfunction call ale#linter#Define('php', { \ 'name': 'phpmd', -\ 'executable': 'phpmd', +\ 'executable_callback': 'ale_linters#php#phpmd#GetExecutable', \ 'command_callback': 'ale_linters#php#phpmd#GetCommand', \ 'callback': 'ale_linters#php#phpmd#Handle', \}) diff --git a/doc/ale-php.txt b/doc/ale-php.txt index f09c95fd..455472f7 100644 --- a/doc/ale-php.txt +++ b/doc/ale-php.txt @@ -121,6 +121,14 @@ g:ale_php_phpcs_use_global *g:ale_php_phpcs_use_global* =============================================================================== phpmd *ale-php-phpmd* +g:ale_php_phpmd_executable *g:ale_php_phpmd_executable* + *b:ale_php_phpmd_executable* + Type: |String| + Default: `'phpmd'` + + This variable sets executable used for phpmd. + + g:ale_php_phpmd_ruleset *g:ale_php_phpmd_ruleset* *b:ale_php_phpmd_ruleset* Type: |String| diff --git a/test/command_callback/test_phpmd_command_callbacks.vader b/test/command_callback/test_phpmd_command_callbacks.vader new file mode 100644 index 00000000..928b9771 --- /dev/null +++ b/test/command_callback/test_phpmd_command_callbacks.vader @@ -0,0 +1,20 @@ +Before: + Save g:ale_php_phpmd_executable + + unlet! g:ale_php_phpmd_executable + + runtime ale_linters/php/phpmd.vim + +After: + Restore + + call ale#linter#Reset() + +Execute(Custom executables should be used for the executable and command): + let g:ale_php_phpmd_executable = 'phpmd_test' + + AssertEqual 'phpmd_test', ale_linters#php#phpmd#GetExecutable(bufnr('')) + AssertEqual + \ ale#Escape('phpmd_test') + \ . ' %s text cleancode,codesize,controversial,design,naming,unusedcode --ignore-violations-on-exit %t', + \ ale_linters#php#phpmd#GetCommand(bufnr('')) |