# What is phpcs.nvim `phpcs.nvim` is a simple nvim plugin which wraps the command line `phpcs` and `phpcbf` binaries. ## Installation lazy.nvim ```lua { 'gtusler/phpcs.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope.nvim', 'rcarriga/nvim-notify', -- optional }, config = function() -- see configuration section end, } ``` ## Configuration ```lua require('phpcs').setup({ -- Path to the `phpcs` binary. phpcs = "$HOME/.config/composer/vendor/bin/phpcs", -- Path to the `phpcbf` binary. phpcbf = "$HOME/.config/composer/vendor/bin/phpcbf", -- Could be the name of a phpcs standard. -- Could be the path to a phpcs.xml file. -- Could be 'auto', where we crawl up from cwd checking for ./phpcs.xml and the closest value is used. standard = "auto", -- Set a standard to use when auto-detection doesn't find a phpcs.xml file. standard_fallback = "PSR2", -- Whether or not to automatically fix any issues on save. fix_on_save = false, }) ``` ## Usage `phpcs` attaches to any open buffer which has the `.php` file extension. If configured to automatically fix on save: - In an open buffer, `phpcbf` is run on save. If configured not to automatically fix on save: - In an open buffer, `phpcs` is run on save. - To automatically fix the issues highlighted by `phpcs`, you can run `:Phpcbf`. ### Commands There are commands available, try typing `:Php`, hitting `tab` and seeing what's there. - `:Phpcs` Run the code sniffer. - `:Phpcbf` Run the code formatter. - `:PhpcsDisable` Disable automatic sniffing. - `:PhpcsEnable` Enable automatic sniffing. - `:PhpcsCurrentStandard` Print the standard which is currently in use. - `:PhpcsListStandards` Print standards which are installed and accessible via a string in config. - `:PhpcsFixOnSave` Print the current status of fix on save. - `:PhpcsFixOnSaveOff` Dynamically disable fix on save. - `:PhpcsFixOnSaveOn` Dinamically enable fix on save.