Formatter: Put spaces in ObjC method decls in the right place for Google style.
authorNico Weber <nicolasweber@gmx.de>
Thu, 10 Jan 2013 23:11:41 +0000 (23:11 +0000)
committerNico Weber <nicolasweber@gmx.de>
Thu, 10 Jan 2013 23:11:41 +0000 (23:11 +0000)
commit9efe291fa874cda376d60aef47373e83b3a862f1
treee66e6763bf8a3c8d34058c8d63e23318b946a0eb
parente46e8225f4c1bf172fa1d89a72ffe02607d1efe7
Formatter: Put spaces in ObjC method decls in the right place for Google style.

Objective-C method declarations look like this:

- (returntype)name:(type)argname anothername:(type)arg2name;

In google style, there's no space after the leading '-' but one after
"(returntype)" instead (but none after the argument types), see
http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml#Method_Declarations_and_Definitions

Not inserting the space after '-' is easy, but to insert the space after the
return type, the formatter needs to know that a closing parenthesis ends the
return type. To do this, I tweaked the code in parse() to check for this, which
in turn required moving detection of TT_ObjCMethodSpecifier from annotate() to
parse(), because parse() runs before annotate().

(To keep things interesting, the return type is optional, but it's almost
always there in practice.)

http://llvm-reviews.chandlerc.com/D280

llvm-svn: 172140
clang/include/clang/Format/Format.h
clang/lib/Format/Format.cpp
clang/unittests/Format/FormatTest.cpp