[PATCH] D138263: [clang-format] Supress aligning of trailing namespace comments
Björn Schäpers via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Nov 20 12:20:18 PST 2022
HazardyKnusperkeks added a comment.
In D138263#3938593 <https://reviews.llvm.org/D138263#3938593>, @owenpan wrote:
> Something like the following:
>
> diff --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h
> index 87515372046d..3dc5e411df55 100644
> --- a/clang/lib/Format/FormatToken.h
> +++ b/clang/lib/Format/FormatToken.h
> @@ -98,6 +98,8 @@ namespace format {
> TYPE(MacroBlockBegin) \
> TYPE(MacroBlockEnd) \
> TYPE(ModulePartitionColon) \
> + TYPE(NamespaceLBrace) \
> + TYPE(NamespaceRBrace) \
> TYPE(NamespaceMacro) \
> TYPE(NonNullAssertion) \
> TYPE(NullCoalescingEqual) \
> diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp
> index 18ec0844db3d..6eb1086015f0 100644
> --- a/clang/lib/Format/UnwrappedLineParser.cpp
> +++ b/clang/lib/Format/UnwrappedLineParser.cpp
> @@ -920,6 +920,9 @@ FormatToken *UnwrappedLineParser::parseBlock(
> return IfLBrace;
> }
>
> + if (FormatTok->is(tok::r_brace) && Tok->is(TT_NamespaceLBrace))
> + FormatTok->setFinalizedType(TT_NamespaceRBrace);
> +
> const bool IsFunctionRBrace =
> FormatTok->is(tok::r_brace) && Tok->is(TT_FunctionLBrace);
>
> @@ -2961,6 +2964,7 @@ void UnwrappedLineParser::parseNamespace() {
> }
> }
> if (FormatTok->is(tok::l_brace)) {
> + FormatTok->setFinalizedType(TT_NamespaceLBrace);
> if (ShouldBreakBeforeBrace(Style, InitialToken))
> addUnwrappedLine();
>
> diff --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp
> index 1f29f7ab917c..0867a8585b50 100644
> --- a/clang/lib/Format/WhitespaceManager.cpp
> +++ b/clang/lib/Format/WhitespaceManager.cpp
> @@ -990,8 +990,7 @@ void WhitespaceManager::alignTrailingComments() {
> // If this comment follows an } in column 0, it probably documents the
> // closing of a namespace and we don't want to align it.
> bool FollowsRBraceInColumn0 = i > 0 && Changes[i].NewlinesBefore == 0 &&
> - Changes[i - 1].Tok->is(tok::r_brace) &&
> - Changes[i - 1].StartOfTokenColumn == 0;
> + Changes[i - 1].Tok->is(TT_NamespaceRBrace);
> bool WasAlignedWithStartOfNextLine = false;
> if (Changes[i].NewlinesBefore >= 1) { // A comment on its own line.
> unsigned CommentColumn = SourceMgr.getSpellingColumnNumber(
Actually read this only now. Basically doing the same thing.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138263/new/
https://reviews.llvm.org/D138263
More information about the cfe-commits
mailing list