85 lines
3.9 KiB
PHP
85 lines
3.9 KiB
PHP
<?php
|
|
/** @license MIT
|
|
* Copyright 2017 J. King, Dustin Wilson et al.
|
|
* See LICENSE and AUTHORS files for details */
|
|
|
|
declare(strict_types=1);
|
|
namespace JKingWeb\Arsse;
|
|
|
|
const BASE = __DIR__.DIRECTORY_SEPARATOR;
|
|
|
|
$paths = [
|
|
__FILE__,
|
|
BASE."arsse.php",
|
|
BASE."RoboFile.php",
|
|
BASE."lib",
|
|
BASE."tests",
|
|
];
|
|
$rules = [
|
|
// house rules where PSR series is silent
|
|
'align_multiline_comment' => ['comment_type' => "phpdocs_only"],
|
|
'array_syntax' => ['syntax' => "short"],
|
|
'binary_operator_spaces' => [
|
|
'default' => "single_space",
|
|
'operators' => ['=>' => "align_single_space"],
|
|
],
|
|
'cast_spaces' => ['space' => "single"],
|
|
'concat_space' => ['spacing' => "none"],
|
|
'list_syntax' => ['syntax' => "short"],
|
|
'magic_constant_casing' => true,
|
|
'magic_method_casing' => true,
|
|
'modernize_types_casting' => true,
|
|
'native_function_casing' => true,
|
|
'native_function_type_declaration_casing' => true,
|
|
'no_binary_string' => true,
|
|
'no_blank_lines_after_phpdoc' => true,
|
|
'no_empty_comment' => true,
|
|
'no_empty_phpdoc' => true,
|
|
'no_extra_blank_lines' => true, // this could probably use more configuration
|
|
'no_mixed_echo_print' => ['use' => "echo"],
|
|
'no_short_bool_cast' => true,
|
|
'no_trailing_comma_in_singleline_array' => true,
|
|
'no_unneeded_control_parentheses' => true,
|
|
'no_unneeded_curly_braces' => true,
|
|
'no_unused_imports' => true,
|
|
'no_whitespace_before_comma_in_array' => true,
|
|
'normalize_index_brace' => true,
|
|
'object_operator_without_whitespace' => true,
|
|
'pow_to_exponentiation' => true,
|
|
'set_type_to_cast' => true,
|
|
'standardize_not_equals' => true,
|
|
'trailing_comma_in_multiline_array' => true,
|
|
'unary_operator_spaces' => true,
|
|
'yoda_style' => false,
|
|
// PSR standard to apply
|
|
'@PSR2' => true,
|
|
// PSR-12 rules; php-cs-fixer does not yet support PSR-12 natively
|
|
'compact_nullable_typehint' => true,
|
|
'declare_equal_normalize' => ['space' => "none"],
|
|
'function_typehint_space' => true,
|
|
'lowercase_cast' => true,
|
|
'lowercase_static_reference' => true,
|
|
'no_alternative_syntax' => true,
|
|
'no_empty_statement' => true,
|
|
'no_leading_import_slash' => true,
|
|
'no_leading_namespace_whitespace' => true,
|
|
'no_whitespace_in_blank_line' => true,
|
|
'return_type_declaration' => ['space_before' => "none"],
|
|
'single_trait_insert_per_statement' => true,
|
|
'short_scalar_cast' => true,
|
|
'visibility_required' => ['elements' => ["const", "property", "method"]],
|
|
// house exceptions to PSR rules
|
|
'braces' => ['position_after_functions_and_oop_constructs' => "same"],
|
|
'function_declaration' => ['closure_function_spacing' => "none"],
|
|
'new_with_braces' => false, // no option to specify absence of braces
|
|
];
|
|
|
|
$finder = \PhpCsFixer\Finder::create();
|
|
foreach ($paths as $path) {
|
|
if (is_file($path)) {
|
|
$finder = $finder->append([$path]);
|
|
} else {
|
|
$finder = $finder->in($path);
|
|
}
|
|
}
|
|
return \PhpCsFixer\Config::create()->setRiskyAllowed(true)->setRules($rules)->setFinder($finder);
|