[clang] [clang-format] add option to control bin-packing keyworded parameters (PR #131605)
Björn Schäpers via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 31 12:00:45 PDT 2025
================
@@ -3926,6 +3926,39 @@ TEST_F(TokenAnnotatorTest, UserDefinedConversionFunction) {
EXPECT_TOKEN(Tokens[5], tok::l_paren, TT_FunctionDeclarationLParen);
}
+TEST_F(TokenAnnotatorTest, KeywordedFunctionLikeMacro) {
+ auto Style = getLLVMStyle();
+ FormatStyle::KeywordedFunctionLikeMacro QPropertyDeclaration;
+ QPropertyDeclaration.Name = "Q_PROPERTY";
+ QPropertyDeclaration.Keywords.push_back("READ");
+ QPropertyDeclaration.Keywords.push_back("WRITE");
+ QPropertyDeclaration.Keywords.push_back("NOTIFY");
+ QPropertyDeclaration.Keywords.push_back("RESET");
+ Style.KeywordedFunctionLikeMacros.push_back(QPropertyDeclaration);
+
+ auto Tokens = annotate(
+ "Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)",
+ Style);
+ ASSERT_EQ(Tokens.size(), 12u) << Tokens;
+ EXPECT_TOKEN(Tokens[0], tok::identifier, TT_Unknown);
+ EXPECT_TOKEN(Tokens[4], tok::identifier, TT_FunctionParameterKeyword);
+ EXPECT_TOKEN(Tokens[5], tok::identifier, TT_StartOfName);
+ EXPECT_TOKEN(Tokens[6], tok::identifier, TT_FunctionParameterKeyword);
+ EXPECT_TOKEN(Tokens[7], tok::identifier, TT_StartOfName);
+ EXPECT_TOKEN(Tokens[8], tok::identifier, TT_FunctionParameterKeyword);
+ EXPECT_TOKEN(Tokens[9], tok::identifier, TT_StartOfName);
+
+ Tokens = annotate(
+ "struct S { Q_OBJECT\n Q_PROPERTY(int value READ value WRITE setValue "
+ "NOTIFY valueChanged)\n };",
----------------
HazardyKnusperkeks wrote:
```suggestion
"struct S { Q_OBJECT\n"
"Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)\n"
"};",
```
https://github.com/llvm/llvm-project/pull/131605
More information about the cfe-commits
mailing list