]> granicus.if.org Git - clang/commitdiff
Fix the mapping of vertical-space cursor kinds to produce a newline,
authorDouglas Gregor <dgregor@apple.com>
Fri, 8 Oct 2010 20:39:29 +0000 (20:39 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 8 Oct 2010 20:39:29 +0000 (20:39 +0000)
rather than a space.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116097 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaCodeComplete.cpp
test/CodeCompletion/ordinary-name.cpp
tools/c-index-test/c-index-test.c
tools/libclang/CIndexCodeCompletion.cpp

index ae82ceb334afcb61dbc24e8fade35db6a19d9ad1..a9c97e4197391d275ad96edaabaf6122ad0afe60 100644 (file)
@@ -1559,6 +1559,7 @@ static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC,
       Pattern->AddPlaceholderChunk("inc-expression");
       Pattern->AddChunk(CodeCompletionString::CK_RightParen);
       Pattern->AddChunk(CodeCompletionString::CK_LeftBrace);
+      Pattern->AddChunk(CodeCompletionString::CK_VerticalSpace);
       Pattern->AddPlaceholderChunk("statements");
       Pattern->AddChunk(CodeCompletionString::CK_VerticalSpace);
       Pattern->AddChunk(CodeCompletionString::CK_RightBrace);
index 7e08c728fab65c6901cd350ed186435594b38a7a..6771dd226518d56b00385841b1b475515a34ace2 100644 (file)
@@ -20,7 +20,7 @@ void foo() {
   // CHECK-CC1-NEXT: COMPLETION: false
   // CHECK-CC1-NEXT: COMPLETION: float
   // CHECK-CC1-NEXT: COMPLETION: foo : [#void#]foo()
-  // CHECK-CC1-NEXT: COMPLETION: Pattern : for(<#init-statement#>;<#condition#>;<#inc-expression#>){<#statements#>
+  // CHECK-CC1-NEXT: COMPLETION: Pattern : for(<#init-statement#>;<#condition#>;<#inc-expression#>){
   // CHECK-CC1: COMPLETION: Pattern : goto <#label#>
   // CHECK-CC1-NEXT: COMPLETION: Pattern : if(<#condition#>){<#statements#>
   // CHECK-CC1: COMPLETION: int
index 9c5a67d30495c904a30ff6c54b2dfb87e66d4ac3..ca4b1e3169cd81c36b4a98ac5afabb2c709cae05 100644 (file)
@@ -939,6 +939,11 @@ void print_completion_string(CXCompletionString completion_string, FILE *file) {
                               file);
       fprintf(file, "}");
       continue;
+    } 
+
+    if (Kind == CXCompletionChunk_VerticalSpace) {
+      fprintf(file, "{VerticalSpace  }");
+      continue;
     }
 
     text = clang_getCompletionChunkText(completion_string, I);
index e473384813f7379f67263dd2e0728db686f3f9cf..f33fdbe5f7e61a3dbc93aa3631b0c5db8b1b6e0b 100644 (file)
@@ -146,11 +146,8 @@ CXString clang_getCompletionChunkText(CXCompletionString completion_string,
   case CodeCompletionString::CK_SemiColon:
   case CodeCompletionString::CK_Equal:
   case CodeCompletionString::CK_HorizontalSpace:
-    return createCXString((*CCStr)[chunk_number].Text, false);
-
   case CodeCompletionString::CK_VerticalSpace:
-    // FIXME: Temporary hack until we figure out how to handle vertical space.
-    return createCXString(" ");
+    return createCXString((*CCStr)[chunk_number].Text, false);
       
   case CodeCompletionString::CK_Optional:
     // Note: treated as an empty text block.