summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
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