diff --git a/.cspell.yml b/.cspell.yml index aafafcd..fdb0e46 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -12,9 +12,9 @@ patterns: - name: markdown_code_block pattern: | / - ^(\s*`{3,})[a-z]+ # match the ``` with a language modifier - [\s\S]*? # the block of code - ^\1 # end of the block + ^([\s>]*`{3,})[a-z]+ # match the ``` with a language modifier, optionally inside a blockquote + [\s\S]*? # the block of code + ^\1 # end of the block /gmx - name: markdown_inline_code pattern: /(\s*`)[^`\n]{3,}`/gmx diff --git a/wiki/Requirements.md b/wiki/Requirements.md index 80fe2ba..eac3823 100644 --- a/wiki/Requirements.md +++ b/wiki/Requirements.md @@ -6,7 +6,14 @@ Additionally, PHP_CodeSniffer requires the following PHP extensions to be enable - SimpleXML: used to process ruleset XML files - XMLWriter: used to create some report formats -The following PHP extension is not required, but is strongly recommended: +The following PHP extensions are not required, but are strongly recommended: - iconv: used for accurate character length calculation in files containing multibyte characters. Without this extension, some sniffs, like `Generic.Files.LineLength`, may report incorrect results for lines containing non-ASCII characters, as PHP_CodeSniffer will fall back to byte-based length calculations. +- PCNTL: required for parallel processing via the `--parallel` CLI option. Without this extension, PHP_CodeSniffer will not be able to check multiple files simultaneously. Individual sniffs may have additional requirements such as external applications and scripts. See the [Configuration Options](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Configuration-Options) manual page for a list of these requirements. + +> [!WARNING] +> The gRPC PHP extension is known to cause PHP_CodeSniffer to hang when running with parallel processing enabled. If the gRPC extension is loaded, either do not use the `--parallel` CLI option or configure the extension's ini settings as follows: +> ```text +> phpcs -d grpc.enable_fork_support=1 -d grpc.poll_strategy=epoll1 [other options] +> ```