From 30977fc3a97b6172431749402ed4ed0b565d902c Mon Sep 17 00:00:00 2001 From: Ilya Biryukov Date: Tue, 4 Jun 2019 09:26:08 +0000 Subject: [PATCH] [CodeComplete] Include more text into typed chunks of pattern completions Summary: To allow filtering on any of the words in the editors. In particular, the following completions were changed: - 'using namespace <#name#>' Typed text before: 'using', after: 'using namespace'. - 'else if (#)' Before: 'else', after: 'else if'. - 'using typename <#qualifier#>::<#name#>' Before: 'using', after: 'using typename'. Reviewers: sammccall Reviewed By: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62615 llvm-svn: 362479 --- clang/lib/Sema/SemaCodeComplete.cpp | 16 ++++------------ clang/test/CodeCompletion/ordinary-name-cxx11.cpp | 2 +- clang/test/CodeCompletion/ordinary-name.cpp | 2 +- clang/test/Index/complete-stmt.c | 4 ++-- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index f530601..4575d4f 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -1919,9 +1919,7 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC, Scope *S, Results.AddResult(Result(Builder.TakeString())); // Using directives - Builder.AddTypedTextChunk("using"); - Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddTextChunk("namespace"); + Builder.AddTypedTextChunk("using namespace"); Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); Builder.AddPlaceholderChunk("identifier"); Builder.AddChunk(CodeCompletionString::CK_SemiColon); @@ -1964,9 +1962,7 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC, Scope *S, // using typename qualifier::name (only in a dependent context) if (SemaRef.CurContext->isDependentContext()) { - Builder.AddTypedTextChunk("using"); - Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddTextChunk("typename"); + Builder.AddTypedTextChunk("using typename"); Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); Builder.AddPlaceholderChunk("qualifier"); Builder.AddTextChunk("::"); @@ -2236,9 +2232,7 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC, Scope *S, Results.AddResult(Result(Builder.TakeString())); // Using directives - Builder.AddTypedTextChunk("using"); - Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddTextChunk("namespace"); + Builder.AddTypedTextChunk("using namespace"); Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); Builder.AddPlaceholderChunk("identifier"); Builder.AddChunk(CodeCompletionString::CK_SemiColon); @@ -5201,9 +5195,7 @@ void Sema::CodeCompleteAfterIf(Scope *S) { Results.AddResult(Builder.TakeString()); // "else if" block - Builder.AddTypedTextChunk("else"); - Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddTextChunk("if"); + Builder.AddTypedTextChunk("else if"); Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); Builder.AddChunk(CodeCompletionString::CK_LeftParen); if (getLangOpts().CPlusPlus) diff --git a/clang/test/CodeCompletion/ordinary-name-cxx11.cpp b/clang/test/CodeCompletion/ordinary-name-cxx11.cpp index 7696c75..e568ee1 100644 --- a/clang/test/CodeCompletion/ordinary-name-cxx11.cpp +++ b/clang/test/CodeCompletion/ordinary-name-cxx11.cpp @@ -112,8 +112,8 @@ void foo() { // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC2-NEXT: COMPLETION: union // CHECK-CC2-NEXT: COMPLETION: unsigned - // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>; // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>; + // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>; // CHECK-CC2-NEXT: COMPLETION: void // CHECK-CC2-NEXT: COMPLETION: volatile // CHECK-CC2-NEXT: COMPLETION: wchar_t diff --git a/clang/test/CodeCompletion/ordinary-name.cpp b/clang/test/CodeCompletion/ordinary-name.cpp index 99cb690..3f89130 100644 --- a/clang/test/CodeCompletion/ordinary-name.cpp +++ b/clang/test/CodeCompletion/ordinary-name.cpp @@ -102,8 +102,8 @@ void foo() { // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC2-NEXT: COMPLETION: union // CHECK-CC2-NEXT: COMPLETION: unsigned - // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>; // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>; + // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>; // CHECK-CC2-NEXT: COMPLETION: void // CHECK-CC2-NEXT: COMPLETION: volatile // CHECK-CC2-NEXT: COMPLETION: wchar_t diff --git a/clang/test/Index/complete-stmt.c b/clang/test/Index/complete-stmt.c index 0deb4d3..78f4974 100644 --- a/clang/test/Index/complete-stmt.c +++ b/clang/test/Index/complete-stmt.c @@ -9,11 +9,11 @@ void f(int x) { // RUN: env CINDEXTEST_CODE_COMPLETE_PATTERNS=1 c-index-test -code-completion-at=%s:7:4 %s | FileCheck -check-prefix=CHECK-IF-ELSE %s // CHECK-IF-ELSE: NotImplemented:{TypedText else}{HorizontalSpace }{LeftBrace {}{VerticalSpace }{Placeholder statements}{VerticalSpace }{RightBrace }} (40) -// CHECK-IF-ELSE: NotImplemented:{TypedText else}{HorizontalSpace }{Text if}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )}{HorizontalSpace }{LeftBrace {}{VerticalSpace }{Placeholder statements}{VerticalSpace }{RightBrace }} (40) +// CHECK-IF-ELSE: NotImplemented:{TypedText else if}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )}{HorizontalSpace }{LeftBrace {}{VerticalSpace }{Placeholder statements}{VerticalSpace }{RightBrace }} (40) // RUN: c-index-test -code-completion-at=%s:7:4 %s | FileCheck -check-prefix=CHECK-IF-ELSE-SIMPLE %s // CHECK-IF-ELSE-SIMPLE: NotImplemented:{TypedText else} (40) -// CHECK-IF-ELSE-SIMPLE: NotImplemented:{TypedText else}{HorizontalSpace }{Text if}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )} (40) +// CHECK-IF-ELSE-SIMPLE: NotImplemented:{TypedText else if}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )} (40) // RUN: c-index-test -code-completion-at=%s:6:1 %s | FileCheck -check-prefix=CHECK-STMT %s // CHECK-STMT: NotImplemented:{TypedText _Nonnull} (50) -- 2.7.4