You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using -s along with a large --report-width, some lines are still wrapped despite being much shorter than the selected width.
Code sample
<?php$x=1;
Custom ruleset
N/A
To reproduce
Steps to reproduce the behavior:
Create a file called test.php with the code sample above.
Run phpcs -s --report-width=100000 --standard=PSR12 test.php
See output displayed
FILE: /tmp/test/test.php
---------------------------------------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 1 LINE
---------------------------------------------------------------------------------------------------------------
3 | ERROR | [x] Expected at least 1 space before "="; 0 found
| | (PSR12.Operators.OperatorSpacing.NoSpaceBefore)
3 | ERROR | [x] Expected at least 1 space after "="; 0 found
| | (PSR12.Operators.OperatorSpacing.NoSpaceAfter)
---------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
---------------------------------------------------------------------------------------------------------------
Expected behavior
FILE: /tmp/test/test.php
---------------------------------------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 1 LINE
---------------------------------------------------------------------------------------------------------------
3 | ERROR | [x] Expected at least 1 space before "="; 0 found (PSR12.Operators.OperatorSpacing.NoSpaceBefore)
3 | ERROR | [x] Expected at least 1 space after "="; 0 found (PSR12.Operators.OperatorSpacing.NoSpaceAfter)
---------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
---------------------------------------------------------------------------------------------------------------
Versions (please complete the following information)
Operating System
Debian sid
PHP version
8.2.12
PHP_CodeSniffer version
3.7.2, master
Standard
PSR12
Install type
Composer local
Additional context
The problem seems to be that the four non-displaying characters (\033[0m) added at
Or, alternatively, that those four characters aren't being ignored by PHP's wordwrap().
The simple fix would be to add 4 more at line 69, with the downsides that the lines of dashes would be longer than necessary and a --report-width that's just barely long enough (e.g. 111 for this example) would still unnecessarily wrap.
A more complex fix might be to wordwrap() only the message, and then manually calculate the length of the last line to decide whether to append the source directly or to append it as a new line.
Please confirm:
I have searched the issue list and am not opening a duplicate issue.
I confirm that this bug is a bug in PHP_CodeSniffer and not in one of the external standards.
I have verified the issue still exists in the master branch of PHP_CodeSniffer.
The text was updated successfully, but these errors were encountered:
Describe the bug
When using
-s
along with a large--report-width
, some lines are still wrapped despite being much shorter than the selected width.Code sample
Custom ruleset
N/A
To reproduce
Steps to reproduce the behavior:
test.php
with the code sample above.phpcs -s --report-width=100000 --standard=PSR12 test.php
Expected behavior
Versions (please complete the following information)
Additional context
The problem seems to be that the four non-displaying characters (
\033[0m
) added atPHP_CodeSniffer/src/Reports/Full.php
Line 139 in 7763e2e
$maxErrorLength
atPHP_CodeSniffer/src/Reports/Full.php
Line 69 in 7763e2e
wordwrap()
.The simple fix would be to add 4 more at line 69, with the downsides that the lines of dashes would be longer than necessary and a
--report-width
that's just barely long enough (e.g. 111 for this example) would still unnecessarily wrap.A more complex fix might be to
wordwrap()
only the message, and then manually calculate the length of the last line to decide whether to append the source directly or to append it as a new line.Please confirm:
master
branch of PHP_CodeSniffer.The text was updated successfully, but these errors were encountered: