@mistergonza
PHP6 evangelist

Как заставить php-cs-fixer не удалять нужные отступы?

Использую atom и плагин atom-beautify, который собсвтенно используют библиотеку php-cs-fixer для форматирования кода. Так вот он при форматировании удаляет пробелы которые мне нужны для улучшение читабельности кода:
$array = [
            'foo'       => 'foo',
            'longBar'   => 'bar',
        ];

        $foo      = 'foo';
        $longBar  = 'bar';

Превращает в такое:
$array = [
            'foo' => 'foo',
            'longBar' => 'bar',
        ];

        $foo = 'foo';
        $longBar = 'bar';

Как от этого избавиться, не отказываясь от автоматического форматирования кода? На PhpStorm у меня была аналогичная проблема, но я как-то забил на её решение и форматировал только выделенный код.
  • Вопрос задан
  • 407 просмотров
Решения вопроса 3
DevMan
@DevMan
шторм как раз умеет выравнивать переменные и элементы массивов.
надо только сказать ему об этом в настройках.

а у php-cs-fixer надо крутить правила.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
На PhpStorm у меня была аналогичная проблема, но я как-то забил на её решение и форматировал только выделенный код.

ac543e123bac4e36b2582b9c13b0d829.png
Ответ написан
@mistergonza Автор вопроса
PHP6 evangelist
Нашел решение:
Для первой версии php-cs-fixer необходимы параметры, которые будут выравнивать код автоматически: align_equals и align_double_arrow (именно первая версия совместима с atom-beautify)
Во второй версии таких опций нет, но и фиксер не будет нарушать выравнивание.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LasVentanas
Во второй и третьей версиях можно использовать правило binary_operator_spaces

В файле .php-cs-fixer.php
->setRules([
	'binary_operator_spaces' => ['operators' => ['=>' => 'align_single_space_minimal_by_scope']],
])


Инструкция:
https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы