#clangformat

David Chisnall (*Now with 50% more sarcasm!*)david_chisnall@infosec.exchange
2026-02-25

Oh, joy, clang-format 22 has compounded an existing bug where AllowShortBlocksOnASingleLine: Empty didn't work by applying the AllowShortBlocksOnASingleLine setting to functions, meaning that there is no way for us to move to clang 22 without some formatting churn.

#llvm #ClangFormat

2025-11-11

I enforce formatting consistency on a C++ code base by running clang-format in CI and failing if it modifies files

clang-format makes breaking changes all the time, so I have set up the build to always use the same version of clang-format everywhere: it downloads clang-format 18.1.8 from PyPI and uses that

..I just encountered a situation where clang-format 18.1.8 running locally on my Mac disagrees with clang-format 18.1.8 running in CI T_T

#cplusplus #programming #cpp #llvm #clangformat

2025-08-21

Реализация утилиты cat на языке C

Когда я только начинала изучать язык C, меня довольно сильно пугала его "топорность" по сравнению с другими языками. Все довольно строгое, управляемое вручную, но именно этим он и привлек меня. Потому что ощущение, будто ты напрямую разговариваешь с системой. В какой-то момент в моем поле появилась задачка: написать две утилиты линуксоидного существа cat и grep. Несмотря на то, что они кажутся довольно простыми, они оказались отличной возможностью погрузиться в работу с файлами, и понять, даже поверхностно, как работает язык C и с чем его едят. В статье постараюсь рассказать и показать ход своих мыслей и почему теперь я смотрю на консольные команды совсем иначе. В этой статье я подробно остановлюсь только на реализации утилиты cat. Что за зверь этот Cat Cat показалась мне более простой в написании, чем grep, да и частично grep строится на базе cat – тоже читает данные из файла, тоже работает со строками, но с небольшим нюансом в виде фильтрации. Что нам важно понимать на старте?

habr.com/ru/articles/939382/

#cat #утилита #clang #clangformat #linux #linuxутилита #утилиты

2025-03-10

Oh yay #clangformat updated and is now even worse

(No this can't be fixed, give me a .clang-format file which fixes this particular case and I guarantee it'll break 10 other cases)

#cpp #cplusplus #programming #clang #llvm

Diff from the previous clang-format version to a new clang-format version which adds a ton of indents for no reason
2024-12-27

Has scientists figured out yet how to get clang-format to not bizarrely try to align chained methods? #cpp #clang #llvm #clangformat #cplusplus #programming

Diff showing before and after clang-format messed up method chaining
2024-09-01

It's actually wild that regardless of how much time and effort you spend trying to prevent clang-format from aligning stuff, you'll still stumble upon cases which it absolutely insists on aligning. You'd think writing a non-aligning formatter was easier than writing an aligning one?

Worse: it occasionally aligns with tabs if you use tabs, even when you tell it to align with spaces

#ClangFormat #clang #llvm #cpp #programming

2024-08-02

Автоматическое Выравнивание Отступов в Исходниках (clang-format + Make)

Есть такая тема, как автоматическое выравнивание отступов в исходных текстах программ на Си или С++. Притом для этого есть специальные утилиты. Например clang-format или GNU indent . В этот тексте я написал как встроить процесс выравнивания исходных кодов прямо в систему сборки проекта. Просто в одно касание и выровнять, и собрать бинари.

habr.com/ru/articles/833500/

#clang #clangformat #make #makefile #sed #grep #bash #indent #devops #gnu

Hartmut Seichterretrakker
2024-08-01

@deezo nope, same result. clang-format seems to see some structure in this aggregate with designated initializers that tips the formatter over. Its a LLVM based style, minor adjustments for lambdas.

Hartmut Seichterretrakker
2024-07-31

Any folks out there know how to tame clang-format with contemporary C++ ... look at the brackets for indices ... why?

Showing C++ code with misaligned brackets generated by clang-format.
2024-03-28

Okay can someone just make a rustfmt for C++ already, I'm extremely tired of trying to configure broken formatters

I'm just trying to OR together some bits and #uncrustify is making that extremely difficult

If anyone knows how I can make this not absolutely terrible please do tell me because I'm out of ideas (and please don't tell me to use #clangformat, that's even worse)

#cpp #programming

terrible auto formatting, without surrounding parenthesesSomehow even worse auto formatting after adding parentheses
2024-01-16

Been checking out clang format a bit, trying to have it enabled for new code I write. I like it for the 98% of the stuff it gets right, but the 2% I can't configure the way I want it makes it kind of unusable to format whole documents.

Jury's still out on if I'll keep "format when typing" enabled or not.

#cpp #clang #ClangFormat

2023-12-27

does any #CPP people know how to get #ClangFormat to stop doing this BS, it looks so horrible

#clang #llvm #programming #c

2023-12-14

Современный С++ в разработке девайсов

Привет, Хабр. Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера. На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом , в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте. Во время доклада меня попросили подробнее описать детали нашего подхода в статье, поэтому рад поделиться с вами расширенной текстовой версией. Все наши устройства должны уметь взаимодействовать c виртуальным ассистентом, проигрывать музыку, обновлять прошивку, выполнять аутентификацию пользователя и т.д.. Такая функциональность реализована в едином для всех платформ приложении, работающем в пользовательском режиме на каждом из наших устройств, будь то умная колонка, ТВ-приставка или умный телевизор. Язык С++ позволяет писать эффективный и переносимый между различными платформами код, поэтому выбор языка программирования для нашего приложения был очевиден. При этом язык известен своей сложностью и возможностью выполнить одну и ту же задачу несколькими способами. Чтобы успешно разрабатывать большой проект на языке C++, необходимо хорошо настроить процесс разработки в команде (а это несколько десятков инженеров). Также можно значительно осовременить разработку на C++ за счет использования подходящих инструментов статического и динамического анализа, и правильной интеграции их в процесс разработки.

habr.com/ru/companies/sberdevi

#с++ #clangtidy #unittesting #embedded #динамический_анализ_кода #статический_анализ_кода #качество_кода #clangformat

2023-07-11

It seems literally impossible to get #ClangFormat to not align stuff.

Don't believe me? Take this piece of code and find a clang-format config which doesn't align stuff:

auto getWhateverStmt = db_.stmt(
"SELECT * FROM mytable "
"WHERE k = 2 "
"ORDER BY createdAt").bind();

Feel free to play with it in zed0.co.uk/clang-format-config. I literally can not find a way to make it not produce something absolutely ridiculous where the SQL is pushed all the way to the right.

#llvm #cpp #c #programming

रञ्जित (Ranjit Mathew)rmathew
2020-06-16
रञ्जित (Ranjit Mathew)rmathew
2019-11-20

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst