我使用clang-format
格式化代码。
我注意到它添加了空格以包含语句和完全限定的方法引用。
给出以下("格式正确的")代码片段:
#include bli/bla/blub/_foo;
fun()
{
bli/bla/blub/_foo::bar();
}
通过clang-format
运行时,会将其转换为:
#include bli / bla / blub / _foo;
fun() { bli / bla / blub / _foo::bar(); }
我不希望在/
之前和之后添加空格,因为路径可能未被修改。花括号位置并不重要。
我不确定如何完成此操作,我已经查看了文档here,但我没有看到相应的style
选项。有任何想法/帮助解决这个问题吗?
答案 0 :(得分:1)
该代码无效C ++,因此clang-format的行为与您的预期不同(我假设您正在使用C ++)。
语句#include bli/bla/blub/_foo;
在标题路径之前和之后应该有双引号,并且省略分号。
对于C ++中的完全限定符号,您必须使用::
作为分隔符,因此bli/bla/blub/_foo::bar();
也不是有效的C ++。
在include语句中,由于缺少双引号,clang-format将bli/bla/blub/_foo
视为“bli
除以bla
除以blub
除以_foo::bar()
“ - 就像任何C / C ++编译器一样 - 并在/
和操作数之间添加空格,这似乎是明智的。
如果您使用正确的C ++代码提供clang-format,例如:
#include "bli/bla/blub/_foo"
void fun()
{
bli::bla::blub::_foo::bar();
}
你会得到:
#include "bli/bla/blub/_foo"
void fun() {
bli::bla::blub::_foo::bar();
}