Как настроить шаблоны кода Eclipse CDT - PullRequest
6 голосов
/ 23 марта 2011

Мне нужен код, который я пишу, чтобы проект соответствовал некоторым рекомендациям по стилю.Однако стандартные шаблоны, включенные в CDT, не соответствуют этому стилю.Тем более расположение заголовков охранников не так, как должно быть.Я посмотрел на шаблон и для моего Eclipse он выглядит так:

${filecomment}

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

${typecomment}
${declarations}

#endif /* ${include_guard_symbol} */

Итак, я предполагаю, что переменная ${include_guard_symbol} установлена ​​где-то в CDT, но возможно ли изменить эту настройку безНужно изменить сам CDT?

На несколько ином, но связанном примечании: возможно ли добавить свои собственные шаблоны, чтобы вы могли просто добавлять новые файлы других типов (тест-кейсы, специализированные классы и т. д.)используя обычный новый диалог для проекта?

Ответы [ 2 ]

6 голосов
/ 22 июля 2011

Таким образом, в диалоговом окне «Установки» в 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} */
6 голосов
/ 14 апреля 2011

У нас была похожая борьба в нашем проекте.Одно из решений состоит в том, чтобы выбросить в шаблон $ {include_guard_symbol} и определить его самостоятельно, возможно, используя некоторые другие предопределенные переменные.Примерно так:

${filecomment}

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

${typecomment}
${declarations}

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

Таким образом, для заголовочного файла с именем inc / Foo.h, защита включения будет вставлена ​​так:

#ifndef MyProject_Foo_h
#define MyProject_Foo_h

К сожалению, похожебыть способом настроить намного больше этого.Например, если я определил класс, вложенный в namespace, я мог бы захотеть поместить пространство имен в качестве части include guard.В настоящее время я не могу найти способ сделать это в затмении.

...