Code reformatting on save in PhpStorm or other jetbrains ide
-
02-07-2021 - |
Pergunta
How can I set up that the code is reformatted automatically on saving?
So I don't always have to press Ctrl + Alt + L.
Solução
Actually it is possible.
The idea is to record a very simple macro that selects all the lines (Ctrl+A), formats (Ctrl+Alt+L), deselect all (Up and Down arrow) and saves a file (Ctrl+S), and bind this macro to Ctrl+S.
Free Ctrl+S changing keyboard shortcut for "Save all"
- open File > Settings;
- search for "keymap" and open it;
- search "Save All" and double click the action "Save all";
- select "Remove Ctrl+S";
- double click "Save All" again and select "Add Keyboard Shortcut";
- select "Ctrl+Alt+Shift+S" as first stroke.
- Confirm and exit from Settings.
Record the macro
- Edit > Macros > Start Macro recording
- Press Ctrl+A, then Ctrl+Alt+L, then Up arrow, then Down arrow, and finally then Ctrl+Alt+Shift+S
- Stop recording the macro clicking on the Stop button on the bottom right of the page.
- Give this macro a name like "Format and Save"
Assign Ctrl+S to "Format and Save"
- open File > Settings;
- search for "keymap" and open it;
- search "Format and Save" and double click the action "Format and Save";
- select "Add Keyboard Shortcut";
- select "Ctrl+S" as first stroke.
- Confirm and exit from Settings.
Finally, enjoy PhpStorm!
Outras dicas
I use Save Actions Plugin https://plugins.jetbrains.com/plugin/7642-save-actions for PhpSorm
Another thing that I found very helpful in combination with this macro is the
Show Reformat File Dialog
.
In case you want to only reformat the code you just changed, you can set the option:
Only VCS changed text
The dialog can be opened through the following shortcut:
CTRL+ALT+SHIFT+L
From v2017.2.4 CTRL + ALT + L doesn't work. Use alt
+ F8
instead.
Solution: Use: ALT + F8 to format the code.
When creating a macro as described by Luca Mastrostefano, use:
alt
+ F8
to format and then ctrl
+ alt
+ s
to save.
Checked on PHPStorm 2020 & greater versions and found a plugin named Save Action. But make sure you configure for new and exisiting projects.
You can also export your PHPStorm settings and then unzip & replace/create the following :-
- Macro File under Settings/Option/macro.xml
<application>
<component name="ActionMacroManager">
<macro name="Format & Save">
<action id="ReformatCode"/>
<action id="SaveAll"/>
</macro>
</component>
</application>
- Settings/Keymaps/Default 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>
Now Zip it back & import it & whenever you press ctrl+s - Auto Code Format will be done.