summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-07-08 23:37:41 +0000
committerDouglas Gregor <dgregor@apple.com>2010-07-08 23:37:41 +0000
commit45879695553e4fcf007227eba100d3b4b366d477 (patch)
treea3bb49632a452836fa5a51066a4ed5def98bc38e /clang/lib/Parse/ParseObjc.cpp
parentd08fb75aaa666fad253fd269dbe53c399a35f515 (diff)
downloadbcm5719-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.cpp15
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());
OpenPOWER on IntegriCloud