125
votes

In Eclipse, under Windows -> Preference -> Java -> Code Style, you can define code templates for comments and code, and you can setup a code formatter.

I'm wondering if it is possible in Eclipse to have these setting take affect every time I save a source file. Basically, instead of me highlighting everything and pressing Ctrl+Shift+F, I want Eclipse to be responsible for making sure my code is formatted properly.

Is this possible and how do you set it up?

Note On Using the Auto-Format: It's probably best to choose "Format Edited Lines" as merging changes becomes very difficult when you reformat a whole file that is in source control already that was not formatted properly. Already did this to a co-worker.

4
Great question, but I disagree with enabling "Format Edited Lines". If the whole team has access to the same format XML descriptor via SCM then the team should expect their files to be reformatted. In other words, the short term pain of merging is worth the benefit of consistent formatting. - HDave
@HDave agree. The code should at any time be robust against a "Format Source" on all projects. - Thorbjørn Ravn Andersen
@ThorbjørnRavnAndersen If everyone is using these settings, you can select "Format Edited Lines". It will save some time if your files are large. I agree with you about necessity of the code being robust against a "Format Source", but it's not the task of eclipse to make sure that this is the case, I think. - brimborium
@brimborium a political decision. Personally I believe that the closer you stay to default settings the smoother things will run. - Thorbjørn Ravn Andersen
@ThorbjørnRavnAndersen That would mean the auto-format option being turned off... ;) I mean, I always save by Ctrl+Shift+F followed by Ctrl+S, so it would be fine by me, but there are other guys who don't care about formating. This feature makes our life so much easier... - brimborium

4 Answers

208
votes

Under Preferences, choose Java --> Editor --> Save Actions. Check the Perform the selected actions on save, and check the Format source code box.

This may or may not be available in previous versions of Eclipse. I know it works in:

Version: 3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft<br>
Build id: M20080221-1800
15
votes

I strongly recommend checking your eclipse format xml descriptor into source control. That way all members of the team can use it and you don't get to and fro reformatting battles.

12
votes

I have a snapshot of the setting. Please follow the path:

In the Preferences window, choose Java --> Editor --> Save Actions.

Check the Perform the selected actions on save, and check the Format source code box.

enter image description here

2
votes

If you find that you do not have a Save Actions preference under Java--> Editor, it may be because you are using an older version of Eclipse. In that case you can install the Format on save plugin from here.

Then, under Preferences, choose Java --> Format on save. Select the Run Format option under Select a code formatting action