engine icon indicating copy to clipboard operation
engine copied to clipboard

clang_format

Open yanovich opened this issue 2 years ago • 10 comments

Есть предложение добавить файл настроек для clang-format. Это позволит установить стандарт для форматирования. Сейчас единого подхода в коде нет, поэтому приходится код руками форматировать, от чего я отвык уже )

Я пробовал разные варианты, в итоге остановился на требованиях OpenSSL для форматирования. У них тоже нет своих настроек для clang-format, но есть требования.

Минусом вносимого предложения является большой первоначальный whitespace патч, но плюсом -- сокращение времени на "причёсывание" будущих патчей.

Если смысл есть, сделаю PR.

clang-format.txt

yanovich avatar Dec 02 '22 18:12 yanovich

Да, всячески одобряю. Если ещё и тест удастся сделать, будет вообще отлично

beldmit avatar Dec 02 '22 18:12 beldmit

Есть же .editorconfig.

vt-alt avatar Dec 02 '22 18:12 vt-alt

Первоначальный вариант в #427

yanovich avatar Dec 02 '22 18:12 yanovich

Да, всячески одобряю. Если ещё и тест удастся сделать, будет вообще отлично

Точно можно сделать для clang-* вариантов тестов.

yanovich avatar Dec 02 '22 18:12 yanovich

Лучше бы отдельно

beldmit avatar Dec 02 '22 19:12 beldmit

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

phprus avatar Dec 02 '22 19:12 phprus

Да, всячески одобряю. Если ещё и тест удастся сделать, будет вообще отлично

К сожалению в результате этих изменений теряется git blame, например:

View file + Blame на один из файлов из #427: https://github.com/gost-engine/engine/blame/cf83bf3cb9108370bef19284278152e14acb115a/gost_ameth.c у большинства строк с кодом: consistent formatting

ps. Это супер: https://github.com/gost-engine/engine/blame/cf83bf3cb9108370bef19284278152e14acb115a/test_ciphers.c#L213

pps. Может достаточно переформатировать только отступы в начале строк, но не менять внутри строк?

vt-alt avatar Dec 03 '22 02:12 vt-alt

Для git blame есть штатное решение: https://michaelheap.com/git-ignore-rev/

Гитхаб его поддерживает: https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

phprus avatar Dec 03 '22 08:12 phprus

pps. Может достаточно переформатировать только отступы в начале строк, но не менять внутри строк?

Таких параметров я не нашёл, к сожалению.

Главный эффект в том, что если такое сделать, то дальнейшее форматирование будет одной кнопкой прямо из редактора.

Для git blame есть штатное решение: https://michaelheap.com/git-ignore-rev/

Гитхаб его поддерживает: https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

Бомба! Можно считать, что недостатка уже нет!

yanovich avatar Dec 03 '22 09:12 yanovich

Лучше бы отдельно

Сделал в #427, сработка в #428

yanovich avatar Dec 03 '22 12:12 yanovich