15

${include_guard_symbol}Eclipse/CDT で新しい C++ クラスを作成して自動生成されたインクルード ガードが必要ですが、属性を変更する方法が見つかりません。

私の願いは、次のような名前空間プレフィックスを持つインクルード ガードです。

#ifndef NAMSPACE1_NAMESPACE2_HEADER_HPP

しかし、これを使用する#ifndef ${namespace_name}_${include_guard_symbol}と、次のようになります。

namepace1::namespace2::_HEADER_HPP

これどうやってするの?

4

2 に答える 2

17

CDT のソースを調べてみたところ、 によって生成されるものを変更するために使用できる、文書化されていない設定が見つかりました${include_guard_symbol}。GUI もありませんが、codetemplates.includeGuardGenerationScheme設定をに追加すると、ファイル名 (デフォルト)、ファイル パス、またはUUID<projectpath>/.settings/org.eclipse.cdt.ui.prefsから選択できます。

fileを指定<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()方法のために。

名前空間を使用するためのオプションが追加され、GUI も追加されると本当にうれしいです。

于 2012-03-03T11:54:48.503 に答える