Can Eclipse reformat multiple files at once? - eclipse

I've invested a fair amount of time creating a code style profile in Eclipse which matches our persnickety code standard. Is there a way to apply this style en masse to many files at once, so I don't have to manually load/format/save each in turn?

You right-click on a package in the Package Explorer, and use the "Source > Format" menu option to format them all at once. You can also set up the "Source > Clean Up..." action to format in addition to other cleanup actions.

Related

How can I get Eclipse to auto-indent code blocks within if and for statements?

I tried to get Eclipse to convert all of the tabs in my project to spaces like this:
Java Editor:
Click Window » Preferences
Expand Java » Code Style
Click Formatter
Click the Edit button
Click the Indentation tab
Under General Settings, set Tab policy to: Spaces only
Click OK ad nauseum to apply the changes.
And now my code is formatted without any indentations within if and for blocks, like this:
private void addAppointment(Resource resource) {
if (resource != null) {
Appt appt1 = new Appt();
appt1.setTime(new Date());
resource.setAppointment(appt1);
}
}
I really don't want to have to manually fix this in the hundreds of files in the project, how can I format to indent within if and for blocks in the whole project?
I should also say that the "Statements within blocks" checkbox in the active Formatter profile is checked. The preview it shows has a for block with an indented body, so I have no idea why that isn't being applied to my project.
#gnac provides some good options, in addition to:
Similarly you can use ctrl+shift+f (Source->Format) on each class to format it on the fly
You can select the project(s) and do Source menu -> Format to format everything in that project in one go. (No keyboard shortcut for it AFAIK.)
So once you set your formatting options you have a couple of options. You can set the preferences to format your files when saving.
Preferences->Java->Editor->Save Actions
However, if you have a lot of files this will be a pain as well. Similarly you can use ctrl+shift+f (Source->Format) on each class to format it on the fly, again having to do it on each file individually.
Inside Eclipse you can use Search->Find, enter "\t" in the text box and select the "Regular Expression" check box and then click the "Replace..." button. When the search is done, it will ask you what to replace it with. Enter 4 spaces into the "With" text field. Click Preview to see what it will do, or OK to make the changes.
I would use a find and sed to find all of the java files in a directory and replace the tabs, although this is outside of eclipse
find -iname ".java" -exec sed -i.orig 's/\t/ /g' {} +
If you're not on Linux you could use cygwin to do the same on Windows.

How to avoid repeated matching items in Eclipse 'Open Resource'?

The project I'm working in uses Maven and its typical standar directory layout.
When I look for a resource with Eclipse 'Open Resource' I get these matches:
Where I get repeated matches.
There are only 2 XML files in filesystem.
The one under src/ and the one under target/.
For example, the path to the src/ file is:
maindev/common/utils/persistence/src/main/resources/com/ericsson/m2m/common/utils/persistence/impl/mybatis/custom/xml/
But 'Open Resource' indicates 3 matches for the same file with relative paths:
maindev/common/utils/persistence/src/...
common/utils/persistence/src/...
persistence/src/...
Is there a way in Eclipse to avoid those repeated matches?
Moreover, is there a way in Eclipse to indicate not to return resources for target/ directories?
NOTE: I tried Wojtek O. suggestion, but still getting matches:
You see multiple files because they logically are contained withing difference Eclipse projects. You could try to close some of those projects but that may as well result in compilation errors. If you wish to hide some files from the Open Resource... dialog you need to mark the folder containg those files as derived by right clicking on it in the Project Explorer and selecting Derived checkbox under Attributes section.
This is a really old thread, but in the newer Eclipse versions (Photon+) there's a filter option for resource search.
On the Open Resource dialog (Ctrl+Shift+R), click the drop-down on top "Enter resource name prefix..." and select "Filter Duplicated Resources".
If you're just looking for Java classes you can also use Open Type dialog (CTRL-Shift-T).

Lines of Code count for Flex in Eclipse

