Give clang_codeCompleteAt() an "options" parameter, and add a new
flags enumeration + default-generating function that allows
code-completion to be customized via the libclang API.
Plus, turn on spell-checking when performing code completion.
llvm-svn: 110319
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c
index 8146213..1530aa8 100644
--- a/clang/tools/c-index-test/c-index-test.c
+++ b/clang/tools/c-index-test/c-index-test.c
@@ -896,7 +896,8 @@
num_unsaved_files,
getDefaultParsingOptions());
results = clang_codeCompleteAt(TU, filename, line, column,
- unsaved_files, num_unsaved_files);
+ unsaved_files, num_unsaved_files,
+ clang_defaultCodeCompleteOptions());
} else
results = clang_codeComplete(CIdx,
argv[argc - 1], argc - num_unsaved_files - 3,
diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp
index 2aa644b..4ab6b9b 100644
--- a/clang/tools/libclang/CIndexCodeCompletion.cpp
+++ b/clang/tools/libclang/CIndexCodeCompletion.cpp
@@ -569,7 +569,8 @@
unsigned complete_line,
unsigned complete_column,
struct CXUnsavedFile *unsaved_files,
- unsigned num_unsaved_files) {
+ unsigned num_unsaved_files,
+ unsigned options) {
#ifdef UDP_CODE_COMPLETION_LOGGER
#ifdef UDP_CODE_COMPLETION_LOGGER_PORT
const llvm::TimeRecord &StartTime = llvm::TimeRecord::getCurrentTime();
@@ -611,7 +612,10 @@
// Perform completion.
AST->CodeComplete(complete_filename, complete_line, complete_column,
- RemappedFiles.data(), RemappedFiles.size(), Capture,
+ RemappedFiles.data(), RemappedFiles.size(),
+ (options & CXCodeComplete_IncludeMacros),
+ (options & CXCodeComplete_IncludeCodePatterns),
+ Capture,
*Results->Diag, Results->LangOpts, Results->SourceMgr,
Results->FileMgr, Results->Diagnostics);
@@ -692,6 +696,10 @@
return Results;
}
+unsigned clang_defaultCodeCompleteOptions(void) {
+ return CXCodeComplete_IncludeMacros;
+}
+
void clang_disposeCodeCompleteResults(CXCodeCompleteResults *ResultsIn) {
if (!ResultsIn)
return;
diff --git a/clang/tools/libclang/libclang.darwin.exports b/clang/tools/libclang/libclang.darwin.exports
index b971ed3..8ebdf99 100644
--- a/clang/tools/libclang/libclang.darwin.exports
+++ b/clang/tools/libclang/libclang.darwin.exports
@@ -13,6 +13,7 @@
_clang_createIndex
_clang_createTranslationUnit
_clang_createTranslationUnitFromSourceFile
+_clang_defaultCodeCompleteOptions
_clang_defaultDiagnosticDisplayOptions
_clang_disposeCodeCompleteResults
_clang_disposeDiagnostic
diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports
index b5533fc..793b042 100644
--- a/clang/tools/libclang/libclang.exports
+++ b/clang/tools/libclang/libclang.exports
@@ -13,6 +13,7 @@
clang_createIndex
clang_createTranslationUnit
clang_createTranslationUnitFromSourceFile
+clang_defaultCodeCompleteOptions
clang_defaultDiagnosticDisplayOptions
clang_disposeCodeCompleteResults
clang_disposeDiagnostic