clang-format有IncludeIsMainRegex
来确定几个文件是否共享相同的主标题,以便首先放置此#include
指令。够整洁。
我几乎总是使用这种风格的前向声明标题:" entity_fwd.hpp"," entity.hpp"和" entity.cpp"。另外还有一个" entity_test.cpp",它应该使用" entity.hpp"头。 " entity.hpp"但是,应该使用" entity_fwd.hpp"作为主标题。
所以,我真正需要的是一种将其他标题指定为 main 的方法,而不是使用相同主标题的其他源文件。
有没有人找到一种方法让clang-format做到这一点?
修改
好的,所以多一点上下文。假设我有这个名为entity_fwd.hpp
的标题:
class Entity;
class Player;
class MOB;
bool collisionTest(Entity const & e1, Entity const & e2);
然后我有一个正常的定义标题entity.hpp
:
#include "entity_fwd.hpp"
#include "world.hpp"
#include <vector>
class Entity {
public:
Entity(Entity const &) = delete;
virtual bool isAlive() const;
...
};
...
最后是一个实施文件entity.cpp
:
#include "entity.hpp"
bool collisionTest(Entity const & e1, Entity const & e2) {
...
}
bool Entity::isAlive() const {
...
}
...
对于entity.cpp
clang-format 知道 entity.hpp
是该文件的主标题,基于标题的主干&#39 ; s文件名;术语主标题是clang格式的术语。 主标题将首先放在包含列表中。
对于entity.hpp
,主标题应为entity_fwd.hpp
。我可以使用IncludeCategories
与正则表达式'_fwd.h(pp)?"$'
对entity_fwd.hpp
进行排序,但这样会首先放置所有 _fwd
标题,其中只有{{1}应该得到特殊待遇。
答案 0 :(得分:1)
LSOpenURLsWithRole() failed with error -10810 for the file /Users/gb/myapp/dist/MyApplication.app.
的最新documentation显示一个新样式选项clang-format
,这似乎是您所需要的。该版本不在10.0.0中,因此您需要找到一个比该版本更新的IncludeIsMainSourceRegex
版本。