有没有办法让doxygen的显示枚举数值不改变CSS?

问题描述 投票:13回答:2

我想在doxygen的输出枚举成员的实际价值。比如我有:

///MyEnum
typedef enum My_Enum
{
MY_ENUM_0,///<MY_ENUM_0
MY_ENUM_1,///<MY_ENUM_1
MY_ENUM_2 ///<MY_ENUM_2
} My_Enum;

输出是:

MyEnum.
Enumerator:
MY_ENUM_0
      MY_ENUM_0.
MY_ENUM_1
      MY_ENUM_1.
MY_ENUM_2
      MY_ENUM_2.

我要的是:

Enumerator:
MY_ENUM_0
          0 MY_ENUM_0.
MY_ENUM_1
          1 MY_ENUM_1.
MY_ENUM_2
          2 MY_ENUM_2.

或类似的东西。

c doxygen
2个回答
0
投票

使用doxygen的,我们可以记录:

  • enum
  • 它的值
  • 每个值的说明

下面的代码段描述了一种用于上述所有3的例子。

/*! \enum My_Enum
* Documentation of the enum type.
*/

typedef enum My_Enum {
    MY_ENUM_0, /*!< Document the value 0 */
    MY_ENUM_1, /*!< Document the value 1 */
} My_Enum;

/*! \var My_Enum MY_ENUM_0
 * The description of the MY_ENUM_0. Can contain its enumerated name */

/*! \var My_Enum MY_ENUM_1
 * The description of the MY_ENUM_1. Can contain its enumerated name*/

还要注意,由于宏/枚举膨胀不会Doxygen注释内发生。如果任何一个doxygen的注释中使用,那么他们需要使用INPUT_FILTER扩大。例如:

INPUT_FILTER = sed /MY_ENUM_0/0

需要下面的代码段

typedef enum My_Enum {
    MY_ENUM_0, /*!< MY_ENUM_0 */
    ...

此外结帐这个answer对多doxygen的注释风格类型的详细信息:

  • ///< <comment>
  • /*!< <comment> */

0
投票

没有办法直接从doxygen的,我能想到的做到这一点。 Doxygen的不是C编译器。所以它不会得到一个枚举这是一个编译时间常数的值。

事情的doxygen最接近能做的就是selectively expand your macros,因为它确实有一个C preprocesor。所以,如果你有一个分配给由预处理程序扩展的恒定一定的价值,doxygen的可以展开宏,你显示什么将被分配。

建立在TheCodeArtist的答案,你可能会考虑编写运行到Doxygen的之前,让你的文件的副本,搜索这种模式脚本:

enum *** {
    ***, ///< %VAL%:

并用其替换值应该是什么,所以你不手动跟上数字%VAL%每次出现。 doxygen的运行它包含%的原始文件后VAL%令牌将需要更换。这不是一个特别优雅和强大的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.