我正在尝试让 clang-format 识别 foo.cpp
的主要包含内容在以下设置中:
project/my_lib
├── CMakeLists.txt
├── include
│ └── project
│ └── my_lib
│ └── foo.hpp
├── src
│ └── foo.cpp
└── tests
└── foo_test.cpp
和foo.cpp
内容如下:
#include <project/another_lib/bar.hpp>
#include <project/my_lib/foo.hpp>
#include <vector>
// ...
我认为我已经确定的问题如下:clang 尝试根据文件名识别“主”包含,在本例中 foo.cpp
。当它查看#include <project/my_lib/foo.hpp>
时它不会将其识别为该 cpp 文件的“主要”包含内容。我知道可以为“主包含文件”逻辑指定后缀,但这里需要的是前缀正则表达式。
关于如何让 clang 在上面的示例中将正确的包含设置为优先级 0,有什么帮助吗?
引用:Clang format options, section "IncludeCategories" and following
编辑:我正在使用clang-format
集成在 Visual Studio 2019 中,这意味着我认为我无权访问命令行选项。此外,这是一个共享项目,我想摆脱默认行为。
最佳答案
就像一个快速更新,这解决了我的问题:如果包含使用常规引号 ("
),则与 Visual Studio 捆绑的 clang-format 似乎会拾取“main” header 并相应地订购。
并不理想,但仍然是一个可行的解决方案。
关于c++ - clang-format 主要包括以文件夹前缀排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65305230/