Clang 格式在包含正则表达式中使用格式化文件名

问题描述 投票:0回答:1

考虑文件中包含以下内容

Main.c

#include "Main.h"
#include "Main_something.h"
#include "Main_anotherthing.h"
#include "Main_randomString.h"
#include "Something_FromAnotherLib.h"

我想让

clang-format
考虑以
Main
(格式化文件名)开头的所有内容作为主标题,并将其分配为 0 类别。

clang-format
提供了与我需要的相反。它允许您指定一堆也算作主文件的源文件后缀。 IE。
Main_myThing.c
被认为是出于包含排序的目的而命名为
Main.c
。我需要能够指定一堆被视为“主要”的标头名称后缀。 IE。
Main_mything.h
==
Main.h
用于包含排序。

有可能实现这个目标吗?

c clang include header-files clang-format
1个回答
0
投票

不幸的是,你不能在这个正则表达式中使用任何“预定义的魔法值” 看看 https://clang.llvm.org/doxygen/HeaderIncludes_8cpp_source.html

CategoryRegexs.emplace_back(Category.Regex
...
if (CategoryRegexs[i].match(IncludeName))

但是,如果你愿意,你可以做这样的事情。创建模板 .clang-format.tmpl 文件,

IncludeCategories
  - Regex: '${placeholder}.*'

并通过每个子文件夹 .clang-format 中的脚本传播它,并将

${placeholder}
替换为
Main_
$0/
或任何其他。

© www.soinside.com 2019 - 2024. All rights reserved.