krasimir added a comment. This is getting more fun: the reason why `///` isn't broken up is because the first character `/` after the comment leader `//` is considered punctuation per isPunctuation's CHAR_RAWDEL, which includes all these `{}[]#<>%:;?*+-/^&|~!=,"'`:
- https://github.com/llvm/llvm-project/blob/73a15ad567071c13e761fd6d593e2b66164865e2/clang/lib/Format/BreakableToken.cpp#L790 - https://github.com/llvm/llvm-project/blob/73a15ad567071c13e761fd6d593e2b66164865e2/clang/include/clang/Basic/CharInfo.h#L139 - https://github.com/llvm/llvm-project/blob/73a15ad567071c13e761fd6d593e2b66164865e2/clang/include/clang/Basic/CharInfo.h#L31 With this patch, we got stuff like: % cat test.cc //# status //. status //; status //{ status /// status //, status //: status % ~/llvm/llvm-project/build/bin/clang-format test.cc // # status //. status //; status //{ status /// status //, status //: status This makes me think that we should really consider not adding indent if the first character is punctuation WAI, with rationale: - comments starting with such characters often have special meaning, clang-format errors out on the conservative side to not touch them. Example is stuff like `//!` in Doxygen blocks: https://www.doxygen.nl/manual/docblocks.html - it's possible to work around this by changing the source code to use `// #`; clang-format will respect indentation in that case (also for other punctuation characters). WDYAT? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121451/new/ https://reviews.llvm.org/D121451 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits