gpt4 book ai didi

customization - 为 Eclipse CDT 定制包含保护

转载 作者:行者123 更新时间:2023-12-03 20:39:45 24 4
gpt4 key购买 nike

我想要通过使用 Eclipse/CDT 创建新的 C++ 类来自动生成包含保护,但我找不到任何方法来更改 ${include_guard_symbol}属性。

我的愿望是一个包含命名空间前缀的包含保护,如下所示:

#ifndef NAMSPACE1_NAMESPACE2_HEADER_HPP

但是如果我使用 #ifndef ${namespace_name}_${include_guard_symbol}为此,它将产生:
namepace1::namespace2::_HEADER_HPP

我怎样才能做到这一点?

最佳答案

我在 CDT 的源代码中进行了一番挖掘,发现了一个未公开的首选项设置,您可以使用它来更改 ${include_guard_symbol} 生成的内容。 .它也没有 GUI,但是如果您添加 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.javagenerateIncludeGuardSymbol()完成工作的方法。

  • 很高兴看到为使用命名空间添加了一个额外的选项,还有一个 GUI。

    关于customization - 为 Eclipse CDT 定制包含保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845302/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com