c++ - 如何验证 C++ 程序是否使用 Doxygen 格式有良好的文档记录?
问题描述
Doxygen 有没有办法报告源代码是否记录在案?有什么方法可以识别一组 C++ 源文件中没有详细记录的文件集?
- 编码语言:C++
- 文档工具:Doxygen(如果有验证选项,可以使用其他一些开放工具进行更改)
/// \brief Main function
/// \param argc An integer argument count of the command line arguments
/// \param argv An argument vector of the command line arguments
/// \return an integer 0 upon exit success
int main(int argc, char** argv)
{
/// Comments I would like to be documented in as well
return 0;
}
我使用的命令如下
$> doxygen Doxyfile && echo "success" || echo "failed"
解决方案
Doxygen 已经提供了一些有用的配置选项:
WARN_IF_UNDOCUMENTED
如果
WARN_IF_UNDOCUMENTED
标签设置为YES
然后 doxygen 将为无证成员生成警告。如果EXTRACT_ALL
设置为,YES
则此标志将自动禁用。
WARN_IF_DOC_ERROR
如果
WARN_IF_DOC_ERROR
标签设置为YES
, doxygen 将对文档中的潜在错误生成警告,例如未记录文档函数中的某些参数,或记录不存在的参数或错误使用标记命令。
WARN_NO_PARAMDOC
WARN_NO_PARAMDOC
可以启用此选项以获取已记录但没有参数或返回值文档的函数的警告。如果设置为NO
,doxygen 只会警告错误或不完整的参数文档,但不会警告缺少文档。如果EXTRACT_ALL
设置为,YES
则此标志将自动禁用。
最后:
WARN_AS_ERROR
如果
WARN_AS_ERROR
标签设置为YES
doxygen 将在遇到警告时立即停止。如果WARN_AS_ERROR
标签设置为,FAIL_ON_WARNINGS
则 doxygen 将继续运行,就像WARN_AS_ERROR
标签设置为一样NO
,但在 doxygen 进程结束时,doxygen 将以非零状态返回。可能的值为
NO
:YES
和FAIL_ON_WARNINGS
。
所以让我们把所有这些放在一起。Doxyfile 需要包含以下设置:
# EXTRACT_ALL = NO is needed, or otherwise some of the
# other flags are disabled automatically.
EXTRACT_ALL = NO
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
# WARN_AS_ERROR could also be NO, but then
# it stops after the first documentation error.
WARN_AS_ERROR = YES
这样 doxygen 将显示所有未记录的代码,如果有未记录的代码,它将以非零值退出。
推荐阅读
- python - 可重新排序的列表视图不调用 removeRows()
- python - TypeError:“NoneType”对象在装饰器中不可调用
- cakephp-2.0 - CakePHP 2 如何向 $this->Auth->user() 添加参数
- c - 将 NASM 集成到用 C 编写的编译器
- java - org.springframework.beans.factory.CannotLoadBeanClassException:找不到 bean 的类 [com.mchange.v2.c3p0.ComboPooledDataSource]
- java - 从 JSON 数据中删除高级字段
- python - 使用列表理解检查两个不同列表中的两个项目是否具有相似的值
- javascript - 使用 javascript 创建动态多级 html 菜单
- kubernetes-ingress - Traefik 2.x IngressRoute 不适用于给定的 Web 应用程序上下文根
- javascript - 如何在 react-router-dom 中嵌套路由