Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benmatselby/sublime-phpcs
🔍 PHP CodeSniffer, PHP Coding Standard Fixer, Linter, and Mess Detector Support for Sublime Text
https://github.com/benmatselby/sublime-phpcs
fixer linter php-codesniffer phpcs phpmd sublime-text sublime-text-plugin
Last synced: 2 months ago
JSON representation
🔍 PHP CodeSniffer, PHP Coding Standard Fixer, Linter, and Mess Detector Support for Sublime Text
- Host: GitHub
- URL: https://github.com/benmatselby/sublime-phpcs
- Owner: benmatselby
- License: other
- Created: 2012-02-09T15:19:25.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2023-10-18T09:51:31.000Z (about 1 year ago)
- Last Synced: 2024-08-02T09:25:33.473Z (5 months ago)
- Topics: fixer, linter, php-codesniffer, phpcs, phpmd, sublime-text, sublime-text-plugin
- Language: Python
- Homepage:
- Size: 141 KB
- Stars: 810
- Watchers: 28
- Forks: 127
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE.md
Awesome Lists containing this project
- php-awesome - sublime-phpcs - Sublime Text 的 PHP 代码格式检查插件 (PHP相关软件/工具 / PRC)
README
# sublime-phpcs
This is a plugin for Sublime Text which provides checkstyle reports using the following tools (all optional):
- PHP_CodeSniffer (`phpcs`)
- Linter (`php -l`)
- PHP Mess Detector (`phpmd`)You can also configure the plugin to fix the issues using either
- PHP Coding Standards Fixer (php-cs-fixer)
- PHP Code Beautifier (phpcbf) application## Requirements
Requirements for this plugin, should you want all the options to work:
- [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) 3.5+
- [PHPMD](https://phpmd.org) 2.8+
- [PHP CS Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) 2.6+This plugin has been tested on:
- Mac OS X 10.8.2
- Ubuntu 11.10
- Windows 7
- Sublime Text 2
- Sublime Text 3
- Sublime Text 4It may work with other versions, but we cannot confirm that.
## Installation
Use Sublime Text’s Package Control (Tools -> Command Palette -> Package Control: Install Package -> Phpcs) to install this plugin. This is the recommended installation path.
Or
Simply checkout the git repo into “~/Library/Application Support/Sublime Text/Packages/ or the equivalent folder on Windows or Linux.
```shell
cd ~/Library/Application\ Support/Sublime\ Text/Packages/
git clone git://github.com/benmatselby/sublime-phpcs.git Phpcs
```In both cases, you may need to then configure the following with the actual path to the application:
- “phpcs_php_path”
- “phpcs_executable_path”
- “phpmd_executable_path”
- “php_cs_fixer_executable_path”They are optional for the plugin. The path needs to include the application such as `/usr/local/bin/phpcs`.
In order to get the path of the application (On a Mac/Linux based environment), you can use:
```shell
which phpcs
which phpmd
which php-cs-fixer
which phpcbf
```## Features
- Ability to run PHP_CodeSniffer
- Ability to run php -l on the open file
- Ability to run PHP Mess Detector on the open file
- Show cached results from PHP_CodeSniffer in open file
- Show errors in the Quick Panel
- Show errors in the Gutter
- Highlight the errors in the editor
- Show the error for a given line in the status bar
- Ability to specify the regular expression of the linter errors
- Ability to specify the location of the PHP_CodeSniffer application
- Ability to specify the location of the PHP Mess Detector application
- Ability to run the PHP Coding Standards Fixer tool which fixes most issues in your code when you want to follow the PHP coding standards as defined in the PSR-1 and PSR-2 documents
- Ability to run the PHP Code Beautifier tool which fixes most issues in your code when you want to follow PHP coding standardsOnce you have right clicked on a file and selected “PHP CodeSniffer” > “Sniff this file…” you will get the output as shown below (depending on the settings you have defined):
## Configuration
You can also define the configuration for the following settings, be it for a project, user settings or the default settings:
### Plugin
- `show_debug` – Do you want the debug information to be sent to the console?
- `extensions_to_execute` – Which filetypes do you want the plugin to execute for?
- `extensions_to_blacklist` – Override the extensions_to_execute in case you have a sub extension such as twig.php etc.
- `phpcs_execute_on_save` – Do you want the code sniffer plugin to run on file save for php files?
- `phpcs_show_errors_on_save` – Do you want the errors to be displayed in quick_panel on save?
- `phpcs_show_gutter_marks` – Do you want the errors to be displayed in the gutter?
- `phpcs_outline_for_errors` – Do you want the errors to be highlighted in the editor?
- `phpcs_show_errors_in_status` – Do you want the errors to be displayed in status bar when clicking on the line with error?
- `phpcs_show_quick_panel` – Do you want the errors to be displayed in the quick panel?
- `phpcs_php_prefix_path` – Needed on windows for phar based applications. Also if you cannot make phar executable. Avoid if possible
- `phpcs_commands_to_php_prefix` – List of commands you want the php path to prefix. This would be useful, if you have some commands as a phar that cannot be run without the php prefix, and others using native command.
- `phpcs_icon_scope_color` - What colour to stylise the icon. This needs knowledge of theming of Sublime Test, as it uses scope colours from the theme to “tint” the dot icon. See here### PHP_CodeSniffer
- `phpcs_sniffer_run` – Do you want the PHPCS checker to run?
- `phpcs_command_on_save` – Do you want the command to execute on save?
- `phpcs_executable_path` – The path to the phpcs executable. If empty string, use PATH to find it
- `phpcs_additional_args` – This is the extra information you want to pass to the phpcs command. For example which “standard” you want to run, and if you want to show warnings or not### PHP CodeSniffer Fixer
- `php_cs_fixer_on_save` – Do you want to run the fixer on file save?
- `php_cs_fixer_show_quick_panel` – Do you want the quick panel to display on execution?
- `php_cs_fixer_executable_path` – The path to the php-cs-fixer application.
- `php_cs_fixer_additional_args` – This is the extra information you want to pass to the php-cs-fixer command. For example which “fixers” you want to run### PHP Code Beautifier
- `phpcbf_on_save` – Do you want to run the fixer on file save?
- `phpcbf_show_quick_panel` – Do you want the quick panel to display on execution?
- `phpcbf_executable_path` – The path to the phpcbf application.
- `phpcbf_additional_args` – This is the extra information you want to pass to the phpcbf command. For example which “standard” to use in order to fix the issues### PHP Linter
- `phpcs_linter_run` – Do you want the PHP linter to run?
- `phpcs_linter_command_on_save` – Do you want the command to execute on save?
- `phpcs_php_path` – The path to the PHP executable. If empty string, use PATH to find it
- `phpcs_linter_regex` – The regex for the PHP linter output### PHP Mess Detector
- `phpmd_run` – Do you want the PHPMD to run? Off by default
- `phpmd_command_on_save` – Do you want the command to execute on save?
- `phpmd_executable_path` – The path to the phpmd executable. If empty string, use PATH to find it
- `phpmd_additional_args` – This is the extra information you want to pass to the phpmd command. For example which “rulesets” you want to run### Project Based Settings
Your .project file should look something like this:
```json
{
"folders": [{}],
"settings": {
"phpcs": {
"phpcs_additional_args": {
"--standard": "/path/to/.composer/vendor/drupal/coder/coder_sniffer/Drupal"
}
}
}
}
```Of course this is a example to apply Drupal code sniffer. This could be anything. Whatever you can have on this package settings it can be overwritten under the settings -> phpcs
## FAQ
### What do I do when I get "OSError: [Errno 8] Exec format error"?
- This seems to be an issue you may get with regards to wrapper scripts.
- Please make sure that the application/script you are referencing has the correct shebang line, as per [GH-79](https://github.com/benmatselby/sublime-phpcs/issues/79)### What do I do when I get "OSError: [Error 2] No such file or directory"?
- Well, first of all you need to check that you have PHP_CodeSniffer, and if being used, the phpmd application.
- If you have these applications installed, then it sounds like those applications are not in your PATH, or cannot be found in your PATH by the Python runtime, so configure "phpcs_php_path", "phpcs_executable_path", "phpmd_executable_path" and "php_cs_fixer_executable_path" with the actual paths to those applications### What do I do when I get "OSError: [Errno 13] Permission denied"?
- It sounds like your path settings are incorrect.
- You need to make sure that when you specifiy the path you include the entire path including the application```shell
$ which phpcs
/usr/local/bin/phpcs
```- That entire output is the path you need in your configs.
### What if I've installed the applications using Homebrew?
If you have installed php-cs-fixer, phpmd or phpcs via homebrew then please make sure that you define the "_\_executable_path_" option to the .phar application and not the wrapper script that is placed in your bin folder, as this will cause odd behaviour.
### What other Key Bindings can I setup?
The following is a list of commands that you can bind to a keyboard shortcut:
- phpcs_fix_this_file
- phpcs_clear_sniffer_marks
- phpcs_goto_next_error
- phpcs_show_previous_errors
- phpcs_sniff_this_fileIn order to achieve this you need to add the following to one of your key bindings settings file:
```json
{ "keys": ["ctrl+super+t"], "command": "phpcs_clear_sniffer_marks" }
```To decide which "Fixer" to use, you can do:
```json
{ "keys": ["super+k", "super+f"], "command": "phpcs_fix_this_file", "args": {"tool": "CodeBeautifier"}},
```or
```json
{ "keys": ["super+k", "super+f"], "command": "phpcs_fix_this_file", "args": {"tool": "Fixer"}},
```You can then change the ctrl+super+t combination to something of your choosing.