https://github.com/zeule updated
https://github.com/llvm/llvm-project/pull/131605
>From 3cffb6a3c8a4bda050b56900d0333aed1cbe0216 Mon Sep 17 00:00:00 2001
From: Eugene Shalygin
Date: Mon, 17 Mar 2025 11:23:35 +0100
Subject: [PATCH 1/2] [clang-format] add option to bin-pack keyworded
parameters
https://github.com/HazardyKnusperkeks requested changes to this pull request.
You need to add a parsing test for your option and annotation tests for the
annotation.
https://github.com/llvm/llvm-project/pull/131605
___
cfe-commits mailing list
cfe-com
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
+const FormatToken *Previous = &Token;
+while (auto Prev = Previous->getPrevious
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
+const FormatToken *Previous = &Token;
+while (auto Prev = Previous->getPrevious
https://github.com/HazardyKnusperkeks edited
https://github.com/llvm/llvm-project/pull/131605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -82,6 +82,7 @@ namespace format {
TYPE(FunctionAnnotationRParen)
\
TYPE(FunctionDeclarationName)
\
TYPE(FunctionDeclarationLParen)
@@ -1192,6 +1201,8 @@ template <> struct MappingTraits {
Style.WhitespaceSensitiveMacros);
IO.mapOptional("WrapNamespaceBodyWithEmptyLines",
Style.WrapNamespaceBodyWithEmptyLines);
+IO.mapOptional("FunctionDeclarationsWithKeywords",
@@ -5247,6 +5247,41 @@ struct FormatStyle {
/// \version 20
WrapNamespaceBodyWithEmptyLinesStyle WrapNamespaceBodyWithEmptyLines;
+ struct FunctionDeclarationWithKeywords {
+std::string Name;
+std::vector Keywords;
+
+bool operator==(const FunctionDeclarationW
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
+const FormatToken *Previous = &Token;
+while (auto Prev = Previous->getPrevious
@@ -349,6 +349,10 @@ bool ContinuationIndenter::canBreak(const LineState
&State) {
}
}
+ // Don't break between function parameter keywords and parameter names
HazardyKnusperkeks wrote:
```suggestion
// Don't break between function parameter keyword
@@ -116,6 +116,18 @@ static bool isCppAttribute(bool IsCpp, const FormatToken
&Tok) {
return AttrTok && AttrTok->startsSequence(tok::r_square, tok::r_square);
}
+static bool isParametersKeyword(
+const FormatToken &Tok,
+const FormatStyle::FunctionDeclarationWithKey
@@ -5435,7 +5470,10 @@ struct FormatStyle {
VerilogBreakBetweenInstancePorts ==
R.VerilogBreakBetweenInstancePorts &&
WhitespaceSensitiveMacros == R.WhitespaceSensitiveMacros &&
- WrapNamespaceBodyWithEmptyLines ==
R.WrapNamespace
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
+const FormatToken *Previous = &Token;
+while (auto Prev = Previous->getPrevious
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
+const FormatToken *Previous = &Token;
+while (auto Prev = Previous->getPrevious
@@ -148,6 +160,24 @@ class AnnotatingParser {
}
}
+ const FormatStyle::FunctionDeclarationWithKeywords *
+ isInsideFunctionWithKeywordedParameters(const FormatToken &Token) const {
HazardyKnusperkeks wrote:
The name is misleading, I'd expect a `bool`e
github-actions[bot] wrote:
:warning: C/C++ code formatter, clang-format found issues in your code.
:warning:
You can test this locally with the following command:
``bash
git-clang-format --diff 17b4be8f63a9a2c17290c8540d84f17a370b1915
3cffb6a3c8a4bda050b56900d0333aed1cbe0216 --e
llvmbot wrote:
@llvm/pr-subscribers-clang-format
Author: Eugene Shalygin (zeule)
Changes
The Q_PROPERTY declaration is almost like a function declaration, but uses
keywords as parameter separators. This allows users to provide list of those
keywords to be used to control bin-packing of t
github-actions[bot] wrote:
Thank you for submitting a Pull Request (PR) to the LLVM Project!
This PR will be automatically labeled and the relevant teams will be notified.
If you wish to, you can add reviewers by using the "Reviewers" section on this
page.
If this is not working for you, it
https://github.com/zeule created
https://github.com/llvm/llvm-project/pull/131605
The Q_PROPERTY declaration is almost like a function declaration, but uses
keywords as parameter separators. This allows users to provide list of those
keywords to be used to control bin-packing of the macro para
19 matches
Mail list logo