From: Douglas Gregor Date: Fri, 8 Oct 2010 20:39:29 +0000 (+0000) Subject: Fix the mapping of vertical-space cursor kinds to produce a newline, X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5a9c0bca4504eeda45a3fd0ae1c244b2994f38b2;p=clang Fix the mapping of vertical-space cursor kinds to produce a newline, rather than a space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116097 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index ae82ceb334..a9c97e4197 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -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); diff --git a/test/CodeCompletion/ordinary-name.cpp b/test/CodeCompletion/ordinary-name.cpp index 7e08c728fa..6771dd2265 100644 --- a/test/CodeCompletion/ordinary-name.cpp +++ b/test/CodeCompletion/ordinary-name.cpp @@ -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 diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c index 9c5a67d304..ca4b1e3169 100644 --- a/tools/c-index-test/c-index-test.c +++ b/tools/c-index-test/c-index-test.c @@ -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); diff --git a/tools/libclang/CIndexCodeCompletion.cpp b/tools/libclang/CIndexCodeCompletion.cpp index e473384813..f33fdbe5f7 100644 --- a/tools/libclang/CIndexCodeCompletion.cpp +++ b/tools/libclang/CIndexCodeCompletion.cpp @@ -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.