Frage

How can I set up that the code is reformatted automatically on saving?

So I don't always have to press Ctrl + Alt + L.

War es hilfreich?

Lösung

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"

  1. open File > Settings;
  2. search for "keymap" and open it;
  3. search "Save All" and double click the action "Save all";
  4. select "Remove Ctrl+S";
  5. double click "Save All" again and select "Add Keyboard Shortcut";
  6. select "Ctrl+Alt+Shift+S" as first stroke.
  7. Confirm and exit from Settings.

Record the macro

  1. Edit > Macros > Start Macro recording
  2. Press Ctrl+A, then Ctrl+Alt+L, then Up arrow, then Down arrow, and finally then Ctrl+Alt+Shift+S
  3. Stop recording the macro clicking on the Stop button on the bottom right of the page.
  4. Give this macro a name like "Format and Save"

Assign Ctrl+S to "Format and Save"

  1. open File > Settings;
  2. search for "keymap" and open it;
  3. search "Format and Save" and double click the action "Format and Save";
  4. select "Add Keyboard Shortcut";
  5. select "Ctrl+S" as first stroke.
  6. Confirm and exit from Settings.

Finally, enjoy PhpStorm!

Andere Tipps

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 :-

  1. Macro File under Settings/Option/macro.xml
    <application>
    <component name="ActionMacroManager">
    <macro name="Format & Save">
    <action id="ReformatCode"/>
    <action id="SaveAll"/>
    </macro>
    </component>
    </application>
  1. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top