【问题标题】:Can astyle handle array initialization braces different?astyle 可以处理不同的数组初始化大括号吗?
【发布时间】:2017-01-23 10:03:41
【问题描述】:

我有如下代码sn-p,和我想要的一模一样:

#include <iostream>

int main(int argc, char* argv[])
{
    for (auto i: { 1, 2, 3 })
    {
        std::cout << i << std::endl;
    }
}

不幸的是,astyle 把它变成了:

#include <iostream>

int main(int argc, char* argv[])
{
    for (auto i :
            {
                1, 2, 3
            })
    {
        std::cout << i << std::endl;
    }
}

有什么方法可以让 astyle 以不同的方式处理初始化列表大括号(即忽略它们)?

这些是我目前的选择:

--mode=c --style=allman --indent=spaces=4 -max-code-length=100 --attach-namespaces --pad-oper --pad-header

【问题讨论】:

  • 我并不是要宣扬一种或另一种软件,但您是否考虑过使用 clang 格式?

标签: c++ astyle


【解决方案1】:

只需添加选项--keep-one-line-blocks 所以,所有选项都是

--mode=c --style=allman --indent=spaces=4 --max-code-length=100 --attach-namespaces --pad-oper --pad-header --keep-one-line-blocks


#include <iostream>

int main( int argc, char* argv[] )
{
    for ( auto i : { 1, 2, 3 } )
    {
        std::cout << i << std::endl;
    }

    bool br = false;
    if ( true )
    {   br = true; cout << "Just test" << endl; }
}

但是,您应该小心。 添加--keep-one-line-blocks选项后,astyle只保留最后一行等所有一行块。

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 2021-08-03
    • 2013-05-28
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多