c++ - astyle格式化多行<<

标签 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

有什么办法可以让它和下一行的“<<”对齐吗?

编辑:

我还使用以下文件 (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;
}

最佳答案

最终结论是 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 分钟之后,我确信这是一个 astyle bug .

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

关于c++ - astyle格式化多行<<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333339/

相关文章:

c++ - 编译器在不需要时关心复制构造函数

c++:return 语句行为异常

c++ - 二维数组,*(pointerArray[i] + j)是什么意思?

c++ - 在局部变量上使用 const

java - 为什么 "else"在 "if x then return"之后很少使用?

python - 当只有一个函数需要时,嵌套函数是一种好方法吗?

c++ - 在 C++ 中收集模式元素

C++ 将 int 转换为 *LONG

language-agnostic - 构造变量嵌套循环的好方法是什么?

python - 你如何 PEP 8 命名一个名称是首字母缩略词的类?