2011-07-27 4 views
13

Eclipse/CDT로 새로운 C++ 클래스를 작성하여 자동으로 생성되는 포함 가드를 원하지만 ${include_guard_symbol} 속성을 변경할 수있는 방법이 없습니다.Eclipse CDT의 포함 가드 사용자 정의

#ifndef NAMSPACE1_NAMESPACE2_HEADER_HPP 

하지만 이것에 대한 #ifndef ${namespace_name}_${include_guard_symbol}를 사용하는 경우, 그것은 생성합니다 :

namepace1::namespace2::_HEADER_HPP 

나는이 어떻게 할 수있는

내 소원은 다음과 같은 네임 스페이스 접두사를 가진 포함 가드입니까?

+0

가능한 중복 [이클립스 CDT : 생성 된 자동에서 사용 네임 스페이스가 포함-가드 (HTTP : // 유래.com/questions/3520943/eclipse-cdt-use-namespace-in-automatic-generated-include-guards) – Mark

답변

14

나는 소스에서 CDT를 발굴했으며 문서화되지 않은 환경 설정을 사용하여 생성 된 내용을 ${include_guard_symbol}으로 변경할 수 있습니다. GUI도 없지만 <projectpath>/.settings/org.eclipse.cdt.ui.prefscodetemplates.includeGuardGenerationScheme 설정을 추가하면 파일 이름 (기본값), 파일 경로 또는 UUID 중에서 선택할 수 있습니다.

  • 0 CLASS_H_
  • 1은 예를 들어, UUID를 제공, 즉, 상부 케이스 파일명을 준다 : 파일 <projectpath>/src/include/Class.h 주어

    다음 값이 결과를 제공한다.
  • 2 HC9ABE718_D04E_411C_B5A2_F9FE1D9F9409, 즉,

SRC_INCLUDE_CLASS_H_는 의심을 피하기 위해 대문자 파일 경로를 제공, 여기에 우리의 .settings/org.eclipse.cdt.ui.prefs의 내용이다 :

codetemplates.includeGuardGenerationScheme=2 
eclipse.preferences.version=1 
formatter_settings_version=1 

그것은 당신이있어 정확히 분명히 아니다 이후에는 일반적으로 우리의 네임 스페이스가 우리의 폴더 구조를 따르므로 2을 사용하여 네임 스페이스의 근사치를 제공합니다.

관련 코드는 CDT 소스에서이 파일에 다음 작업을 수행하는 generateIncludeGuardSymbol() 방법에 대한 각 옵션

  • core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/codemanipulation/StubUtility.java에 대한 상수에 대한

    • core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java.

    네임 스페이스와 GUI를 사용하기 위해 추가 옵션이 추가 된 것을 보니 정말 좋았을 것입니다.

  • +0

    내 CDT 8.2.0의 환경 설정 파일 경로는 /. metadata/.plugins/org.eclipse입니다. .core.runtime/.settings/org.eclipse.cdt.ui.prefs – stoycho

    +2

    CDT 8.5 이상 (기본 설정) 환경 설정> C/C++> 코드 스타일> 이름 스타일 그런 다음 이름 카테고리 상자에서 코드> 포함 가드 선택 이 대답에서 언급 된 세 가지 옵션을 보여줍니다. 아직 네임 스페이스 옵션은 없지만 :( – Eelke

    0

    Eclipse Oxygen (CDT 9.3)을 사용 중이며 Eelke의 의견에 설명 된대로 잠시 동안 UI 설정이 있습니다.

    그러나 사전 설정 스키마 중에서 선택할 수 있으며 네임 스페이스 또는 더 풍부한 사용자 지정 옵션은 아직 사용할 수 없습니다.

    환경 설정 대화 상자에서 'guard'를 검색하거나 C/C++> 코드 스타일> 이름 스타일로 이동하여 코드> 가드 포함을 선택한 다음 사용 가능한 가드 구성표를 선택하십시오. 의

    enter image description here