2016-07-06 7 views
2

В основном отступа стиль, который я хотел бы получить это один описывается как 'Lisp style' on Wikipedia:Как сделать лязг-формат держать закрывающие фигурные скобки на одной строке

while (x == y) { 
    something(); 
    somethingelse(); } 

Я использую пользовательский .clang-format файл (версия 3.8), но я не смог найти какой-либо вариант, подходящий для моей потребности.

Заранее спасибо.

+3

Не ответ на ваш вопрос (таким образом, комментарий), но каждому из них; лично я не могу * стоять * в этом формате, предпочитая вместо этого [Allman] (https://en.wikipedia.org/wiki/Indent_style#Allman_style) форматирование, как и большинство остального человечества. Лучше всего удачи. Интересно, упражнение. – WhozCraig

+0

@WhozCraig Мне не нравится стиль Allman, но я привык к круглым скобкам Python и Lisp. Я в порядке с несколькими закрывающимися скобками, и я предпочитаю вертикальную компактность и несколько Python (первое, что я вижу на новой строке всегда ключевое слово). – mmj

+0

Просто подумайте о фигуре как ключевое слово. Создание C++ похоже на Python всегда будет ошибкой. –

ответ

0

Исходный код формата clang довольно чистый, его не так уж сложно прочитать или изменить, как только вы получите эту идею.

Вот патч, который я сделал год назад, который добавляет «break before brace после списков инициализации конструктора», в clang 3.7. (Он не слился после обсуждения, к сожалению, но я все равно использовал его для своих собственных проектов.) Это не так много кода: https://github.com/cbeck88/clang/commit/e4f65cf7ab3deea9e6c7cdd5900ad0362835e514

Выяснение того, как построить clang и запустить тесты блока clang, возможно, так же много работайте, как на самом деле делая патч, чтобы делать то, что вы говорите.

Насколько я помню, исходный код более основаны на добавление разрывов, а не удаляя их, так что в зависимости от того, как именно вы хотите оформить свою идею (это это только управляющие структурами? Для ИФ? Для скобки заканчивающихся функций или класс?), это может быть сложно. Но я все еще надеюсь, что вы сможете заставить его работать.

К моему воспоминанию, нет встроенных возможностей, чтобы сделать что-то близкое к тому, что вы говорите.

+0

Кроме того, fwiw building clang не так уж трудна, единственная сложная часть - насколько модульная она, как в основном есть LLVM, который стоит один, а затем clang, который нуждается в этом, а затем clang-tools в качестве подмодулей в этом, и поэтому вы заканчиваете чтобы немного упорядочить различные компоненты. Но создание gcc было труднее, по крайней мере для меня: p –

+0

Спасибо за ваше предложение, кстати, перед настройкой исходного кода 'clang-format', я думаю, что попробую ** Artistic Style **, который, кажется, имеет предопределенный вариант «Lisp style». – mmj