clang-format:不要添加空格以包含语句/方法引用

时间:2017-12-29 00:21:05

标签: code-formatting clang-format

我使用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选项。有任何想法/帮助解决这个问题吗?

1 个答案:

答案 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();
}