我目前正在基于代码的基础上逐步应用clang格式,并提出了一个场景,它给出的结果与::的换行位置不是我们真正想要的结果。
>// Manual format was.
bool
foo::MyLongClassName::MyLongFunctionName(
const Type1& Argument1,
const Type2& Argument2);
// After clang format.
bool foo::MyLongClassName::
MyLongFunctionName(const Type1& Argument1,
const Type2& Argument2);
我的同事有评论评论:
我总是喜欢将函数名放在双冒号旁边,因为这使搜索方法实现变得容易。
有没有一种方法可以获取clang格式来更改换行发生的一侧?
例如因此它的输出类似于:
// After clang format.
bool foo::MyLongClassName
::MyLongFunctionName(const Type1& Argument1,
const Type2& Argument2);
答案 0 :(得分:0)
目前,我的解决方法是应用后clang格式的hack来手动移动双冒号,同时遍历文件行并运行perl regex。
# Hack - fix breaking after scoping operator, instead we want the
# break to be before the scoping operator so we move it down a line.
if ($line =~ /^.+::$/ &&
$lines[$lineNo + 1] =~ /^ [A-Z].+$/)
{
$line = substr($line, 0, -2);
$lines[$lineNo + 1] = "::".substr($lines[$lineNo + 1], 2);
}