clang-format - 铿锵格式标头包括后卫
问题描述
我想clang-format
检查我的每个标题是否都有正确的包含保护。例如,对于文件dopelib/dopestuff/whatitisyo.h
,我希望代码的格式如下:
#ifndef DOPELIB_DOPESTUFF_WHATITISYO_H
#define DOPELIB_DOPESTUFF_WHATITISYO_H
/** Code here. **/
#endif // DOPELIB_DOPESTUFF_WHATITISYO_H
可以clnag-format
检查此结构并确保包含保护存在并且使用文件名正确命名#ifndef
(cpplint 的作用)?
解决方案
据我所知,clang-format
目前不支持这个。
clang-tidy
但是,您可以使用(在此处记录)来做到这一点。像这样调用它:
clang-tidy -checks='-*,llvm-header-guard' -fix-errors myIncludeFile.h
解释:
-*
告诉禁用所有clang-tidy
检查llvm-header-guard
告诉clang-tidy
启用处理包括警卫的检查(在此处记录)-fix-errors
告诉修复任何由此产生的clang-tidy
问题,即使它在解析文件时遇到其他错误
包含守卫的llvm-header-guard
预期格式正是您上面要求的;例如文件 mydir/myfile.h 将使用 MYDIR_MYFILE_H。我没有看到任何实际指定这是它使用的格式的文档,但我已经验证至少版本 6.0.0 确实使用了该格式。
另请参阅:clang include fixer,它做类似的事情。
推荐阅读
- c# - 发送短信时如何获取信息?
- python - 为什么 TensorFlow 不支持具有 int64 密集张量的 Boosted Decision Trees?
- php - 参数为空时如何获取所有值
- tfs - TFS 2015 找不到具有以下功能的代理:msbuild、java、sonar qube
- javascript - 为什么我在 React useState 钩子中改变状态很重要?
- django - 使用带有 Wagtail 的 Django 过滤器时 int() 的无效文字(以 10 为底):'RW'
- java - 如何使用超类的超方法
- ios - 具有动态行高的 UITableView 显示自动布局约束错误
- ios - SceneKit 在多个透明平面上延迟阴影
- python - 如何仅遍历站点的某些区域?基本上停留在某些页面内?