В соглашении о кодировании моей компании мы форматируем вложенные пространства имен в одну строку. Например:
namespace Foo { namespace Bar {
...
}} // Foo::Bar
Я пытаюсь применить этот стиль с помощью astyle, но не смог найти ничего в документации на http://astyle.sourceforge.net/astyle.html
Когда я запускаю следующую команду astyle (игнорируйте не относящиеся к делу параметры)
astyle --style=allman --add-brackets --align-reference=name --align-pointer=name --attach-namespaces --pad-header --pad-oper --unpad-paren -n <filename>
Я получаю каждое из вложенных пространств имен в отдельной строке, как показано ниже:
namespace Foo {
namespace Bar {
...
}
}
Попробуйте изменить astyle
исходный код. Найти метод ASFormater::isOkToBreakBlock
и вставьте в начале:
if (isBraceType(braceType, NAMESPACE_TYPE))
return false;
Убедитесь, что это не нарушает все форматирование.
Постскриптум Надеюсь что astyle
Команда услышит и внесет правильные изменения с опцией.
Других решений пока нет …