diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-07-08 23:37:41 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-07-08 23:37:41 +0000 |
commit | 45879695553e4fcf007227eba100d3b4b366d477 (patch) | |
tree | a3bb49632a452836fa5a51066a4ed5def98bc38e /clang/lib/Parse/ParseObjc.cpp | |
parent | d08fb75aaa666fad253fd269dbe53c399a35f515 (diff) | |
download | bcm5719-llvm-45879695553e4fcf007227eba100d3b4b366d477.tar.gz bcm5719-llvm-45879695553e4fcf007227eba100d3b4b366d477.zip |
Support code completion for parameter names in Objective-C method
declarations.
llvm-svn: 107933
Diffstat (limited to 'clang/lib/Parse/ParseObjc.cpp')
-rw-r--r-- | clang/lib/Parse/ParseObjc.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp index 79e432d6114..68473a551d1 100644 --- a/clang/lib/Parse/ParseObjc.cpp +++ b/clang/lib/Parse/ParseObjc.cpp @@ -856,6 +856,20 @@ Parser::DeclPtrTy Parser::ParseObjCMethodDecl(SourceLocation mLoc, if (getLang().ObjC2 && Tok.is(tok::kw___attribute)) ArgInfo.ArgAttrs = ParseGNUAttributes(); + // Code completion for the next piece of the selector. + if (Tok.is(tok::code_completion)) { + ConsumeCodeCompletionToken(); + KeyIdents.push_back(SelIdent); + Actions.CodeCompleteObjCMethodDeclSelector(getCurScope(), + mType == tok::minus, + /*AtParameterName=*/true, + ReturnType, + KeyIdents.data(), + KeyIdents.size()); + KeyIdents.pop_back(); + break; + } + if (Tok.isNot(tok::identifier)) { Diag(Tok, diag::err_expected_ident); // missing argument name. break; @@ -873,6 +887,7 @@ Parser::DeclPtrTy Parser::ParseObjCMethodDecl(SourceLocation mLoc, ConsumeCodeCompletionToken(); Actions.CodeCompleteObjCMethodDeclSelector(getCurScope(), mType == tok::minus, + /*AtParameterName=*/false, ReturnType, KeyIdents.data(), KeyIdents.size()); |