forked from OSchip/llvm-project
[CodeComplete] Tweak code completion for `typename`.
Summary: Currently, clangd always completes `typename` as `typename qualifier::name`, I think the current behavior is not useful when the code completion is triggered in `template <>`. So I tweak it to `typename identifier`. Patch by @lh123 ! Reviewers: sammccall, kadircet Reviewed By: kadircet Subscribers: ilya-biryukov, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82373
This commit is contained in:
parent
1a30eab413
commit
834c71829c
|
@ -1687,11 +1687,9 @@ static void AddTypeSpecifierResults(const LangOptions &LangOpts,
|
|||
Results.AddResult(Result("class", CCP_Type));
|
||||
Results.AddResult(Result("wchar_t", CCP_Type));
|
||||
|
||||
// typename qualified-id
|
||||
// typename name
|
||||
Builder.AddTypedTextChunk("typename");
|
||||
Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace);
|
||||
Builder.AddPlaceholderChunk("qualifier");
|
||||
Builder.AddTextChunk("::");
|
||||
Builder.AddPlaceholderChunk("name");
|
||||
Results.AddResult(Result(Builder.TakeString()));
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ void foo() {
|
|||
// CHECK-CC1: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC1-NEXT: COMPLETION: union
|
||||
|
@ -107,7 +107,7 @@ void foo() {
|
|||
// CHECK-CC2-NEXT: COMPLETION: thread_local
|
||||
// CHECK-CC2-NEXT: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC2-NEXT: COMPLETION: union
|
||||
|
@ -150,7 +150,7 @@ void foo() {
|
|||
// CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>>
|
||||
// CHECK-CC3-NEXT: COMPLETION: thread_local
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC3-NEXT: COMPLETION: union
|
||||
|
@ -198,7 +198,7 @@ void foo() {
|
|||
// CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]true
|
||||
// CHECK-CC4-NEXT: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC4-NEXT: COMPLETION: union
|
||||
|
@ -259,7 +259,7 @@ void foo() {
|
|||
// CHECK-NO-RTTI: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-NO-RTTI-NOT: typeid
|
||||
// CHECK-NO-RTTI: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-NO-RTTI: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: union
|
||||
|
|
|
@ -54,7 +54,7 @@ void foo() {
|
|||
// CHECK-CC1: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC1-NEXT: COMPLETION: union
|
||||
|
@ -97,7 +97,7 @@ void foo() {
|
|||
// CHECK-CC2-NEXT: COMPLETION: Pattern : template<<#parameters#>>
|
||||
// CHECK-CC2-NEXT: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC2-NEXT: COMPLETION: union
|
||||
|
@ -134,7 +134,7 @@ void foo() {
|
|||
// CHECK-CC3-NEXT: COMPLETION: struct
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC3-NEXT: COMPLETION: union
|
||||
|
@ -176,7 +176,7 @@ void foo() {
|
|||
// CHECK-CC4-NEXT: COMPLETION: Pattern : [#bool#]true
|
||||
// CHECK-CC4-NEXT: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : [#std::type_info#]typeid(<#expression-or-type#>)
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-CC4-NEXT: COMPLETION: union
|
||||
|
@ -227,7 +227,7 @@ void foo() {
|
|||
// CHECK-NO-RTTI: COMPLETION: TYPEDEF : TYPEDEF
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typedef <#type#> <#name#>;
|
||||
// CHECK-NO-RTTI-NOT: typeid
|
||||
// CHECK-NO-RTTI: COMPLETION: Pattern : typename <#qualifier#>::<#name#>
|
||||
// CHECK-NO-RTTI: COMPLETION: Pattern : typename <#name#>
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#>
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>)
|
||||
// CHECK-NO-RTTI-NEXT: COMPLETION: union
|
||||
|
|
Loading…
Reference in New Issue