在我正在处理的 Python 代码中,使用了一个约定,即具有一个前导下划线的方法是“受保护的”,而具有两个前导下划线的方法是“私有的”。现在我想为所有没有下划线的方法以及所有带有一个前导下划线的方法提供 Doxygen 提取文档,但不是带有两个前导下划线的方法。
我发现的各种设置和命令要么为我提供了仅没有下划线的方法的文档,要么为我提供了所有方法(包括具有一个和两个前导下划线的方法)。
在我正在处理的 Python 代码中,使用了一个约定,即具有一个前导下划线的方法是“受保护的”,而具有两个前导下划线的方法是“私有的”。现在我想为所有没有下划线的方法以及所有带有一个前导下划线的方法提供 Doxygen 提取文档,但不是带有两个前导下划线的方法。
我发现的各种设置和命令要么为我提供了仅没有下划线的方法的文档,要么为我提供了所有方法(包括具有一个和两个前导下划线的方法)。
Doxygen 当前具有硬编码行为,即以 _ 开头的方法被视为私有方法。
如果你想改变这一点,请查看 doxygen 源代码,特别是其中的newFunction()
函数src/pyscanner.l
应更改为如下所示:
static void newFunction()
{
if (current->name.left(2)=="__" && current->name.right(2)=="__")
{
// special method name, see
// http://docs.python.org/ref/specialnames.html
current->protection=Public;
}
else if (current->name.left(2)=="__")
{
current->protection=Private;
}
else if (current->name.at(0)=='_')
{
current->protection=Protected;
}
}