Skip to content

aeke/vim-phpfmt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Vim-phpfmt

This project follows a Code of Conduct.

Inspired by vim-php-cs-fixer. This plugin integrates phpfmt.

This plugin will execute the fmt.phar command on the directory or file (depends on which command you call). See options to know how to customize that.

The plugin comes with phpfmt fmt.phar embedded, it should suffice.

If you see any improvement or question, please, contribute or create an issue.

Keeping up-to-date:

This plugin updates fmt.phar during VIM opening. If this fails, please open an issue stating what happens and possible logs.

Options available:

let g:phpfmt_on_save = get(g:, 'phpfmt_on_save', 1) " format on save (autocmd)
let g:phpfmt_php_path = "php"               " Path to PHP
let g:phpfmt_prepasses_list = "AutoPreincrement,JointToImplode"
let g:phpfmt_passes_list = "ReturnNull"
let g:phpfmt_enable_default_mapping = 1     " Enable the mapping by default (<leader>pcd)
let g:phpfmt_indent_with_space = 4         " use spaces instead of tabs for indentation
let g:phpfmt_enable_auto_align = 1         " Enable auto align of = and =>
let g:phpfmt_visibility_order = 1          " Fixes visibiliy order for method in classes - PSR-2 4.2
let g:smart_linebreak_after_curly = 1      " Convert multistatement blocks into multiline blocks

Default mapping is <leader>pcf (formats a file) and <leader>pcd (formats the whole directory of the file).

If you want to change it, update plugin/phpfmt.vim file, editing these lines:

nnoremap <silent><leader>pcd :call PhpFmtFixDirectory()<CR>
nnoremap <silent><leader>pcf :call PhpFmtFixFile()<CR>

Installation

Via Vundle, add:

Bundle 'aeke/vim-phpfmt'

Open VIM and execute: :PluginInstall

Via Pathogen, do:

cd ~/.vim/bundle
git clone git@github.com:aeke/vim-phpfmt.git

Via vim-plug, add:

Plug 'aeke/vim-phpfmt'

Open VIM and execute: :PlugInstall

Releases

No releases published

Packages

No packages published