How to change the default C++ file extension in Ec

2020-03-19 15:10发布

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?

4条回答
女痞
2楼-- · 2020-03-19 15:27

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++?

查看更多
家丑人穷心不美
3楼-- · 2020-03-19 15:33

See Window > Preferences > C/C++ > Code Style > Name Style > Files > C++ Source File > Suffix

查看更多
冷血范
4楼-- · 2020-03-19 15:46

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.

查看更多
我命由我不由天
5楼-- · 2020-03-19 15:51

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:

  1. "Got started with CDT development", checked out org.eclipse.cdt.ui
  2. Opened src/org.eclipse.cdt.internal.ui.wizards.filewizard/NewSourceFileGenerator.java (actually I searched for the ".cpp" pattern and found it)
  3. "public static String generateHeaderFileNameFromClass(String className)" tells us about PreferenceConstants.NAME_STYLE_CPP_HEADER_PREFIX
  4. We jump to PreferenceConstants.java and obtain the IPreferencesService path: nameStyle.cpp.source.prefix
  5. This article nicely explains where the prefs are stored
查看更多
登录 后发表回答