[CodeComplete] Add whitespace around braces in lambda completions

This produces nicer output.
Trivial follow-up to r361461, so sending without review.

llvm-svn: 361645
This commit is contained in:
Ilya Biryukov 2019-05-24 16:16:15 +00:00
parent dffedea014
commit 47fd4f06c5
2 changed files with 8 additions and 5 deletions

View File

@ -4177,8 +4177,11 @@ static void AddLambdaCompletion(ResultBuilder &Results,
};
Completion.AddChunk(CodeCompletionString::CK_RightParen);
}
Completion.AddChunk(clang::CodeCompletionString::CK_HorizontalSpace);
Completion.AddChunk(CodeCompletionString::CK_LeftBrace);
Completion.AddChunk(CodeCompletionString::CK_HorizontalSpace);
Completion.AddPlaceholderChunk("body");
Completion.AddChunk(CodeCompletionString::CK_HorizontalSpace);
Completion.AddChunk(CodeCompletionString::CK_RightBrace);
Results.AddResult(Completion.TakeString());

View File

@ -9,17 +9,17 @@ void test() {
function<void(int, double)> y = {};
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:7:28 %s -o - | FileCheck -check-prefix=CHECK-1 %s
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:9:35 %s -o - | FileCheck -check-prefix=CHECK-1 %s
// CHECK-1: COMPLETION: Pattern : [<#=#>](int <#parameter#>, double <#parameter#>){<#body#>}
// CHECK-1: COMPLETION: Pattern : [<#=#>](int <#parameter#>, double <#parameter#>) { <#body#> }
// == Placeholders for suffix types must be placed properly.
function<void(void(*)(int))> z = {};
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:15:36 %s -o - | FileCheck -check-prefix=CHECK-2 %s
// CHECK-2: COMPLETION: Pattern : [<#=#>](void (* <#parameter#>)(int)){<#body#>}
// CHECK-2: COMPLETION: Pattern : [<#=#>](void (* <#parameter#>)(int)) { <#body#> }
// == No need for a parameter list if function has no parameters.
function<void()> a = {};
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:20:24 %s -o - | FileCheck -check-prefix=CHECK-3 %s
// CHECK-3: COMPLETION: Pattern : [<#=#>]{<#body#>}
// CHECK-3: COMPLETION: Pattern : [<#=#>] { <#body#> }
}
template <class T, class Allocator = int>
@ -33,7 +33,7 @@ void test2() {
function_typedef b = {};
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:30:35 %s -o - | FileCheck -check-prefix=CHECK-4 %s
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:33:24 %s -o - | FileCheck -check-prefix=CHECK-4 %s
// CHECK-4: COMPLETION: Pattern : [<#=#>](vector<int> <#parameter#>){<#body#>}
// CHECK-4: COMPLETION: Pattern : [<#=#>](vector<int> <#parameter#>) { <#body#> }
}
// Check another common function wrapper name.
@ -42,7 +42,7 @@ template <class T> struct unique_function {};
void test3() {
unique_function<void()> a = {};
// RUN: %clang_cc1 -fsyntax-only -code-completion-patterns -code-completion-at=%s:43:31 %s -o - | FileCheck -check-prefix=CHECK-5 %s
// CHECK-5: COMPLETION: Pattern : [<#=#>]{<#body#>}
// CHECK-5: COMPLETION: Pattern : [<#=#>] { <#body#> }
}
template <class T, class U> struct weird_function {};