【问题标题】:DOXYGEN, Eclox: Functions autocomplete not working with decorating macrosDOXYGEN,Eclox:功能自动完成不适用于装饰宏
【发布时间】:2014-09-19 21:07:54
【问题描述】:

我对 Eclipse 的 Doxygen 插件 Eclox 有疑问。

我用它来记录我的 C/C++ 代码。

它的一个非常好的特性是它会自动为函数生成 cmets,当在函数定义之前写入“/**”后跟一个 ENTER 时。

初始(代码 1):

/** <--pressing enter after this results in code 2-->
int f(int a, int b)

回车后的代码(代码2):

/**
 *
 * @param a
 * @param b
 * @return
 */
int f(int a, int b)

问题是我在编写函数时使用了微软的 SAL 语法,而 f 实际上看起来像:

int f(__in int a, __in int b)

这会使 Eclox 感到困惑,并阻止它自动生成 @param 和 @return 内容。所以我剩下以下内容:

/**
 *
 */
int f(__in int a, __in int b)

即使 __in 在包含的文件中被定义为空:

#define __in

请注意,如果我将上述定义粘贴到相同的文件中,它会起作用:

#define __in

/** <--now pressing enter here works as expected-->
int f(__in int a, __in int b)

还有其他人遇到过这个问题吗?

【问题讨论】:

    标签: c++ macros autocomplete eclipse-plugin doxygen


    【解决方案1】:

    解决了我的问题。

    不是一个完美的解决方案,也不是一个很好的解决方案,但它可以完成工作,因此结果仍然令人满意。

    在 Eclipse 中:右键单击您的 C/C++ 项目->属性->C/C++ 常规->路径和符号->符号->单击 C 语言(在我的例子中是 GNU C).

    您可以添加 符号,Eclox 将在其中考虑这些符号:例如添加带有 empty 值的符号 __in 可以解决我最初问题中举例说明的情况。

    就我而言,我必须添加 A LOT OF SYMBOLS(正如我所说,我使用 Microsoft 的 SAL 装饰我的函数),如果直接从 Eclipse 完成,这将花费大量时间。相反,我只添加一个符号,然后单击 Export Settings 将它们导出到一个 XML 中,您可以为此制作一个 script 来添加您的条目之后您可以使用导入设置进行导入。

    或者同样你可以直接编辑你的.cproject文件(我建议你先备份它),如果你想一次将这些设置添加到所有项目配置,只需搜索您添加的符号,您就会发现它已在此处定义。

    路径和符号旁边还有预处理器包含路径、宏等。您也可以使用它,它的设置类似,请注意您必须将宏添加到 CDT 用户设置条目。我尝试添加 Include File 条目或 Preprocessor Macros File 条目而不是添加 Preprocessor Macro 条目,但它不起作用。

    【讨论】:

      猜你喜欢
      • 2014-12-04
      • 2012-07-27
      • 2018-01-13
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多