Переформатирование кода при сохранении в PhpStorm или другом ide

Как настроить автоматическое переформатирование кода при сохранении?

Так что мне не всегда нужно нажимать Ctrl + Alt + L.


person ndrizza    schedule 19.09.2012    source источник
comment
Принятый ответ хорош, но, вероятно, для большинства людей лучше использовать плагин сохранения действий stackoverflow.com/questions/946993/   -  person CodeMonkey    schedule 19.07.2018


Ответы (5)


На самом деле это возможно.
Идея состоит в том, чтобы записать очень простой макрос, который выбирает все строки (Ctrl + A), форматы (Ctrl + Alt + L), отмените выбор всех (стрелки вверх и вниз) и сохраните файл (Ctrl + S) и привяжите этот макрос к Ctrl < / kbd> + S.

Бесплатная комбинация клавиш Ctrl + S для смены сочетания клавиш для "Сохранить все"

  1. откройте Файл> Настройки;
  2. найдите «раскладку» и откройте ее;
  3. выполните поиск «Сохранить все» и дважды щелкните действие «Сохранить все»;
  4. выберите «Удалить Ctrl + S»;
  5. дважды щелкните «Сохранить все» еще раз и выберите «Добавить сочетание клавиш»;
  6. выберите «Ctrl + Alt + Shift + S» в качестве первого штриха.
  7. Подтвердите и выйдите из настроек.

Запишите макрос

  1. Правка> Макросы> Начать запись макроса
  2. Нажмите Ctrl + A, затем Ctrl + Alt + L, затем Стрелка вверх, затем стрелка вниз и, наконец, затем Ctrl + Alt + Shift + < kbd> S
  3. Остановите запись макроса, нажав кнопку «Стоп» в правом нижнем углу страницы.
  4. Дайте этому макросу имя, например "Форматировать и сохранить".

Назначьте Ctrl + S для "Форматировать и сохранить"

  1. откройте Файл> Настройки;
  2. найдите «раскладку» и откройте ее;
  3. выполните поиск «Форматировать и сохранить» и дважды щелкните действие «Форматировать и сохранить»;
  4. выберите «Добавить сочетание клавиш»;
  5. выберите «Ctrl + S» в качестве первого штриха.
  6. Подтвердите и выйдите из настроек.

Наконец, наслаждайтесь PhpStorm!

person Luca Mastrostefano    schedule 23.09.2014
comment
Макрос не должен быть таким длинным: Ctrl + Alt + L и Ctrl + Alt + S тоже делают то же самое. - person Saugat; 26.05.2015
comment
Пожалуйста, замените Ctrl + Alt + S на Ctrl + Alt + Shift + S, поскольку последний не имеет конфликтов. - person goyote; 29.03.2017
comment
Полезный совет для форматирования всех файлов каталога: Сначала выберите каталог в окне Project, а затем в меню code выберите Reformat code - person R Sun; 30.09.2018
comment
будет ли это работать с функцией автоматического сохранения phpstorm? Как в нем будет автосохранение + автоформат без нажатия горячих клавиш? - person Dr. House; 19.05.2020
comment
PhpStorm отказывается правильно делать отступы в моих строках. Например, если я затираю табуляцию и делаю отступ строки 10 раз, она не возвращается туда, где должна быть. Не могу найти как исправить это форматирование, помогите! - person CoredusK; 30.09.2020
comment
@Mkey Я тестировал этот phpstorm 2020.3, не работающий с автосохранением + автоматическим форматом без нажатия каких-либо горячих клавиш. :( - person Subramanya Rao; 26.12.2020

Я использую плагин сохранения действий https://plugins.jetbrains.com/plugin/7642-save-actions для PhpSorm

person es cologne    schedule 07.03.2019

Еще одна вещь, которую я нашел очень полезной в сочетании с этим макросом, - это

Show Reformat File Dialog.

Если вы хотите переформатировать только только что измененный код, вы можете установить опцию:

Only VCS changed text

Диалог можно открыть с помощью следующего ярлыка: CTRL+ALT+SHIFT+L

person Timothy    schedule 11.05.2016
comment
Спасибо. Макрос полезен, но это то, что мне нужно. В большинстве случаев я хочу переформатировать новый / измененный код. - person George Marian; 31.03.2017

Начиная с версии 2017.2.4 CTRL + ALT + L не работает. Вместо этого используйте alt + F8.

Решение: используйте: ALT + F8 для форматирования кода.

При создании макроса, как описано Лукой Мастростефано, используйте: alt + F8 для форматирования, а затем ctrl + alt + s для сохранения.

person Pav K.    schedule 16.10.2017
comment
На самом деле это характерно для Visual Studio-keymap в PhpStorm. - person Webber; 29.05.2018

Проверил PHPStorm 2020 и более поздних версий и нашел плагин с именем Сохранить действие. Но убедитесь, что вы настроили для новых и существующих проектов.

Вы также можете экспортировать настройки PHPStorm, а затем разархивировать и заменить / создать следующее: -

  1. Файл макроса в разделе "Настройки / Параметр / macro.xml"
    <application>
    <component name="ActionMacroManager">
    <macro name="Format & Save">
    <action id="ReformatCode"/>
    <action id="SaveAll"/>
    </macro>
    </component>
    </application>
  1. Настройки / Раскладки / По умолчанию Copy.xml
    <keymap version="1" name="Default copy" parent="Default for XWin">
    <action id="DBNavigator.Actions.SourceEditor.Save"/>
    <action id="Macro.Format & Save">
    <keyboard-shortcut first-keystroke="ctrl s"/>
    </action>
    <action id="SaveAll">
    <keyboard-shortcut first-keystroke="shift ctrl alt s"/>
    </action>
    </keymap>

Теперь заархивируйте его и импортируйте, и всякий раз, когда вы нажимаете ctrl + s, автоматически выполняется форматирование кода.

person Basant Mandal - Kitto    schedule 20.03.2021