2015-10-02 6 views
4

я использую BreakBeforeBraces: Allman в моем .clang-format файле, но скобки в управляющих операторов (например, if, for, while ...) не оказывается на свою собственную линию.Перерыв после заявлений управления в звоном формате

// Currently: 
void foo() 
{ 
    while(true) { 
     bar(); 
    } 
} 

// What I want: 
void foo() 
{ 
    while(true) 
    { 
     bar(); 
    } 
} 

I've read that вы можете установить вложенные классы конфигурации для скобок в BraceWrapping, но я could't выяснить правильный синтаксис YAML (и синтаксис JSON для возвышенного текста плагина), и не могли найти любой существующий пример.

Есть ли способ сделать это?

+0

Когда я запускаю 'clang-format -i -style =" {BreakBeforeBraces: Allman} "test.cpp' на вашем примере, он помещает все фигурные скобки в свою линию, как вы ожидали бы для стиля Allman. Вы видите что-то еще? –

+2

@RichardViney: вы правы ... Я сделал несколько тестов и выяснил, что 'AllowShortLoopsOnASingleLine: true' является виновником этой проблемы. Установка его на 'false' делает работу форматирования по назначению. Это ошибка? –

+0

Нет, я не думаю, что это ошибка, на самом деле есть другие варианты стиля, такие как 'AllowShortFunctionsOnASingleLine', которые при использовании с' BreakBeforeBraces: Allman' также позволят скобкам иногда не всегда иметь строку для себя при определенных условиях , Если вам нужны ультра-строгие брекеты Allman, вам также нужно будет проверить эти другие стили. –

ответ

3

Достижение желаемого результата с определенной комбинацией опций стиля в настоящий момент невозможно. Я сообщил the issue as bug 25069.

+0

Похоже, что clang-format-3.8 имеет индивидуальные варианты взлома, когда BraceWrapping теперь настроен на пользовательский. –

 Смежные вопросы

  • Нет связанных вопросов^_^