summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCodeComplete.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement code completion for @selector expressionsDouglas Gregor2010-08-261-11/+70
| | | | llvm-svn: 112186
* Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-261-2/+0
| | | | | | | | | | | into the clients, e.g., the printing code-completion consumer and c-index-test. Clients may want to re-sort the results anyway. Provide a libclang function that sorts the results. 3rd try. How embarrassing. llvm-svn: 112180
* Revert r112149, "Move the sorting of code-completion results out of the mainDaniel Dunbar2010-08-261-0/+2
| | | | | | path and ...", it is failing tests. llvm-svn: 112161
* Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-261-2/+0
| | | | | | | | | into the clients, e.g., the printing code-completion consumer and c-index-test. Clients may want to re-sort the results anyway. Provide a libclang function that sorts the results. llvm-svn: 112149
* Revert "Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-261-0/+2
| | | | | | | into the clients", because the C standard library sucks. Where's my stable sort, huh? llvm-svn: 112121
* Move the sorting of code-completion results out of the main path andDouglas Gregor2010-08-251-2/+0
| | | | | | | into the clients, e.g., the printing code-completion consumer and c-index-test. Clients may want to re-sort the results anyway. llvm-svn: 112095
* Split out a header to hold APIs meant for the Sema implementation from Sema.h.John McCall2010-08-251-1/+1
| | | | | | | Clients of Sema don't need to know (for example) the list of diagnostics we support. llvm-svn: 112093
* When combining the code-completion results from Sema long with theDouglas Gregor2010-08-251-64/+2
| | | | | | | | code-completion results cached by ASTUnit, sort the resulting result set. This makes testing far, far easier, so this commit also includes tests for the previous few fixes. llvm-svn: 112070
* Add a code-completion context for "natural language" completions, soDouglas Gregor2010-08-251-2/+1
| | | | | | that ASTUnit knows not to try to provide completions there. llvm-svn: 112057
* Introduce a preprocessor code-completion hook for contexts where weDouglas Gregor2010-08-251-0/+7
| | | | | | | expect "natural" language and should not provide any completions, e.g., comments, string literals, #error. llvm-svn: 112054
* Split FunctionScopeInfo and BlockScopeInfo into their own header.John McCall2010-08-251-3/+5
| | | | llvm-svn: 112038
* Teach Sema to live without CodeCompleteConsumer.h.John McCall2010-08-251-53/+53
| | | | llvm-svn: 112028
* When performing completions involving Objective-C method declarationsDouglas Gregor2010-08-251-17/+32
| | | | | | | (e.g., for message sends or method declaration/definition completions), adjust methods that come from a base class. llvm-svn: 112013
* Give a slight preference to functions returning "void" when we'reDouglas Gregor2010-08-241-4/+13
| | | | | | | performing code completion at the statement level (rather than in an arbitrary expression). llvm-svn: 112001
* Implement code completion for preprocessor expressions and in macroDouglas Gregor2010-08-241-4/+39
| | | | | | arguments. llvm-svn: 111976
* Move some of SemaOverload's API to various places in Overload.h, and killJohn McCall2010-08-241-1/+2
| | | | | | some of it off completely. llvm-svn: 111957
* Implement preprocessor code completion where a macro name is expected,Douglas Gregor2010-08-241-0/+24
| | | | | | | e.g., after #ifdef/#ifndef or #undef, or inside a defined <macroname> expression in a preprocessor conditional. llvm-svn: 111954
* Introduce basic code-completion support for preprocessor directives,Douglas Gregor2010-08-241-0/+180
| | | | | | e.g., after a "#" we'll suggest #if, #ifdef, etc. llvm-svn: 111943
* When providing completions for a function or method argument thatDouglas Gregor2010-08-241-11/+108
| | | | | | | corresponds to a block pointer, provide the skeleton of a block literal. llvm-svn: 111918
* More header elimination. The goal of all this is to allow Parser toJohn McCall2010-08-241-0/+1
| | | | | | | #include Sema.h while keeping all the AST declarations opaque. That may not be reasonably attainable, though. llvm-svn: 111907
* Struggle mightily against header inclusion in Sema.h.John McCall2010-08-241-0/+1
| | | | llvm-svn: 111904
* OwningExprResult -> ExprResult. This patch brought to you byJohn McCall2010-08-241-2/+2
| | | | | | | M-x query-replace-regexp \(Sema::\|Action::\|Parser::\|\)Owning\(Expr\|Stmt\)Result -> \2Result llvm-svn: 111903
* Abstract out passing around types and kill off ActionBase.John McCall2010-08-241-5/+5
| | | | llvm-svn: 111901
* State explicitly that we are intentionally not providing macro completions ↵Douglas Gregor2010-08-241-0/+3
| | | | | | for declarator name completions llvm-svn: 111898
* Consistently switch on PCC_TypeDouglas Gregor2010-08-241-17/+22
| | | | llvm-svn: 111888
* Provide code completion results for the context-sensitive Objective-CDouglas Gregor2010-08-241-2/+55
| | | | | | keywords "in", "out", "inout", "byref", "bycopy", and "oneway". llvm-svn: 111884
* When calling a function or messaging a method marked "sentinel", addDouglas Gregor2010-08-231-1/+20
| | | | | | | the ", nil", ", NULL", or ", (void*)0" to the end of the code completion, since it always has to be there anyway. llvm-svn: 111867
* Include __FUNCTION__, __PRETTY_FUNCTION_, __func__ in code-completionDouglas Gregor2010-08-231-0/+38
| | | | | | results for expression contexts within a function. llvm-svn: 111851
* Introduce a code-completion hook for the Objective-C collectionDouglas Gregor2010-08-231-10/+68
| | | | | | | | argument in a for-each statement (e.g., "for (id x in <blah>)"), which restricts the expression completions provided to Objective-C types (or class types in C++). llvm-svn: 111843
* Don't include macro results when we're completing a declarator.Douglas Gregor2010-08-231-4/+0
| | | | llvm-svn: 111830
* Introduce a new code-completion point when we're parsing aDouglas Gregor2010-08-231-1/+40
| | | | | | | | | declarator. Here, we can only see a few things (e.g., cvr-qualifiers, nested name specifiers) and we do not want to provide other non-macro completions. Previously, we would end up in recovery mode and would provide a large number of non-relevant completions. llvm-svn: 111818
* DeclPtrTy -> Decl *John McCall2010-08-211-20/+19
| | | | llvm-svn: 111733
* More PCH -> AST renaming.Sebastian Redl2010-08-181-3/+3
| | | | llvm-svn: 111472
* zap a big dead method.Chris Lattner2010-08-181-51/+0
| | | | llvm-svn: 111346
* When generating code completion patterns for method declarations, giveDouglas Gregor2010-08-171-1/+4
| | | | | | | the resulting pattern the appropriate cursor kind of an instance or class method declaration. llvm-svn: 111237
* 1 != I. Fix the formulation of code-completion patterns forDouglas Gregor2010-08-171-1/+1
| | | | | | Objective-C method declarations with > 2 parameters. llvm-svn: 111233
* Implement support for cached code completions forDouglas Gregor2010-08-161-5/+7
| | | | | | | | | | nested-name-specifiers. Also includes fixes to the generation of nested-name-specifier result in the non-cached case; we were producing lame results for namespaces and namespace aliases, which (1) didn't always have nested-name-specifiers when we want them, and (2) did not have the necessary "::" as part of the completion. llvm-svn: 111203
* When caching global completion results, keep track of the simplifiedDouglas Gregor2010-08-161-25/+20
| | | | | | | | | | | type class, so that we can adjust priorities appropriately when the preferred type for the context and the actual type of the completion are similar. This gets us one step closer to parity of the cached completion results with the non-cached completion results. llvm-svn: 111139
* Extend the code-completion caching infrastructure to include globalDouglas Gregor2010-08-151-23/+34
| | | | | | | | | | | | | | | | | | declarations (in addition to macros). Each kind of declaration maps to a certain set of completion contexts, and the ASTUnit completion logic introduces the completion strings for those declarations if the actual code-completion occurs in one of the contexts where it matters. There are a few new code-completion-context kinds. Without these, certain completions (e.g., after "using namespace") would need to suppress all global completions, which would be unfortunate. Note that we don't get the priorities right for global completions, because we don't have enough type information. We'll need a way to compare types in an ASTContext-agnostic way before this can be implemented. llvm-svn: 111093
* Implement caching of code-completion results for macro definitionsDouglas Gregor2010-08-131-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | when the CXTranslationUnit_CacheCompletionResults option is given to clang_parseTranslationUnit(). Essentially, we compute code-completion results for macro definitions after we have parsed the file, then store an ASTContext-agnostic version of those results (completion string, cursor kind, priority, and active contexts) in the ASTUnit. When performing code completion in that ASTUnit, we splice the macro definition results into the results provided by the actual code-completion (which has had macros turned off) before libclang gets those results. We use completion context information to only splice in those results that make sense for that context. With a completion involving all of the macros from Cocoa.h and a few other system libraries (totally ~8500 macro definitions) living in a precompiled header, we get about a 9% performance improvement from code completion, since we no longer have to deserialize all of the macro definitions from the precompiled header. Note that macro definitions are merely the canary; the cache is designed to also support other top-level declarations, which should be a bigger performance win. That optimization will be next. Note also that there is no mechanism for determining when to throw away the cache and recompute its contents. llvm-svn: 111051
* Move Sema's headers into include/clang/Sema, renaming a few along the way.Douglas Gregor2010-08-121-2/+2
| | | | llvm-svn: 110945
* Once code completion has completed, pass a "completion context" on toDouglas Gregor2010-08-111-97/+204
| | | | | | | the code-completion consumer. The consumer can use this information to augument, filter, or display the code-completion results. llvm-svn: 110858
* Speculatively revert r110610 " Make ObjCInterfaceDecl redeclarable,Douglas Gregor2010-08-111-17/+9
| | | | | | | | and create separate decl nodes for forward declarations and the definition," which appears to be causing significant Objective-C breakage. llvm-svn: 110803
* - Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for ↵Sebastian Redl2010-08-091-9/+17
| | | | | | | | | | forward declarations and the definition. - Eagerly create ObjCInterfaceTypes for declarations. - The two above changes lead to a 0.5% increase in memory use and no speed regression when parsing Cocoa.h. On the other hand, now chained PCH works when there's a forward declaration in one PCH and the interface definition in another. - Add HandleInterestingDecl to ASTConsumer. PCHReader passes the "interesting" decls it finds to this function instead of HandleTopLevelDecl. The default implementation forwards to HandleTopLevelDecl, but ASTUnit's handler for example ignores them. This fixes a potential crash when lazy loading of PCH data would cause ASTUnit's "top level" declaration collection to change while being iterated. llvm-svn: 110610
* Add code-completion support directly to ASTUnit, which performs codeDouglas Gregor2010-08-041-3/+5
| | | | | | | | | | | | | | completion within the translation unit using the same command-line arguments for parsing the translation unit. Eventually, we'll reuse the precompiled preamble to improve code-completion performance, and this also gives us a place to cache results. Expose this function via the new libclang function clang_codeCompleteAt(), which performs the code completion within a CXTranslationUnit. The completion occurs in-process (clang_codeCompletion() runs code completion out-of-process). llvm-svn: 110210
* Simplify global method pool implementation in Sema. No functionality change.Sebastian Redl2010-08-021-31/+24
| | | | llvm-svn: 110078
* When performing code completion for a case statement in a switch whoseDouglas Gregor2010-07-281-3/+23
| | | | | | | condition is not of enumeration type, provide code-completion results containing all values of integral or enumeral type. llvm-svn: 109677
* Only filter out names reserved for the implementation (e.g., __blah orDouglas Gregor2010-07-141-2/+5
| | | | | | | _Foo) from code-completion results when they come from a system header. llvm-svn: 108338
* When forming a function call or message send expression, be sure toDouglas Gregor2010-07-131-3/+3
| | | | | | | | | | | | | | | | | strip cv-qualifiers from the expression's type when the language calls for it: in C, that's all the time, while C++ only does it for non-class types. Centralized the computation of the call expression type in QualType::getCallResultType() and some helper functions in other nodes (FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant callers of getResultType() to getCallResultType(). Fixes PR7598 and PR7463, along with a bunch of getResultType() call sites that weren't stripping references off the result type (nothing stripped cv-qualifiers properly before this change). llvm-svn: 108234
* Support code completion for parameter names in Objective-C methodDouglas Gregor2010-07-081-0/+15
| | | | | | declarations. llvm-svn: 107933
OpenPOWER on IntegriCloud