astyle格式化多行<<

时间:2009-08-26 09:04:03

标签: c++ coding-style

我正在使用astyle,非常适合将标准样式应用于现有代码。但是,当我遇到这个时,我注意到了:

ostringstream myStream;
myStream << 1
         << 2;

它重新格式化为:

ostringstream myStream;
myStream << 1
<< 2;

这是我的选项文件:(版本1.23)

--indent=spaces
--brackets=break
--indent-switches
--indent-namespaces
--min-conditional-indent=4
--break-closing-brackets
--pad-paren-in
--unpad-paren
--convert-tabs

有没有办法让它排成一行“&lt;&lt;&lt;在下一行?

修改

我还尝试使用以下文件(test.cpp)的1.22版本:

void main()
{
    ostringstream myStream;
    myStream << 1
             << 2;
}

使用以下选项(format.txt):

--indent=spaces
--brackets=break-closing
--indent-switches
--indent-namespaces
--min-conditional-indent=4
--pad=paren-in
--unpad=paren
--convert-tabs

和以下命令行:

  

astyle --options = format.txt test.cpp

产生了这个:

void main()
{
    ostringstream myStream;
    myStream << 1
    << 2;
}

2 个答案:

答案 0 :(得分:8)

最终结论是bug 见底

我试图复制你的问题并且无法得到你正在谈论的行为(OP问题更新否定了这一点)

修改(已删除要更新的内容)

参数名称在1.22和1.23之间变化。

如果两者都没有解决您的问题,请尝试上传更多代码作为示例,或者尝试仅使用您在此处粘贴的代码来复制问题。(由OP完成)

我还发现选项的顺序似乎偶尔会有所不同。例如:

astyle --indent=tab --style=ansi test.cpp

与:

不同
astyle --style=ansi --indent=tab test.cpp

指定“--style = ansi”秒有效地否定了“--indent = tab”。

如果这可能是您的问题,我不会感到惊讶。

...但是在玩了20分钟之后,我确信它是一种风格bug

编辑以包含错误链接bug感谢Markh44

答案 1 :(得分:2)

@Catskul,你是对的,这是一个错误。

我最终发现了这个:

http://sourceforge.net/tracker/index.php?func=detail&aid=1713990&group_id=2319&atid=102319