如何自定义eclipse CDT代码模板

时间:2011-03-23 08:42:14

标签: eclipse eclipse-cdt

我需要为一个项目编写的代码来匹配某些样式指南。但是,CDT附带的标准模板与此样式不匹配。特别是头部防护装置的布局不是应该的方式。我查看了模板,对于我的Eclipse,它看起来像这样:

${filecomment}

#ifndef ${include_guard_symbol}
#define ${include_guard_symbol}

${typecomment}
${declarations}

#endif /* ${include_guard_symbol} */

所以我猜测变量${include_guard_symbol}是在CDT的某个地方设置的,但是可以更改此设置而无需修改CDT本身吗?

略有不同但相关的说明: 是否可以添加自己的模板,因此您可以使用项目的常规新对话框添加其他类型的新文件(测试用例,专用类等)?

2 个答案:

答案 0 :(得分:6)

我们的项目也遇到了类似的问题。一种解决方案是将$ {include_guard_symbol}全部丢弃在模板中,并自己定义,可能使用其他一些预定义变量。像这样:

${filecomment}

#ifndef MyProject_${file_base}_h
#define MyProject_${file_base}_h

${typecomment}
${declarations}

#endif /* MyProject_${file_base}_h */

因此,对于名为inc / Foo.h的头文件,include guard将按如下方式插入:

#ifndef MyProject_Foo_h
#define MyProject_Foo_h

不幸的是,似乎还没有一种方法可以自定义。例如,如果我定义了嵌套在namespace中的类,我可能希望将命名空间作为include guard的一部分。我目前在eclipse中找不到办法做到这一点。

答案 1 :(得分:6)

所以在C / C ++下的首选项对话框中 - >代码风格 - >代码模板您可以将模板修改为更接近您需要的模板,例如,如果您需要保护中的命名空间,您可以执行类似的操作。

${filecomment}

#ifndef ${namespace_name}_${include_guard_symbol}
#define ${namespace_name}_${include_guard_symbol}

${includes}

${namespace_begin}

${declarations}

${namespace_end}

#endif /* ${namespace_name}_${include_guard_symbol} */