[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`.
This revision was automatically updated to reflect the committed changes. Closed by commit rG834c71829cc2: [CodeComplete] Tweak code completion for `typename`. (authored by kadircet). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 Files: clang/lib/Sema/SemaCodeComplete.cpp clang/test/CodeCompletion/ordinary-name-cxx11.cpp clang/test/CodeCompletion/ordinary-name.cpp Index: clang/test/CodeCompletion/ordinary-name.cpp === --- clang/test/CodeCompletion/ordinary-name.cpp +++ clang/test/CodeCompletion/ordinary-name.cpp @@ -54,7 +54,7 @@ // 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 @@ // 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 @@ // 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 @@ // 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 @@ // 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 Index: clang/test/CodeCompletion/ordinary-name-cxx11.cpp === --- clang/test/CodeCompletion/ordinary-name-cxx11.cpp +++ clang/test/CodeCompletion/ordinary-name-cxx11.cpp @@ -57,7 +57,7 @@ // 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 @@ // 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 @@ // 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 :
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`.
lh123 updated this revision to Diff 273074. lh123 retitled this revision from "[CodeComplete] Tweak code completion for `typename` and `using`." to "[CodeComplete] Tweak code completion for `typename`.". lh123 added a comment. Address comment. I will add `using $alias$ = $type$;` in a separate patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 Files: clang/lib/Sema/SemaCodeComplete.cpp clang/test/CodeCompletion/ordinary-name-cxx11.cpp clang/test/CodeCompletion/ordinary-name.cpp Index: clang/test/CodeCompletion/ordinary-name.cpp === --- clang/test/CodeCompletion/ordinary-name.cpp +++ clang/test/CodeCompletion/ordinary-name.cpp @@ -54,7 +54,7 @@ // 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 @@ // 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 @@ // 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 @@ // 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 @@ // 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 Index: clang/test/CodeCompletion/ordinary-name-cxx11.cpp === --- clang/test/CodeCompletion/ordinary-name-cxx11.cpp +++ clang/test/CodeCompletion/ordinary-name-cxx11.cpp @@ -57,7 +57,7 @@ // 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 @@ // 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 @@ // 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#>
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename` and `using`.
kadircet added inline comments. Comment at: clang/lib/Sema/SemaCodeComplete.cpp:2058 Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddPlaceholderChunk("qualifier"); - Builder.AddTextChunk("::"); lh123 wrote: > lh123 wrote: > > kadircet wrote: > > > unfortunately the reasoning above doesn't apply here, as a using > > > declaration *must* have a nested-name-specifier. e.g. `using X;` is not > > > allowed. so please revert this (and following on `using typename` it > > > requires a nested-name-specifier too) > > Yes, you are right. but I think complete `using` as `using qualifier::name` > > is not useful when user want input something like `using A = B`. > I think we just need revert change for `using typename qualifier::name`. WDYT. right but using declarations vs aliases are two different use cases, I would suggest adding a separate completion item for that in form: `using $alias$ = $type$;` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename` and `using`.
lh123 marked an inline comment as done. lh123 added inline comments. Comment at: clang/lib/Sema/SemaCodeComplete.cpp:2058 Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddPlaceholderChunk("qualifier"); - Builder.AddTextChunk("::"); lh123 wrote: > kadircet wrote: > > unfortunately the reasoning above doesn't apply here, as a using > > declaration *must* have a nested-name-specifier. e.g. `using X;` is not > > allowed. so please revert this (and following on `using typename` it > > requires a nested-name-specifier too) > Yes, you are right. but I think complete `using` as `using qualifier::name` > is not useful when user want input something like `using A = B`. I think we just need revert change for `using typename qualifier::name`. WDYT. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename` and `using`.
lh123 marked an inline comment as done. lh123 added inline comments. Comment at: clang/lib/Sema/SemaCodeComplete.cpp:2058 Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddPlaceholderChunk("qualifier"); - Builder.AddTextChunk("::"); kadircet wrote: > unfortunately the reasoning above doesn't apply here, as a using declaration > *must* have a nested-name-specifier. e.g. `using X;` is not allowed. so > please revert this (and following on `using typename` it requires a > nested-name-specifier too) Yes, you are right. but I think complete `using` as `using qualifier::name` is not useful when user want input something like `using A = B`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename` and `using`.
kadircet added inline comments. Comment at: clang/lib/Sema/SemaCodeComplete.cpp:2058 Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); - Builder.AddPlaceholderChunk("qualifier"); - Builder.AddTextChunk("::"); unfortunately the reasoning above doesn't apply here, as a using declaration *must* have a nested-name-specifier. e.g. `using X;` is not allowed. so please revert this (and following on `using typename` it requires a nested-name-specifier too) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`
lh123 added a comment. If this patch looks good, please land it for me. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`
lh123 updated this revision to Diff 272994. lh123 edited the summary of this revision. lh123 added a comment. address comment. Also tweak code completion behavior for `using`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 Files: clang/lib/Sema/SemaCodeComplete.cpp clang/test/CodeCompletion/ordinary-name-cxx11.cpp clang/test/CodeCompletion/ordinary-name.cpp Index: clang/test/CodeCompletion/ordinary-name.cpp === --- clang/test/CodeCompletion/ordinary-name.cpp +++ clang/test/CodeCompletion/ordinary-name.cpp @@ -54,7 +54,7 @@ // 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,12 +97,12 @@ // 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 // CHECK-CC2-NEXT: COMPLETION: unsigned - // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>; + // CHECK-CC2-NEXT: COMPLETION: Pattern : using <#name#>; // CHECK-CC2-NEXT: COMPLETION: Pattern : using namespace <#identifier#>; // CHECK-CC2-NEXT: COMPLETION: void // CHECK-CC2-NEXT: COMPLETION: volatile @@ -134,12 +134,12 @@ // 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 // CHECK-CC3-NEXT: COMPLETION: unsigned - // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#qualifier#>::<#name#>; + // CHECK-CC3-NEXT: COMPLETION: Pattern : using <#name#>; // CHECK-CC3-NEXT: COMPLETION: virtual // CHECK-CC3-NEXT: COMPLETION: void // CHECK-CC3-NEXT: COMPLETION: volatile @@ -176,7 +176,7 @@ // 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 @@ // 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 Index: clang/test/CodeCompletion/ordinary-name-cxx11.cpp === --- clang/test/CodeCompletion/ordinary-name-cxx11.cpp +++ clang/test/CodeCompletion/ordinary-name-cxx11.cpp @@ -57,7 +57,7 @@ // 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,12 +107,12 @@ // 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#>
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`
kadircet accepted this revision. kadircet added a comment. This revision is now accepted and ready to land. LGTM, as previous version only saves a single character, i.e. pressing a single tab after qualifier vs hitting `:` twice, while it is annoying for the non-qualified case, now you need to delete the rest. let me know if I should land this for you. Comment at: clang/lib/Sema/SemaCodeComplete.cpp:1693 Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); -Builder.AddPlaceholderChunk("qualifier"); -Builder.AddTextChunk("::"); -Builder.AddPlaceholderChunk("name"); +Builder.AddPlaceholderChunk("identifier"); Results.AddResult(Result(Builder.TakeString())); nit: let's use `name` instead of `identifier` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D82373/new/ https://reviews.llvm.org/D82373 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D82373: [CodeComplete] Tweak code completion for `typename`
lh123 created this revision. lh123 added reviewers: sammccall, kadircet. Herald added subscribers: cfe-commits, usaxena95, ilya-biryukov. Herald added a project: clang. lh123 retitled this revision from "[CodeComplete] Tweak code completion for "typename" to "[CodeComplete] Tweak code completion for `typename`". Currently, clangd always completes `typename` as `typename qualifier::name`, I think in this completion in the `template <>` is not appropriate. So I tweak it to `typename identifier`. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D82373 Files: clang/lib/Sema/SemaCodeComplete.cpp clang/test/CodeCompletion/ordinary-name-cxx11.cpp clang/test/CodeCompletion/ordinary-name.cpp Index: clang/test/CodeCompletion/ordinary-name.cpp === --- clang/test/CodeCompletion/ordinary-name.cpp +++ clang/test/CodeCompletion/ordinary-name.cpp @@ -54,7 +54,7 @@ // 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 <#identifier#> // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC1-NEXT: COMPLETION: union @@ -97,7 +97,7 @@ // 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 <#identifier#> // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC2-NEXT: COMPLETION: union @@ -134,7 +134,7 @@ // 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 <#identifier#> // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC3-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC3-NEXT: COMPLETION: union @@ -176,7 +176,7 @@ // 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 <#identifier#> // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC4-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC4-NEXT: COMPLETION: union @@ -227,7 +227,7 @@ // 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 <#identifier#> // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-NO-RTTI-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-NO-RTTI-NEXT: COMPLETION: union Index: clang/test/CodeCompletion/ordinary-name-cxx11.cpp === --- clang/test/CodeCompletion/ordinary-name-cxx11.cpp +++ clang/test/CodeCompletion/ordinary-name-cxx11.cpp @@ -57,7 +57,7 @@ // 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 <#identifier#> // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC1-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC1-NEXT: COMPLETION: union @@ -107,7 +107,7 @@ // 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 <#identifier#> // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof <#expression#> // CHECK-CC2-NEXT: COMPLETION: Pattern : typeof(<#type#>) // CHECK-CC2-NEXT: COMPLETION: union @@ -150,7 +150,7 @@ // CHECK-CC3-NEXT: COMPLETION: Pattern : template<<#parameters#>> // CHECK-CC3-NEXT: COMPLETION: thread_local // CHECK-CC3-NEXT: COMPLETION: