У меня есть следующий фрагмент кода, который в точности такой, как я хочу:
#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
Просто добавьте опцию --keep-one-line-blocks
Итак, все варианты
—mode = c —style = allman —indent = пробелы = 4 —max-code-length = 100 —attach-namespss —pad-oper —pad-header —держать-однострочных-блоки
#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 просто сохраняет все блоки одной строки, такие как последняя строка.
Других решений пока нет …