【问题标题】:Change doxygen comment style in Eclipse在 Eclipse 中更改 doxygen 注释样式
【发布时间】:2026-02-11 12:40:01
【问题描述】:

有谁知道如何在 Eclipse CDT 中编辑用于 Doxygen cmets 的样式?

换句话说,在函数当前给我的结果之前,键入 /** 并在一行上按 enter

/**
 * 
 * @param one
 * @param two
 * @return
 */
Foo(int one, int two);

我希望它给我类似的东西:

/**********************************************************************/
///
/// \param one
/// \param two
/// \return
/***********************************************************************/
Foo(int one, int two);

另外,如果有人知道如何将其绑定到键盘快捷键,再加上一个(例如 alt-shift-j 用于 Eclipse JDT) .

另外,仅供参考,Eclipse CDT 支持 Doxygen 的事实现在似乎是基于 Google 的鲜为人知的事实。有关详细信息,请参阅here。通过在“C/C++ 常规”选项卡中选择“启用项目特定设置”并选择“Doxygen”,可以在项目属性下启用 Doxygen。我的 CDT 版本是 7.0.1,但我认为这在 5.0 中可用。

最后,根据我的测试,首选项中代码模板下的 cmets 部分没有完成此操作。

编辑:here。评论风格似乎是硬编码的。如果有人发现其他情况,我很想知道。我想模板将是目前最好的东西,除非 Javadoc 风格适合你。

【问题讨论】:

    标签: eclipse doxygen eclipse-cdt


    【解决方案1】:

    是的,这似乎是 Eclipse CDT 中的一个错误。

    作为一种解决方法,我建议您创建一个可以使用 Ctrl+Space 组合键访问的自定义模板。

    在 Eclipse Helios 中:窗口 -> 首选项 -> C/C++ -> 编辑器 -> 模板

    单击 New... 以创建新模板,并在 Name 字段中使用一些描述性名称,例如“comment-function”,并在 Pattern 字段中添加您的 doxygen 评论。确认并应用此更改。

    在您的代码中,您可以转到函数声明上方的行,键入自定义模板名称的前几个字母,然后按 Ctrl+Space 组合键.

    在这个例子中:

    com<Ctrl+space>
    

    将弹出使用“com*”过滤的内容辅助对话框,您可以从中选择“comment-function”模板。

    注意:

    com<Ctrl+space+space>
    

    将通过仅在内容辅助弹出窗口中显示模板提案来进一步过滤。

    【讨论】:

      【解决方案2】:

      这是我在 java 注释中找到的配置

      当我如图所示进行编辑时,我的 java doc 注释更改为

      尝试在你的php配置下寻找类似的配置。

      【讨论】:

      • 我的C/C++ 代码样式设置中也有这个,但是由于某种原因,我得到了@... 而不是\...(正如样式所指定的那样)。似乎有一个更中心的地方可以改变这些东西,它会覆盖特定语言的样式。对我来说听起来像是一个错误......
      【解决方案3】:

      我可以通过以下方式获得您想要的一些方法: 首选项 - PHP - 代码样式 - 代码模板 - 评论。

      我不确定这是否能让您在关键字中使用反斜杠而不是 @s,但我认为它应该可以实现您想要的大部分功能。

      【讨论】:

      • 感谢您的想法,但我已经对此进行了研究(请参阅上面几个月前我的编辑中的链接),但它并没有达到我想要的效果。
      【解决方案4】:

      从 eclipse 2020-03 开始​​,您可以使用组合选项:代码模板使用 /*****/ 创建页眉和页脚,然后在中间使用 /// 在 C/C++ 中自定义样式->编辑器选项。

      【讨论】:

      • 如何,在哪里?更多解释可能会有用。
      【解决方案5】:

      Doxygen 标签使用这种基本格式。

      /**
      Your tags and such. It MUST have the /** and the */.
      */
      

      它绝对必须在整个 Doxygen 注释周围有 /** */。如果你修改代码模板,它会做你想做的。

      建议的评论风格是错误的。

      /***************/ <-- These are terminated Doxygen blocks.
      /// <-- These are used in xml style Doxygen blocks.
      ///
      /// This isn't actually a Doxygen block and shouldn't work
      /// if you run Doxygen on it.
      ///
      /***************/ <-- These are terminated Doxygen blocks.
      

      以下是大多数使用 JAVA 和 eclipse 编写代码的公司的标准。由于 Doxygen 对多种语言有效,因此对 C/C++ 也有效。

      /**
       * Brief description.
       *
       * @param[in|out] <value> <description>
       */
      

      如果你想使用xml样式标签...

      /// <summary>
      /// This is a summary of the class, blah, blah.
      /// </summary>
      

      您还需要确保 eclipse 也不会插入其他注释样式,否则您最终可能会在其他 cmets 中插入 cmets。通常,混合使用 /** */ 和 /// 等注释样式也是一个不好的规则。

      最后,如果您在创建类时选择自动生成 cmets,这些 cmets 将自动放入。您可以在键入时让 eclipse 自动生成方法标头(尽管我忘记了我是如何做到的)。

      【讨论】:

      • Doxygen 支持多种格式。见stack.nl/~dimitri/doxygen/docblocks.html。您引用的格式是 Javadoc 格式,它只是许多受支持的格式之一。我作为例子给出的格式是非常规的,但没有错,只是不同。另外,你没有回答这个问题。正如我在我的一个编辑中已经提到的,这是一个 Eclipse 错误,现在在 bugs.eclipse.org/bugs/show_bug.cgi?id=333134 处得到解决。感谢您尝试提供帮助。