Ответ 1
У меня было поколение в источнике для CDT, и я нашел недокументированную настройку предпочтений, которую вы можете использовать для изменения того, что генерируется ${include_guard_symbol}
. Там нет графического интерфейса, но если вы добавите параметр codetemplates.includeGuardGenerationScheme
в <projectpath>/.settings/org.eclipse.cdt.ui.prefs
, вы можете выбрать между именем файла (по умолчанию), пути к файлу или UUID.
Учитывая файл <projectpath>/src/include/Class.h
, следующие значения дают следующие результаты:
- 0 дает имя файла в верхнем регистре, то есть
CLASS_H_
- 1 дает UUID, например.
HC9ABE718_D04E_411C_B5A2_F9FE1D9F9409
- 2 дает путь к файлу в верхнем регистре, то есть
SRC_INCLUDE_CLASS_H_
Чтобы избежать каких-либо сомнений, здесь содержимое нашего .settings/org.eclipse.cdt.ui.prefs
:
codetemplates.includeGuardGenerationScheme=2
eclipse.preferences.version=1
formatter_settings_version=1
Это явно не совсем то, что вам нужно, но мы используем 2
, чтобы дать нам приближение наших пространств имен, поскольку, вообще говоря, наши пространства имен следуют нашей структуре папок.
Соответствующий код находится в этих файлах в источнике CDT:
-
core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java
для констант для каждой опции -
core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/codemanipulation/StubUtility.java
для методаgenerateIncludeGuardSymbol()
, который выполняет работу.
Было бы неплохо увидеть добавленную дополнительную опцию для использования пространства имен и графического интерфейса.