diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-08-26 16:46:39 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-08-26 16:46:39 +0000 |
| commit | 9ac1ad141b9f81d7d618783a6f353c6c755343a3 (patch) | |
| tree | 090fb72092fd491254fe9e36982cf629467edc2c /clang/lib/Sema/SemaCodeComplete.cpp | |
| parent | 9be0ed4f3f79af3795368b5a4fd9ad6eb37292a4 (diff) | |
| download | bcm5719-llvm-9ac1ad141b9f81d7d618783a6f353c6c755343a3.tar.gz bcm5719-llvm-9ac1ad141b9f81d7d618783a6f353c6c755343a3.zip | |
Tweak the @selector completion to collapse multiple informative and
typed-text blocks into one of each.
llvm-svn: 112194
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 392152630d5..4c06fac0128 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -4064,16 +4064,19 @@ void Sema::CodeCompleteObjCSelector(Scope *S, IdentifierInfo **SelIdents, continue; } + std::string Accumulator; for (unsigned I = 0, N = Sel.getNumArgs(); I != N; ++I) { - std::string Piece = Sel.getIdentifierInfoForSlot(I)->getName().str(); - Piece += ':'; - if (I < NumSelIdents) - Pattern->AddInformativeChunk(Piece); - else if (I == NumSelIdents) - Pattern->AddTypedTextChunk(Piece); - else - Pattern->AddTextChunk(Piece); + if (I == NumSelIdents) { + if (!Accumulator.empty()) { + Pattern->AddInformativeChunk(Accumulator); + Accumulator.clear(); + } + } + + Accumulator += Sel.getIdentifierInfoForSlot(I)->getName().str(); + Accumulator += ':'; } + Pattern->AddTypedTextChunk(Accumulator); Results.AddResult(Pattern); } Results.ExitScope(); |

