Как я могу применить только одно действие в формате clang?

Я хочу использовать лязг-формат чтобы выровнять мои комментарии, но не более того.

Вариант для этого: 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 нигде не создавать никакого кода.

20

Решение

Я думаю, что формат Clang был просто не предназначен для этого. Правила — это не те вещи, к которым он применяется постепенно, вместо этого программа строится вокруг нее, анализируя всю вашу программу и забывая (большую часть) старого пробела, и генерируя новые пробелы на основе выбранных вами правил.

Вы можете увидеть некоторый обзор архитектуры здесь: http://www.llvm.org/devmtg/2013-04/jasper-slides.pdf

Сначала он запускает лексер и парсер clang, затем разделяет группы токенов на «развернутые строки», которые являются «токенами, которые мы хотели бы собрать в одну строку, если не было ограничения на столбцы». Затем планировщик определяет форматирование каждой развернутой строки на основе различных ограничений и оптимизации для различных штрафов.

Так что я не думаю, что «одно действие в формате clang» на самом деле вещь, дизайн выглядит для меня в значительной степени монолитным.

5

Другие решения


По вопросам рекламы [email protected]