#
2c422dc9 |
| 18-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move clients to use IdentifierInfo::getNameStart() instead of getName()
llvm-svn: 84436
|
#
58acf32a |
| 09-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Minor tweaks for code-completion: - Filter out unnamed declarations - Filter out declarations whose names are reserved for the implementation (e.g., __bar, _Foo) - Place OVERLOAD: or COMPLET
Minor tweaks for code-completion: - Filter out unnamed declarations - Filter out declarations whose names are reserved for the implementation (e.g., __bar, _Foo) - Place OVERLOAD: or COMPLETION: at the beginning of each code-completion result, so we can easily separate them from other compilation results.
llvm-svn: 83680
show more ...
|
#
3b08630b |
| 08-Oct-2009 |
Steve Naroff <snaroff@apple.com> |
- Fixup SortCodeCompleteResult() to properly sort keywords on Mac OS (compare was system dependent). Worked on Linux, failed on Mac OS (which caused the recently added testcase to fail on Linux). -
- Fixup SortCodeCompleteResult() to properly sort keywords on Mac OS (compare was system dependent). Worked on Linux, failed on Mac OS (which caused the recently added testcase to fail on Linux). - Sort results in testcase.
llvm-svn: 83597
show more ...
|
#
936354c6 |
| 08-Oct-2009 |
Steve Naroff <snaroff@apple.com> |
Add code completion support for ObjC property declarations/attributes.
llvm-svn: 83579
|
#
e6688e65 |
| 28-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Determinism is for wimps. <Wimper>
llvm-svn: 82962
|
#
e412a5a8 |
| 23-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
For code completion, note that injected-class-names found as part of lookup in a member access expression always start a nested-name-specifier. Additionally, rank names that start nested-name-specifi
For code completion, note that injected-class-names found as part of lookup in a member access expression always start a nested-name-specifier. Additionally, rank names that start nested-name-specifiers after other names.
llvm-svn: 82663
show more ...
|
#
f0f51985 |
| 23-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Print the results of code-completion for overloading by displaying the signature of the function with the current parameter highlighted as a placeholder.
llvm-svn: 82593
|
#
05f477c1 |
| 23-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Separate the code-completion results for call completion from the results for other, textual completion. For call completion, we now produce enough information to show the function call argument that
Separate the code-completion results for call completion from the results for other, textual completion. For call completion, we now produce enough information to show the function call argument that we are currently on.
llvm-svn: 82592
show more ...
|
#
64b12b5e |
| 22-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure we don't try to add code-completion results without an active shadow map.
llvm-svn: 82588
|
#
2b3ee156 |
| 22-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
When code-completion finds a declaration only because it is usable as the start of a nested-name-specifier, add the "::" after the nested-name-specifier to the code-completion string.
llvm-svn: 82587
|
#
5bf52697 |
| 22-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Tweak the code-completion results ranking and formation, so that members found in base classes have the same ranking as members found in derived classes. However, we will introduce an informative not
Tweak the code-completion results ranking and formation, so that members found in base classes have the same ranking as members found in derived classes. However, we will introduce an informative note for members found in base classes, showing (as a nested-name-specifier) the qualification to name the base class, to make it clear which members are from bases.
llvm-svn: 82586
show more ...
|
#
ba449039 |
| 22-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Teach code-completion to introduce a ", ..." placeholder for variadic functions
llvm-svn: 82577
|
#
e7ceb85b |
| 22-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
(With Doug's help) fix a crash in the code completion code that lead to a test failure.
llvm-svn: 82558
|
#
cabea40e |
| 22-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement code completion within a function call, triggered after the opening parentheses and after each comma. We gather the set of visible overloaded functions, perform "partial" overloading based
Implement code completion within a function call, triggered after the opening parentheses and after each comma. We gather the set of visible overloaded functions, perform "partial" overloading based on the set of arguments that we have thus far, and return the still-viable results sorted by the likelihood that they will be the best candidate.
Most of the changes in this patch are a refactoring of the overloading routines for a function call, since we needed to separate out the notion of building an overload set (common to code-completion and normal semantic analysis) and then what to do with that overload set. As part of this change, I've pushed explicit template arguments into a few more subroutines.
There is still much more work to do in this area. Function templates won't be handled well (unless we happen to deduce all of the template arguments before we hit the completion point), nor will overloaded function-call operators or calls to member functions.
llvm-svn: 82549
show more ...
|
#
9d64c5e3 |
| 21-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Code completion for ordinary names when we're starting a declaration, expression, or statement
llvm-svn: 82481
|
#
2af2f670 |
| 21-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
When providing a code-completion suggestion for a hidden name, include a nested-name-specifier that describes how to refer to that name. For example, given:
struct Base { int member; }; struct D
When providing a code-completion suggestion for a hidden name, include a nested-name-specifier that describes how to refer to that name. For example, given:
struct Base { int member; }; struct Derived : Base { int member; };
the code-completion result for a member access into "Derived" will provide both "member" to refer to Derived::member (no qualification needed) and "Base::member" to refer to Base::member (qualification included).
llvm-svn: 82476
show more ...
|
#
f2510675 |
| 21-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Enhance "case" code completion in C++ to suggest qualified names for enumerators when either the user intentionally wrote a qualified name (in which case we just use that nested-name-specifier to mat
Enhance "case" code completion in C++ to suggest qualified names for enumerators when either the user intentionally wrote a qualified name (in which case we just use that nested-name-specifier to match the user's code) or when this is the first "case" statement and we need a qualified name to refer to an enumerator in a different scope.
llvm-svn: 82474
show more ...
|
#
d328d57c |
| 21-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Code completion for "case" statements within a switch on an expression of enumeration type, providing the various unused enumerators as options.
llvm-svn: 82467
|
#
3545ff43 |
| 21-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Refactor and simplify the CodeCompleteConsumer, so that all of the real work is performed within Sema. Addresses Chris's comments, but still retains the heavyweight list-of-multimaps data structure.
Refactor and simplify the CodeCompleteConsumer, so that all of the real work is performed within Sema. Addresses Chris's comments, but still retains the heavyweight list-of-multimaps data structure.
llvm-svn: 82459
show more ...
|
#
c811ede9 |
| 18-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
C++ code completion after the "operator" keyword. Provide overloaded operators, type specifiers, type names, and nested-name-specifiers.
llvm-svn: 82264
|
#
7e90c6db |
| 18-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce four new code-completion hooks for C++:
- after "using", show anything that can be a nested-name-specifier. - after "using namespace", show any visible namespaces or namespace aliases
Introduce four new code-completion hooks for C++:
- after "using", show anything that can be a nested-name-specifier. - after "using namespace", show any visible namespaces or namespace aliases - after "namespace", show any namespace definitions in the current scope - after "namespace identifier = ", show any visible namespaces or namespace aliases
llvm-svn: 82251
show more ...
|
#
f45b0cf3 |
| 18-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement code completion for tags, e.g., code completion after "enum" will provide the names of various enumerations currently visible. Introduced filtering of code-completion results when we build
Implement code completion for tags, e.g., code completion after "enum" will provide the names of various enumerations currently visible. Introduced filtering of code-completion results when we build the result set, so that we can identify just the kinds of declarations we want.
This implementation is incomplete for C++, since we don't consider that the token after the tag keyword could start a nested-name-specifier.
llvm-svn: 82222
show more ...
|
#
2436e711 |
| 17-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Initial implementation of a code-completion interface in Clang. In essence, code completion is triggered by a magic "code completion" token produced by the lexer [*], which the parser recognizes at c
Initial implementation of a code-completion interface in Clang. In essence, code completion is triggered by a magic "code completion" token produced by the lexer [*], which the parser recognizes at certain points in the grammar. The parser then calls into the Action object with the appropriate CodeCompletionXXX action.
Sema implements the CodeCompletionXXX callbacks by performing minimal translation, then forwarding them to a CodeCompletionConsumer subclass, which uses the results of semantic analysis to provide code-completion results. At present, only a single, "printing" code completion consumer is available, for regression testing and debugging. However, the design is meant to permit other code-completion consumers.
This initial commit contains two code-completion actions: one for member access, e.g., "x." or "p->", and one for nested-name-specifiers, e.g., "std::". More code-completion actions will follow, along with improved gathering of code-completion results for the various contexts.
[*] In the current -code-completion-dump testing/debugging mode, the file is truncated at the completion point and EOF is translated into "code completion".
llvm-svn: 82166
show more ...
|