如何通过clang-format确保pch.h是第一个被包含的头文件?
让clang-format始终将预编译头(pch.h)放在首位的方案
方法1:用IncludeIsMainRegex标记预编译头
clang-format自带的IncludeIsMainRegex配置项,专门用来识别需要放在最前面的"主头文件",只需将其设置为匹配你的预编译头文件名即可:
IncludeIsMainRegex: 'pch\.h'
这个配置会让clang-format自动把匹配到的#include "pch.h"放在所有头文件的最前面,不管你使用Merge或Regroup这类IncludeBlocksStyle规则,完全不需要手动分隔头文件块。
方法2:通过IncludeCategories设置优先级
如果需要更灵活的头文件分类排序逻辑,可以把预编译头单独归为最高优先级的类别:
IncludeCategories: - Regex: '^".*pch\.h"' Priority: 0 - Regex: '^<.*>' Priority: 1 - Regex: '^".*"' Priority: 2 IncludeBlocksStyle: Regroup
优先级数字越小越靠前,这里把pch.h的优先级设为0,确保它排在所有其他头文件之前。
关于你的临时方案
你用IncludeBlocksStyle: Preserve+手动分隔的方式确实能生效,但缺点是需要手动维护头文件块的分隔,不够自动化。上面两种方法都能实现自动将pch.h置顶,无需手动干预。
内容的提问来源于stack exchange,提问作者Yomi1984
相关产品推荐
相关产品推荐