How to get the SLOC count for the Flex code in Eclipse?
Is there a plug-in similar to "Metrics" for finding information about the Flex porject?
This is the easiest way to count lines of code of any particular language and does not require a plugin.
Steps:
Click on the root folder of your project
Right-click and select Search (or Cntl+H)
In the box "Containing Text" type \n and make sure to select the "Regular Expression" checkbox
In the "File name patterns" input, type the file extensions of the files you want to include in your count, or click on "Choose" if you are feeling lazy.
Click "Search"
BAM! Instant line count for your entire project!
These instructions may differ slightly depending on your version of Eclipse, but you should be able to figure it out.
Good luck!
From this question:
http://metrics.sourceforge.net can do lines. I'm not sure about words
however.

Automatic EOL conversion in Eclipse

Need to keep EOL format consistent in all resources under Eclipse workspace.
I know about Eclipse preference that sets new line style for newly created files, but I would like to have automatic conversion for already existing files. Is there some settings/plugins?
I want just setup once and be sure that all line endings are in the same format.
In addition to the Window > Preferences > General > Workspace setting for new files that you already know about, there is a File > Convert Line Delimiters To option. I don't know of any existing plugin/tool that will do this automatically when you save, but you could certainly write one or make converting the line ending part of your process.
To make it easier on yourself, you can bind keyboard shortcuts to the conversion commands by going to Window > Preferences > General > Keys and filtering using "delimiter":
In Eclipse, to convert the line endings for existing files:
Go to the file browser view, and click on the project/folder/file that you wish to convert.
From the menu bar, select File > Convert Line Delimiters To > Windows / Unix / MacOS 9.
You can Search your resources with the Search-Dialog and go to the tab File Search. There you can enter a Regular expression. Enter \r\n or whatever line ending you want to change.
Then hit the Replace .. Button instead of Search.
I want just setup once and be sure that all line endings are in the same format.
... ok, my answer does not consider this.
You might get usefull results with Eclipse save actions: If the eclipse formatter also converts the EOL style, you could use it to modify EOL style only for the files you are modifying.
Unfortunately I don't have eclipse here, so I can't test if this actually works. Worth a try, however.

What tool can do a visual comparison of two sections within the same file?

Good file comparison tools were already discussed to the pain, but my problem is more exotic. Is there any visual text comparison tool (like WinMerge) that would allow me easily do visual comparison on two sections within the same file?
I have multiple configurations within vcproj file and need to maintain them. It is a pain to do this manually -- splitting windows, scrolling character-by character. On top of that xml is very verbose and takes lots of screen real-estate. I cannot believe there is no tool to do automatic file section comparison, since this sounds like a very common problem.
Please, do not offer me to use property pages, I do not want more complexity, I want less. Splitting manually into files and then comparing them is also too medieval (I am doing this now anyways).
I use Beyond Compare (not free, but I think a shareware version is available). You can select the same file for left and right sides, then right-click the beginning of your section on each side and select "Align Manually". This would allow you to compare two sections of the same file relatively easily.
Overall, I highly recommend the product. I haven't tried version 3, which is what they currently have on their Web site, but version 2 is a fabulous tool. A+
Emacs Ediff.
I use UltraEdit for most of my text editing and they have a product called UltraCompare that does a visual compare.
Update by Mofi
UltraCompare Professional supports also a comparison of text snippets in addition to entire files.
After starting UltraCompare, select Text Compare in menu Mode if not already selected. Select in text editor the first text block which should be compared, press Ctrl+C, switch back to UC and paste with Ctrl+V the block into left text area pane. Switch again to text editor, select the other block in same file, press Ctrl+C, switch back to UC, click into right pane and paste the block with Ctrl+V. The two blocks are immediately compared and the differences are displayed.
Such a text snippet comparison for two blocks in same file can be started also directly from within UltraEdit. Select the first block in file, press Ctrl+C, Ctrl+N, Ctrl+V and Ctrl+A to copy, paste and reselect this block in a new file. Select the second block in file. Execute command Compare from menu File in UltraEdit with option Compare selected text automatically being enabled and click on button Compare. UC Professional is started with just the 2 selected blocks for comparison.
You can use Meld to do this
Open up meld without specifying file names
Meld with prompt which type of comparison you want. Choose file comparison
Meld will present the the icon to select the file names. Below that it will prompt for a Blank comparison. Choose that.
In the file comparison window, paste the sections of the file you want to compare.