[Résolu] PHPCBF me supprime des tabulations pertinentes en début de ligne

Bonjour,

Sous Windows 11, j’ai suivi ce tuto : https://momh.fr/installer-globalement-php_codesniffer

Si j’exécute phpcs -i j’obtiens :
The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, SCS1, SPIP40, SPIP41 and PHPCompatibility

Mais quand j’exécute sur un dossier dans lequel j’ai mis un fichier phpcs.xml.dist contenant :

<?xml version="1.0"?>
<ruleset>
    <file>.</file>
    <exclude-pattern>vendor/*</exclude-pattern>
    <exclude-pattern>lang/*</exclude-pattern>

    <rule ref="SPIP41"/>

    <config name="ignore_warnings_on_exit" value="1"/>
    <arg name="cache" value=".php_cs.cache"/>
    <arg name="report-full" value=".php_cs.txt"/>
    <arg name="report-summary"/>
    <arg value="s"/>
</ruleset>

Le résultat obtenu a supprimé des tas de tabulations en début de ligne qui sont pertinentes.
Exemple :

function soyezcreateurs_config_site() {
	ecrire_meta('activer_logos_survol', 'oui','non');
	ecrire_meta('config_precise_groupes', 'oui','non');

Devient :

function soyezcreateurs_config_site() {

	ecrire_meta('activer_logos_survol', 'oui','non');
ecrire_meta('config_precise_groupes', 'oui','non');

Et ça sur des lignes et des lignes.

Une idée de ce qui se passe ?

Heu je ne suis pas sûr qu’on parle de la même chose, comme je te le disais sur IRC, on utilise phpcbf cf mes notes à ce sujet https://git.spip.net/spip-contrib-extensions/gis/pulls/28

J’ai du mal à saisir le lien entre ma question partant sur des tabulations en début de ligne et ta réponse qui me parle de shorthand pour la syntaxe des array

En passant, je dirais qu’on (SPIP) est encore un peu les seuls à utiliser des tabs… et pas PSR2, PSR12, et que bon… on se fait du coup aussi chier pour pas grand chose avec ça…
J’dis ça comme ça :stuck_out_tongue:

1 « J'aime »

Que ce soit tabs ou espaces, là, ça me place la 2e ligne de la fonction en début de ligne alors que ça devrait être indenté (et ça place en fait tout en début de ligne une fois que ça a planté pour une ligne).

Pas glop :wink:

Le lien que je donne explique la manière dont j’utilise phpcbf sans aucune conf spécifique (sauf celle fournie par SPIP), et en faisant ainsi je n’ai pas de problème avec mes tabs, c’est tout :slight_smile:

J’ai trouvé (aidé par Marcimat) : c’était l’encodage de mes fins de lignes qui était en CRLF (Windows) et pas LF (Linux).

Bonus : ça peut être corrigé par phpcbf avec ceci dans phpcs.xml.dist :

	<rule ref="Generic.Files.LineEndings">
		<properties>
			<property name="eolChar" value="\n"/>
		</properties>
	</rule>