My team has been mandated to use a specific coding standard, and part of that standard is to use .cc as the suffix for C class implementation files (for sake of argument, it could have been .cxx, .c++, or any number of other suffixes which are not .cpp).
We're using the Eclipse CDT (C/C++ Development Toolkit) for development, however in the "New C++ Class" dialog, when you type in a class name as Classname, for example, it automatically names your Source file as Classname.cpp.
Sure, I could uncheck the "use default" checkbox and repair the suffix, but that's a few extra steps, and a lot to ask every Engineer on the large-ish project to remember to do each time they make a new C++ class.
I have been stumped, however, trying to find the option that allows one to specify the default suffix for C++ files in Eclipse CDT. Any Eclipse gurus know this one off hand?
See Window > Preferences > C/C++ > Code Style > Name Style > Files > C++ Source File > Suffix
I've digged Eclipse CDT code and found a solution:
append
nameStyle.cpp.source.suffix=.cc
to
<workspace location>/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs
Here is how I did it:
- "Got started with CDT development", checked out org.eclipse.cdt.ui
- Opened src/org.eclipse.cdt.internal.ui.wizards.filewizard/NewSourceFileGenerator.java (actually I searched for the ".cpp" pattern and found it)
- "public static String generateHeaderFileNameFromClass(String className)" tells us about PreferenceConstants.NAME_STYLE_CPP_HEADER_PREFIX
- We jump to PreferenceConstants.java and obtain the IPreferencesService path: nameStyle.cpp.source.prefix
- This article nicely explains where the prefs are stored
The bug mentioned by Ogre Psalm33 was fixed in 2013.
The location in Eclipse 4.4 is:
Window > Preferences > C/C++ > Code Style > Name Style > Files
Related: Make Eclipse treat .h file as C++?
Answer: it currently can't be done in Eclipse 3.6 (Helios) with CDT 7.0.0. See Eclipse Bugzilla entry. Apparently it's logged as a bug/missing feature, but nobody's assigned to work on it.
来源:https://stackoverflow.com/questions/4728531/how-to-change-the-default-c-file-extension-in-eclipse-cdt-when-creating-a-new