Я хочу использовать лязг-формат чтобы выровнять мои комментарии, но не более того.
Вариант для этого: AlignTrailingComments (bool)
,
Но когда я запускаю следующее:
clang-format-3.6 -i -style='{AlignTrailingComments: true}' <file>
Он выполняет все виды других параметров форматирования, которые, я полагаю, имеют значение по умолчанию, если оно не указано.
Как я могу выполнить только одно правило форматирования clang на базе кода?
Наличие всех этих значений по умолчанию затрудняет понимание полного эффекта, который один параметр форматирования оказывает на код. Я должен проанализировать разницу между всеми этими другими изменениями и решить, действительно ли это был вариант, который я указал.
Я заметил, что есть DisableFormat Опция, но как бы я ее ни использовал, она вообще не позволяет форматированию.
clang-format-3.6 -i -style='{AlignTrailingComments: true, DisableFormat: true}'
clang-format-3.6 -i -style='{DisableFormat: true, AlignTrailingComments: true}'
Оба заставляют clang-format нигде не создавать никакого кода.
Я думаю, что формат Clang был просто не предназначен для этого. Правила — это не те вещи, к которым он применяется постепенно, вместо этого программа строится вокруг нее, анализируя всю вашу программу и забывая (большую часть) старого пробела, и генерируя новые пробелы на основе выбранных вами правил.
Вы можете увидеть некоторый обзор архитектуры здесь: http://www.llvm.org/devmtg/2013-04/jasper-slides.pdf
Сначала он запускает лексер и парсер clang, затем разделяет группы токенов на «развернутые строки», которые являются «токенами, которые мы хотели бы собрать в одну строку, если не было ограничения на столбцы». Затем планировщик определяет форматирование каждой развернутой строки на основе различных ограничений и оптимизации для различных штрафов.
Так что я не думаю, что «одно действие в формате clang» на самом деле вещь, дизайн выглядит для меня в значительной степени монолитным.