diff options
Diffstat (limited to 'clang/include/clang')
-rw-r--r-- | clang/include/clang/Parse/Action.h | 40 | ||||
-rw-r--r-- | clang/include/clang/Parse/Parser.h | 3 | ||||
-rw-r--r-- | clang/include/clang/Sema/CodeCompleteConsumer.h | 18 |
3 files changed, 54 insertions, 7 deletions
diff --git a/clang/include/clang/Parse/Action.h b/clang/include/clang/Parse/Action.h index 6ebdf079588..3d3232b6f68 100644 --- a/clang/include/clang/Parse/Action.h +++ b/clang/include/clang/Parse/Action.h @@ -2330,7 +2330,45 @@ public: /// /// \param S the scope in which the operator keyword occurs. virtual void CodeCompleteObjCPropertyFlags(Scope *S, ObjCDeclSpec &ODS) { } - + + /// \brief Code completion for the getter of an Objective-C property + /// declaration. + /// + /// This code completion action is invoked when the code-completion + /// token is found after the "getter = " in a property declaration. + /// + /// \param S the scope in which the property is being declared. + /// + /// \param ClassDecl the Objective-C class or category in which the property + /// is being defined. + /// + /// \param Methods the set of methods declared thus far within \p ClassDecl. + /// + /// \param NumMethods the number of methods in \p Methods + virtual void CodeCompleteObjCPropertyGetter(Scope *S, DeclPtrTy ClassDecl, + DeclPtrTy *Methods, + unsigned NumMethods) { + } + + /// \brief Code completion for the setter of an Objective-C property + /// declaration. + /// + /// This code completion action is invoked when the code-completion + /// token is found after the "setter = " in a property declaration. + /// + /// \param S the scope in which the property is being declared. + /// + /// \param ClassDecl the Objective-C class or category in which the property + /// is being defined. + /// + /// \param Methods the set of methods declared thus far within \p ClassDecl. + /// + /// \param NumMethods the number of methods in \p Methods + virtual void CodeCompleteObjCPropertySetter(Scope *S, DeclPtrTy ClassDecl, + DeclPtrTy *Methods, + unsigned NumMethods) { + } + /// \brief Code completion for an ObjC message expression that refers to /// a class method. /// diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index e7dabdbd5b6..f7ccccac095 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -810,7 +810,8 @@ private: DeclPtrTy ParseObjCMethodDecl(SourceLocation mLoc, tok::TokenKind mType, DeclPtrTy classDecl, tok::ObjCKeywordKind MethodImplKind = tok::objc_not_keyword); - void ParseObjCPropertyAttribute(ObjCDeclSpec &DS); + void ParseObjCPropertyAttribute(ObjCDeclSpec &DS, DeclPtrTy ClassDecl, + DeclPtrTy *Methods, unsigned NumMethods); DeclPtrTy ParseObjCMethodDefinition(); diff --git a/clang/include/clang/Sema/CodeCompleteConsumer.h b/clang/include/clang/Sema/CodeCompleteConsumer.h index 3c5428bdb9f..ed747613c38 100644 --- a/clang/include/clang/Sema/CodeCompleteConsumer.h +++ b/clang/include/clang/Sema/CodeCompleteConsumer.h @@ -270,7 +270,11 @@ public: /// \brief Whether this declaration is the beginning of a /// nested-name-specifier and, therefore, should be followed by '::'. bool StartsNestedNameSpecifier : 1; - + + /// \brief Whether all parameters (of a function, Objective-C + /// method, etc.) should be considered "informative". + bool AllParametersAreInformative : 1; + /// \brief If the result should have a nested-name-specifier, this is it. /// When \c QualifierIsInformative, the nested-name-specifier is /// informative rather than required. @@ -283,25 +287,29 @@ public: : Kind(RK_Declaration), Declaration(Declaration), Rank(Rank), StartParameter(0), Hidden(false), QualifierIsInformative(QualifierIsInformative), - StartsNestedNameSpecifier(false), Qualifier(Qualifier) { } + StartsNestedNameSpecifier(false), AllParametersAreInformative(false), + Qualifier(Qualifier) { } /// \brief Build a result that refers to a keyword or symbol. Result(const char *Keyword, unsigned Rank) : Kind(RK_Keyword), Keyword(Keyword), Rank(Rank), StartParameter(0), Hidden(false), QualifierIsInformative(0), - StartsNestedNameSpecifier(false), Qualifier(0) { } + StartsNestedNameSpecifier(false), AllParametersAreInformative(false), + Qualifier(0) { } /// \brief Build a result that refers to a macro. Result(IdentifierInfo *Macro, unsigned Rank) : Kind(RK_Macro), Macro(Macro), Rank(Rank), StartParameter(0), Hidden(false), QualifierIsInformative(0), - StartsNestedNameSpecifier(false), Qualifier(0) { } + StartsNestedNameSpecifier(false), AllParametersAreInformative(false), + Qualifier(0) { } /// \brief Build a result that refers to a pattern. Result(CodeCompletionString *Pattern, unsigned Rank) : Kind(RK_Pattern), Pattern(Pattern), Rank(Rank), StartParameter(0), Hidden(false), QualifierIsInformative(0), - StartsNestedNameSpecifier(false), Qualifier(0) { } + StartsNestedNameSpecifier(false), AllParametersAreInformative(false), + Qualifier(0) { } /// \brief Retrieve the declaration stored in this result. NamedDecl *getDeclaration() const { |