Code style rules and presets for PHP, SCSS and TypeScript. Also contains default PhpStorm project code style.
Rules for:
Via Composer
composer require --dev wavevision/coding-standard
Add to existing ruleset
<rule ref="vendor/wavevision/coding-standard/php/ruleset.xml"/>
or use directly
vendor/bin/phpcs -p --standard=vendor/wavevision/coding-standard/php/ruleset.xml <pathToSources>
Rules and presets for:
Via yarn
yarn add --dev @wavevision/coding-standard
or npm
npm install --save-dev @wavevision/coding-standard
Following config examples can be further extended and customized according to project's needs compliant with respective library docs.
module.exports = {
presets: [
'@wavevision/coding-standard/ts/babel',
'@wavevision/coding-standard/ts/babel/react', // if project uses React
],
};
module.exports = {
extends: [
'@wavevision/coding-standard/ts/eslint',
'@wavevision/coding-standard/ts/eslint/react', // if project uses React
'@wavevision/coding-standard/ts/eslint/jest', // if project uses Jest
].map(require.resolve),
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: '.',
},
};
Note: The order of
extends
items is crucial for all rules to work correctly.
module.exports = require('@wavevision/coding-standard/scss/postcss');
module.exports = require('@wavevision/coding-standard/ts/prettier');
module.exports = {
extends: '@wavevision/coding-standard/scss/stylelint',
};
{
"extends": "@wavevision/coding-standard/ts/tsconfig.json",
"include": ["./src/**/*"]
}
Should your project need it, import babel
polyfills consisting of core-js
and regenerator-runtime
stable versions.
import '@wavevision/coding-standard/ts/polyfills';
Note: This might add unnecessary code to your bundle. Make sure your setup needs all the polyfills, otherwise, import required features only.
This should most likely happen in your project's top-level entry point.
- Set
File > Settings > Editor > CodeStyle
> Scheme toProject
- Symlink
phpstorm/style.xml
to.idea/codeStyles/Project.xml