Может ли astyle обрабатывать скобки для инициализации массива по-разному?

У меня есть следующий фрагмент кода, который в точности такой, как я хочу:

#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

1 ответ

Просто добавьте опцию --keep-one-line-blocksИтак, все варианты

--mode=c --style=allman --indent= пробелы = 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 просто сохраняет все блоки одной строки, такие как последняя строка.

Другие вопросы по тегам