Skip to content

yaegassy/coc-phpstan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coc-phpstan

PHPStan (PHP Static Analysis tool) extension for coc.nvim.

coc-phpstan-demo

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

  1. phpstan.toolPath setting
  2. vendor/bin/phpstan (project)
  3. 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

"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 is phpstan.neon, phpstan.neon.dist or phpstan.dist.neon, default: true

Commands

  • phpstan.download: Download PHPStan
  • phpstan.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