summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2017-08-20 13:42:03 +0100
committerGitHub <noreply@github.com>2017-08-20 13:42:03 +0100
commit47e681529bbb98410d31bc0659b4b81c6fc7a97c (patch)
treec53a66f3a70fb48e303dcad840dde423753d866c /autoload
parent4c6b58f70c378434173991ad5edf23e9bc972bc2 (diff)
parent5a9a365aed333560c9490dbddc8f382f47c08564 (diff)
downloadale-47e681529bbb98410d31bc0659b4b81c6fc7a97c.zip
Merge pull request #862 from notomo/add-phpcbf-fixer
add phpcbf fixer
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/fix/registry.vim5
-rw-r--r--autoload/ale/fixers/phpcbf.vim24
2 files changed, 29 insertions, 0 deletions
diff --git a/autoload/ale/fix/registry.vim b/autoload/ale/fix/registry.vim
index d9c69f53..5c3b8d94 100644
--- a/autoload/ale/fix/registry.vim
+++ b/autoload/ale/fix/registry.vim
@@ -77,6 +77,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['swift'],
\ 'description': 'Apply SwiftFormat to a file.',
\ },
+\ 'phpcbf': {
+\ 'function': 'ale#fixers#phpcbf#Fix',
+\ 'suggested_filetypes': ['php'],
+\ 'description': 'Fix PHP files with phpcbf.',
+\ },
\}
" Reset the function registry to the default entries.
diff --git a/autoload/ale/fixers/phpcbf.vim b/autoload/ale/fixers/phpcbf.vim
new file mode 100644
index 00000000..9bff7412
--- /dev/null
+++ b/autoload/ale/fixers/phpcbf.vim
@@ -0,0 +1,24 @@
+" Author: notomo <notomo.motono@gmail.com>
+" Description: Fixing files with phpcbf.
+
+call ale#Set('php_phpcbf_standard', '')
+call ale#Set('php_phpcbf_executable', 'phpcbf')
+call ale#Set('php_phpcbf_use_global', 0)
+
+function! ale#fixers#phpcbf#GetExecutable(buffer) abort
+ return ale#node#FindExecutable(a:buffer, 'php_phpcbf', [
+ \ 'vendor/bin/phpcbf',
+ \ 'phpcbf'
+ \])
+endfunction
+
+function! ale#fixers#phpcbf#Fix(buffer) abort
+ let l:executable = ale#fixers#phpcbf#GetExecutable(a:buffer)
+ let l:standard = ale#Var(a:buffer, 'php_phpcbf_standard')
+ let l:standard_option = !empty(l:standard)
+ \ ? '--standard=' . l:standard
+ \ : ''
+ return {
+ \ 'command': ale#Escape(l:executable) . ' --stdin-path=%s ' . l:standard_option
+ \}
+endfunction