r200320 - clang-format: Add support for a space after @property
Nico Weber
thakis at chromium.org
Tue Jan 28 09:06:09 PST 2014
It should probably default to true in llvm too, given that that's what the
official property documentation (
https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html)
uses. (Not that there's much ObjC code in llvm.)
On Tue, Jan 28, 2014 at 7:20 AM, Daniel Jasper <djasper at google.com> wrote:
> Author: djasper
> Date: Tue Jan 28 09:20:33 2014
> New Revision: 200320
>
> URL: http://llvm.org/viewvc/llvm-project?rev=200320&view=rev
> Log:
> clang-format: Add support for a space after @property
>
> Mozilla and WebKit seem to use a space after @property (verified by
> grepping their codebases) so we turn this on there as well.
>
> Change by Christian Legnitto. Thank you!
>
> Modified:
> cfe/trunk/include/clang/Format/Format.h
> cfe/trunk/lib/Format/Format.cpp
> cfe/trunk/lib/Format/TokenAnnotator.cpp
> cfe/trunk/unittests/Format/FormatTest.cpp
>
> Modified: cfe/trunk/include/clang/Format/Format.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Format/Format.h?rev=200320&r1=200319&r2=200320&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Format/Format.h (original)
> +++ cfe/trunk/include/clang/Format/Format.h Tue Jan 28 09:20:33 2014
> @@ -163,6 +163,10 @@ struct FormatStyle {
> /// line.
> bool AllowShortFunctionsOnASingleLine;
>
> + /// \brief Add a space after \c @property in Objective-C, i.e. use
> + /// <tt>@property (readonly)</tt> instead of
> <tt>@property(readonly)</tt>.
> + bool ObjCSpaceAfterProperty;
> +
> /// \brief Add a space in front of an Objective-C protocol list, i.e.
> use
> /// <tt>Foo <Protocol></tt> instead of \c Foo<Protocol>.
> bool ObjCSpaceBeforeProtocolList;
> @@ -329,6 +333,7 @@ struct FormatStyle {
> IndentWidth == R.IndentWidth && Language == R.Language &&
> MaxEmptyLinesToKeep == R.MaxEmptyLinesToKeep &&
> NamespaceIndentation == R.NamespaceIndentation &&
> + ObjCSpaceAfterProperty == R.ObjCSpaceAfterProperty &&
> ObjCSpaceBeforeProtocolList == R.ObjCSpaceBeforeProtocolList &&
> PenaltyBreakComment == R.PenaltyBreakComment &&
> PenaltyBreakFirstLessLess == R.PenaltyBreakFirstLessLess &&
>
> Modified: cfe/trunk/lib/Format/Format.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=200320&r1=200319&r2=200320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Format/Format.cpp (original)
> +++ cfe/trunk/lib/Format/Format.cpp Tue Jan 28 09:20:33 2014
> @@ -164,6 +164,7 @@ template <> struct MappingTraits<FormatS
> IO.mapOptional("IndentCaseLabels", Style.IndentCaseLabels);
> IO.mapOptional("MaxEmptyLinesToKeep", Style.MaxEmptyLinesToKeep);
> IO.mapOptional("NamespaceIndentation", Style.NamespaceIndentation);
> + IO.mapOptional("ObjCSpaceAfterProperty",
> Style.ObjCSpaceAfterProperty);
> IO.mapOptional("ObjCSpaceBeforeProtocolList",
> Style.ObjCSpaceBeforeProtocolList);
> IO.mapOptional("PenaltyBreakBeforeFirstCallParameter",
> @@ -267,6 +268,7 @@ FormatStyle getLLVMStyle() {
> LLVMStyle.TabWidth = 8;
> LLVMStyle.MaxEmptyLinesToKeep = 1;
> LLVMStyle.NamespaceIndentation = FormatStyle::NI_None;
> + LLVMStyle.ObjCSpaceAfterProperty = false;
> LLVMStyle.ObjCSpaceBeforeProtocolList = true;
> LLVMStyle.PointerBindsToType = false;
> LLVMStyle.SpacesBeforeTrailingComments = 1;
> @@ -305,6 +307,7 @@ FormatStyle getGoogleStyle() {
> GoogleStyle.DerivePointerBinding = true;
> GoogleStyle.IndentCaseLabels = true;
> GoogleStyle.IndentFunctionDeclarationAfterType = true;
> + GoogleStyle.ObjCSpaceAfterProperty = false;
> GoogleStyle.ObjCSpaceBeforeProtocolList = false;
> GoogleStyle.PointerBindsToType = true;
> GoogleStyle.SpacesBeforeTrailingComments = 2;
> @@ -349,6 +352,7 @@ FormatStyle getMozillaStyle() {
> MozillaStyle.ConstructorInitializerAllOnOneLineOrOnePerLine = true;
> MozillaStyle.DerivePointerBinding = true;
> MozillaStyle.IndentCaseLabels = true;
> + MozillaStyle.ObjCSpaceAfterProperty = true;
> MozillaStyle.ObjCSpaceBeforeProtocolList = false;
> MozillaStyle.PenaltyReturnTypeOnItsOwnLine = 200;
> MozillaStyle.PointerBindsToType = true;
> @@ -365,6 +369,7 @@ FormatStyle getWebKitStyle() {
> Style.ColumnLimit = 0;
> Style.IndentWidth = 4;
> Style.NamespaceIndentation = FormatStyle::NI_Inner;
> + Style.ObjCSpaceAfterProperty = true;
> Style.PointerBindsToType = true;
> return Style;
> }
>
> Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=200320&r1=200319&r2=200320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Tue Jan 28 09:20:33 2014
> @@ -1260,6 +1260,9 @@ bool TokenAnnotator::spaceRequiredBetwee
> (Left.TokenText == "returns" || Left.TokenText == "option"))
> return true;
> }
> + if (Style.ObjCSpaceAfterProperty && Line.Type == LT_ObjCProperty &&
> + Left.Tok.getObjCKeywordID() == tok::objc_property)
> + return true;
> if (Right.is(tok::hashhash))
> return Left.is(tok::hash);
> if (Left.isOneOf(tok::hashhash, tok::hash))
>
> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=200320&r1=200319&r2=200320&view=diff
>
> ==============================================================================
> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
> +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue Jan 28 09:20:33 2014
> @@ -5872,6 +5872,12 @@ TEST_F(FormatTest, ObjCSnippets) {
> verifyFormat("@property(assign, nonatomic) CGFloat hoverAlpha;");
> verifyFormat("@property(assign, getter=isEditable) BOOL editable;");
> verifyGoogleFormat("@property(assign, getter=isEditable) BOOL
> editable;");
> + verifyFormat("@property (assign, getter=isEditable) BOOL editable;",
> + getMozillaStyle());
> + verifyFormat("@property BOOL editable;", getMozillaStyle());
> + verifyFormat("@property (assign, getter=isEditable) BOOL editable;",
> + getWebKitStyle());
> + verifyFormat("@property BOOL editable;", getWebKitStyle());
>
> verifyFormat("@import foo.bar;\n"
> "@import baz;");
> @@ -7323,6 +7329,7 @@ TEST_F(FormatTest, ParsesConfiguration)
> CHECK_PARSE_BOOL(ConstructorInitializerAllOnOneLineOrOnePerLine);
> CHECK_PARSE_BOOL(DerivePointerBinding);
> CHECK_PARSE_BOOL(IndentCaseLabels);
> + CHECK_PARSE_BOOL(ObjCSpaceAfterProperty);
> CHECK_PARSE_BOOL(ObjCSpaceBeforeProtocolList);
> CHECK_PARSE_BOOL(PointerBindsToType);
> CHECK_PARSE_BOOL(Cpp11BracedListStyle);
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140128/d14ce73a/attachment.html>
More information about the cfe-commits
mailing list