Awesome
coc-phpstan
PHPStan (PHP Static Analysis tool) extension for coc.nvim.
<img width="780" alt="coc-phpstan-demo" src="https://user-images.githubusercontent.com/188642/119638316-7fc24a80-be51-11eb-8b0e-5ec592a90154.gif">Install
CocInstall:
:CocInstall @yaegassy/coc-phpstan
scoped package
vim-plug:
Plug 'yaegassy/coc-phpstan', {'do': 'yarn install --frozen-lockfile'}
Features
- Linter
- CodeAction
- Downloader
Detect tool: phpstan
phpstan.toolPath
settingvendor/bin/phpstan
(project)- Extension-only
phpstan
retrieved by the download feature (:CocCommand phpstan.download
)- Mac/Linux:
~/.config/coc/extensions/@yaegassy/coc-phpstan-data/phpstan
- Windows:
~/AppData/Local/coc/extensions/@yaegassy/coc-phpstan-data/phpstan
- Mac/Linux:
"phpstan.neon", "phpstan.neon.dist" or "phpstan.dist.neon" configuration file
If you wish to use a configuration file you should place the phpstan.neon
, phpstan.neon.dist
or phpstan.dist.neon
file in the root of your project folder
Linting of NEON file
This extension includes a feature to perform linting using the neon-js
library in a phpstan configuration file (phpstan.neon
, phpstan.neon.dist
or phpstan.dist.neon
).
To run this linting feature, the filetype must be neon
.
Install "neon" related plugin (e.g. yaegassy/nette-neon.vim).
Configuration options ("coc-settings.json" or ".vim/coc-settings.json")
phpstan.enable
: Enable coc-phpstan extension, default:true
phpstan.toolPath
: The path to the phpstan (Absolute path), default:""
phpstan.level
: Specifies the rule level (0 - 9 and max) to run, If you apply this setting, the level setting in the phpstan.neon file will be ignored, e.g. valid option"9"
,"max"
, default:null
phpstan.configuration
: Specifies the path to a configuration file, default:null
phpstan.memoryLimit
: Specifies the memory limit in the same format php.ini accepts, Example: -1, 1024M, 2G, default:"-1"
phpstan.download.checkOnStartup
: Perform built-in download if phpstan is not present at startup, default:true
phpstan.neonLint.enable
: Enable neon-js lint (diagnostics). It will only work if the file name isphpstan.neon
,phpstan.neon.dist
orphpstan.dist.neon
, default:true
Commands
phpstan.download
: Download PHPStanphpstan.showOutput
: Show phpstan output channel
Code Actions
Example key mapping (Code Action related):
nmap <silent> ga <Plug>(coc-codeaction-line)
Usage:
In the line with diagnostic message, enter the mapped key (e.g. ga
) and you will see a list of code actions that can be performed.
Actions:
Add @phpstan-ignore-next-line
Add @phpstan-ignore-line
Thanks
License
MIT
This extension is built with create-coc-extension