[PATCH] D78982: [clang-format] Fix Microsoft style for enums
MyDeveloperDay via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 28 02:39:09 PDT 2020
MyDeveloperDay added inline comments.
================
Comment at: clang/lib/Format/Format.cpp:1143
Style.PenaltyReturnTypeOnItsOwnLine = 1000;
+ Style.AllowEnumsOnASingleLine = false;
Style.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_None;
----------------
You'll need to fix up the C# tests
```
C:/llvm-project/clang/unittests/Format/FormatTestCSharp.cpp(48): error: Expected: Code.str()
Which is: "public enum var { none, @string, bool, @enum }"
To be equal to: format(Code, Style)
Which is: "public enum var\n{\n none,\n @string,\n bool,\n @enum\n}"
With diff:
@@ -1,1 +1,7 @@
-public enum var { none, @string, bool, @enum }
+public enum var
+{
+ none,
+ @string,
+ bool,
+ @enum
+}
```
I think that is ok as most of the documentation seems to show them not on a single line
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/enum
================
Comment at: clang/lib/Format/UnwrappedLineParser.cpp:1768
+ if (!Style.AllowEnumsOnASingleLine)
+ addUnwrappedLine();
nextToken();
----------------
see below, I think you need to know this braced Initialization is part of a enum
================
Comment at: clang/lib/Format/UnwrappedLineParser.cpp:1829
+ addUnwrappedLine();
break;
default:
----------------
I'm wondering if this is going to impact other braced constructs?
```
void main()
{
std::vector<int> list = { 1,2,3};
}
```
becomes
```
void main() {
std::vector<int> list = {1,
2,
3
};
}
```
================
Comment at: clang/lib/Format/UnwrappedLineParser.cpp:2295
+ }
bool HasError = !parseBracedList(/*ContinueOnSemicolons=*/true);
+ if (!Style.AllowEnumsOnASingleLine)
----------------
I think you are going to have to pass down that this BracedList is for a enum only
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78982/new/
https://reviews.llvm.org/D78982
More information about the cfe-commits
mailing list