[PATCH] D45521: [clang-format] Improve ObjC guessing heuristic by supporting all @keywords
Ben Hamilton via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 12 08:15:18 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL329918: [clang-format] Improve ObjC guessing heuristic by supporting all @keywords (authored by benhamilton, committed by ).
Herald added a subscriber: llvm-commits.
Repository:
rL LLVM
https://reviews.llvm.org/D45521
Files:
cfe/trunk/lib/Format/Format.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Index: cfe/trunk/lib/Format/Format.cpp
===================================================================
--- cfe/trunk/lib/Format/Format.cpp
+++ cfe/trunk/lib/Format/Format.cpp
@@ -1465,6 +1465,7 @@
"NSAffineTransform",
"NSArray",
"NSAttributedString",
+ "NSBlockOperation",
"NSBundle",
"NSCache",
"NSCalendar",
@@ -1480,6 +1481,7 @@
"NSIndexPath",
"NSIndexSet",
"NSInteger",
+ "NSInvocationOperation",
"NSLocale",
"NSMapTable",
"NSMutableArray",
@@ -1494,9 +1496,13 @@
"NSNumber",
"NSNumberFormatter",
"NSObject",
+ "NSOperation",
+ "NSOperationQueue",
+ "NSOperationQueuePriority",
"NSOrderedSet",
"NSPoint",
"NSPointerArray",
+ "NSQualityOfService",
"NSRange",
"NSRect",
"NSRegularExpression",
@@ -1518,10 +1524,7 @@
for (const FormatToken *FormatTok = Line->First; FormatTok;
FormatTok = FormatTok->Next) {
if ((FormatTok->Previous && FormatTok->Previous->is(tok::at) &&
- (FormatTok->isObjCAtKeyword(tok::objc_interface) ||
- FormatTok->isObjCAtKeyword(tok::objc_implementation) ||
- FormatTok->isObjCAtKeyword(tok::objc_protocol) ||
- FormatTok->isObjCAtKeyword(tok::objc_end) ||
+ (FormatTok->Tok.getObjCKeywordID() != tok::objc_not_keyword ||
FormatTok->isOneOf(tok::numeric_constant, tok::l_square,
tok::l_brace))) ||
(FormatTok->Tok.isAnyIdentifier() &&
Index: cfe/trunk/unittests/Format/FormatTest.cpp
===================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp
+++ cfe/trunk/unittests/Format/FormatTest.cpp
@@ -12118,6 +12118,12 @@
EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo.mm", ""));
EXPECT_EQ(FormatStyle::LK_Cpp, guessLanguage("foo.h", ""));
EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo.h", "@interface Foo\n at end\n"));
+ EXPECT_EQ(
+ FormatStyle::LK_ObjC,
+ guessLanguage("foo.h", "#define TRY(x, y) @try { x; } @finally { y; }"));
+ EXPECT_EQ(FormatStyle::LK_ObjC,
+ guessLanguage("foo.h", "#define AVAIL(x) @available(x, *))"));
+ EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo.h", "@class Foo;"));
EXPECT_EQ(FormatStyle::LK_Cpp, guessLanguage("foo", ""));
EXPECT_EQ(FormatStyle::LK_ObjC, guessLanguage("foo", "@interface Foo\n at end\n"));
EXPECT_EQ(FormatStyle::LK_ObjC,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45521.142189.patch
Type: text/x-patch
Size: 2588 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180412/e852f93a/attachment.bin>
More information about the cfe-commits
mailing list