Reputation: 3415
How can I set up that the code is reformatted automatically on saving?
So I don't always have to press Ctrl + Alt + L.
Upvotes: 70
Views: 41313
Reputation: 106
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 :-
<application>
<component name="ActionMacroManager">
<macro name="Format & Save">
<action id="ReformatCode"/>
<action id="SaveAll"/>
</macro>
</component>
</application>
<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.
Upvotes: 1
Reputation: 3281
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"
Record the macro
Assign Ctrl+S to "Format and Save"
Finally, enjoy PhpStorm!
Upvotes: 134
Reputation: 3614
I use Save Actions Plugin https://plugins.jetbrains.com/plugin/7642-save-actions for PhpSorm
Upvotes: 23
Reputation: 2858
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.
Upvotes: 0
Reputation: 61
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
Upvotes: 6