diff options
| author | Douglas Gregor <dgregor@apple.com> | 2012-02-16 17:49:04 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2012-02-16 17:49:04 +0000 | 
| commit | 3a5d6c27b21340d0e881f014fcfd362fd26ea8ea (patch) | |
| tree | 5b9a480be92034bf3695fe8f192b125ed0e4970d | |
| parent | 4705b0cc1cd56bbcc32c9f4345f016493201aebc (diff) | |
| download | bcm5719-llvm-3a5d6c27b21340d0e881f014fcfd362fd26ea8ea.tar.gz bcm5719-llvm-3a5d6c27b21340d0e881f014fcfd362fd26ea8ea.zip  | |
If code completion patterns are not enabled, use simpler else/else if
completions that don't insert braces. Fixes <rdar://problem/10764168>.
llvm-svn: 150707
| -rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 28 | ||||
| -rw-r--r-- | clang/test/Index/complete-stmt.c | 6 | 
2 files changed, 21 insertions, 13 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index e74e70c725a..8825511ff57 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -3869,12 +3869,14 @@ void Sema::CodeCompleteAfterIf(Scope *S) {    // "else" block    CodeCompletionBuilder Builder(Results.getAllocator());    Builder.AddTypedTextChunk("else"); -  Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); -  Builder.AddChunk(CodeCompletionString::CK_LeftBrace); -  Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); -  Builder.AddPlaceholderChunk("statements"); -  Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); -  Builder.AddChunk(CodeCompletionString::CK_RightBrace); +  if (Results.includeCodePatterns()) { +    Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); +    Builder.AddChunk(CodeCompletionString::CK_LeftBrace); +    Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); +    Builder.AddPlaceholderChunk("statements"); +    Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); +    Builder.AddChunk(CodeCompletionString::CK_RightBrace); +  }    Results.AddResult(Builder.TakeString());    // "else if" block @@ -3888,12 +3890,14 @@ void Sema::CodeCompleteAfterIf(Scope *S) {    else      Builder.AddPlaceholderChunk("expression");    Builder.AddChunk(CodeCompletionString::CK_RightParen); -  Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); -  Builder.AddChunk(CodeCompletionString::CK_LeftBrace); -  Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); -  Builder.AddPlaceholderChunk("statements"); -  Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); -  Builder.AddChunk(CodeCompletionString::CK_RightBrace); +  if (Results.includeCodePatterns()) { +    Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace); +    Builder.AddChunk(CodeCompletionString::CK_LeftBrace); +    Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); +    Builder.AddPlaceholderChunk("statements"); +    Builder.AddChunk(CodeCompletionString::CK_VerticalSpace); +    Builder.AddChunk(CodeCompletionString::CK_RightBrace); +  }    Results.AddResult(Builder.TakeString());    Results.ExitScope(); diff --git a/clang/test/Index/complete-stmt.c b/clang/test/Index/complete-stmt.c index 98fa9df44db..e39431ebdcc 100644 --- a/clang/test/Index/complete-stmt.c +++ b/clang/test/Index/complete-stmt.c @@ -7,6 +7,10 @@ void f(int x) {    }   } -// RUN: c-index-test -code-completion-at=%s:7:4 %s | FileCheck -check-prefix=CHECK-IF-ELSE %s +// 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) + +// 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)  | 

