summaryrefslogtreecommitdiffstats
path: root/clang/tools/c-index-test/c-index-test.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-11-09 16:04:45 +0000
committerDouglas Gregor <dgregor@apple.com>2009-11-09 16:04:45 +0000
commit8b14f8fde447030ecd52631c9be9416cea9801c4 (patch)
tree34768c1dc7775b193565c7f9c98176be92680386 /clang/tools/c-index-test/c-index-test.c
parent640eb70bee922fa58488185a0b3645b2952da28e (diff)
downloadbcm5719-llvm-8b14f8fde447030ecd52631c9be9416cea9801c4.tar.gz
bcm5719-llvm-8b14f8fde447030ecd52631c9be9416cea9801c4.zip
Minor cleanup for CIndex-based code-completion:
- Provide an actual test for code-completion via CIndex. - Actually print optional strings in c-index-test - Export clang_getCompletionChunkCompletionString from CIndex llvm-svn: 86550
Diffstat (limited to 'clang/tools/c-index-test/c-index-test.c')
-rw-r--r--clang/tools/c-index-test/c-index-test.c35
1 files changed, 24 insertions, 11 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index 82653357b10..0df590d8499 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -158,24 +158,37 @@ clang_getCompletionChunkKindSpelling(enum CXCompletionChunkKind Kind) {
return "Unknown";
}
-void print_completion_result(CXCompletionResult *completion_result,
- CXClientData client_data) {
- FILE *file = (FILE *)client_data;
+void print_completion_string(CXCompletionString completion_string, FILE *file) {
int I, N;
-
- fprintf(file, "%s:",
- clang_getCursorKindSpelling(completion_result->CursorKind));
- N = clang_getNumCompletionChunks(completion_result->CompletionString);
+
+ N = clang_getNumCompletionChunks(completion_string);
for (I = 0; I != N; ++I) {
- const char *text
- = clang_getCompletionChunkText(completion_result->CompletionString, I);
-
enum CXCompletionChunkKind Kind
- = clang_getCompletionChunkKind(completion_result->CompletionString, I);
+ = clang_getCompletionChunkKind(completion_string, I);
+
+ if (Kind == CXCompletionChunk_Optional) {
+ fprintf(file, "{Optional ");
+ print_completion_string(
+ clang_getCompletionChunkCompletionString(completion_string, I),
+ file);
+ fprintf(file, "}");
+ continue;
+ }
+
+ const char *text
+ = clang_getCompletionChunkText(completion_string, I);
fprintf(file, "{%s %s}",
clang_getCompletionChunkKindSpelling(Kind),
text? text : "");
}
+}
+
+void print_completion_result(CXCompletionResult *completion_result,
+ CXClientData client_data) {
+ FILE *file = (FILE *)client_data;
+ fprintf(file, "%s:",
+ clang_getCursorKindSpelling(completion_result->CursorKind));
+ print_completion_string(completion_result->CompletionString, file);
fprintf(file, "\n");
}
OpenPOWER on IntegriCloud