ikappas / vscode-phpcs

PHP CodeSniffer for Visual Studio Code
MIT License
128 stars 56 forks source link

Command with xdebug enabled causes invalid json #189

Open ronilaukkarinen opened 3 years ago

ronilaukkarinen commented 3 years ago

Phpcs doesn't really need xdebug but will produce error because the command warns for not being able to connect to debugging client. This means vscode-phpcs cannot lint at all despite phpcs is working fine:

$ /usr/local/bin/phpcs --report=json -q -s --encoding=UTF-8 --standard=/Users/rolle/Projects/airdev/content/themes/air-light/phpcs.xml --error-severity=5 --warning-severity=5 --stdin-path=/Users/rolle/Projects/airdev/content/themes/air-light/inc/includes/nav-walker.php
Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port) :-(
{"totals":{"errors":10,"warnings":13,"fixable":10},"files":{"\/Users\/rolle\/Projects\/airdev\/content\/themes\/air-light\/functions.php":{"errors":0 
<truncated>

Any way to disable xdebug (also asked in PHP_Codesniffer issue) OR add environment variable XDEBUG_MODE=off before the executable? We have "solved" this for now with our custom executable script as described here.

tribal2 commented 2 years ago

@ronilaukkarinen thanks for the workaround 👍

ronilaukkarinen commented 2 years ago

@tribal2 No problem, glad you found it useful!

enjibby commented 2 years ago

Another workaround, as at xdebug 3.1, is to ensure it can write to its own log file as defined by xdebug.log = <file> in php.ini. If you do this, that particular warning will not longer be pushed to stdout.

fvelcker commented 2 years ago

Another workaround, as at xdebug 3.1, is to ensure it can write to its own log file as defined by xdebug.log = <file> in php.ini. If you do this, that particular warning will not longer be pushed to stdout.

Thanks for that, Quick and easy fix, works very well for me.