Dynamic Doxygen-使用带有参数的Alias命令生成动态组
我希望通过使用某种别名命令自动创建组层次结构。我要分组Dynamic Doxygen-使用带有参数的Alias命令生成动态组,dynamic,grouping,doxygen,Dynamic,Grouping,Doxygen,我希望通过使用某种别名命令自动创建组层次结构。我要分组 扩展方法 字符串扩展名 流扩展 要使用doxygen注释创建,例如 /** Documentation for the method * \extension{string} */ public void ExtensionMethod(this string str){ ... } 其中\extension{string}将映射到 \addtogroup stringExtensions string Exte
- 扩展方法
- 字符串扩展名
- 流扩展
/** Documentation for the method
* \extension{string}
*/
public void ExtensionMethod(this string str){
...
}
其中\extension{string}
将映射到
\addtogroup stringExtensions string Extensions
\ingroup ExtnMethods
/** \addtogroup stringExtensions string Extensions
* \ingroup ExtnMethods
* \@{
* \@}
*/
/** \ingroup stringExtensions
* Documentation for the method
*/
public void ExtensionMethod(this string str){
...
}
不幸的是,这意味着为该方法编写的所有文档都与该组关联
最接近我的是如果你有
\addtogroup stringExtensions string Extensions
\ingroup ExtnMethods
/** \addtogroup stringExtensions string Extensions
* \ingroup ExtnMethods
* \@{
* \@}
*/
/** \ingroup stringExtensions
* Documentation for the method
*/
public void ExtensionMethod(this string str){
...
}
它可以工作,但这需要两个单独的注释块,我找不到任何方法使用别名来实现这一点
我知道使用inputfilter可能可以实现某些功能,但我希望可以实现更简单的功能。我发现使用inputfilter的答案比我最初设想的更简洁-解析整个文件,查找
\extension{…}
,并用适当的\ingroup
命令替换它,然后在文件底部附加所需的\addgroup
命令
然后可以将其作为inputfilter运行
下面是一个执行此操作的python脚本。请注意,它并没有检查它所替换的内容是否在doxygen注释中,但就我的目的而言,它已经足够好了
#!python
import sys, re
if(len(sys.argv) != 2):
print "Need exactly one argument, the file to filter"
exit(1)
extnFinder = re.compile("\\\\extension{(\w+)}")
extnTypes = set();
filename = sys.argv[1]
fileIn = open(filename, "r")
line = fileIn.readline()
def extnSub(matchobj):
extnTypes.add(matchobj.group(1))
return "\ingroup %(extn)sExtensions" % {'extn':matchobj.group(1)}
while line:
matches = extnFinder.findall(line)
sys.stdout.write(re.sub(extnFinder,extnSub,line))
line = fileIn.readline()
for extn in extnTypes:
print "\n\n/**\\addtogroup %(extn)sExtensions %(extn)s Extensions\n\\ingroup ExtnMethods\n */\n" % {'extn':extn}