diff options
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 3 | ||||
-rw-r--r-- | clang/tools/libclang/CIndexCodeCompletion.cpp | 25 | ||||
-rw-r--r-- | clang/tools/libclang/CXCursor.cpp | 6 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
4 files changed, 29 insertions, 6 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index c7d1523349f..2233a1125ef 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -2523,6 +2523,8 @@ static void clang_parseTranslationUnit_Impl(void *UserData) { = (options & CXTranslationUnit_Incomplete)? TU_Prefix : TU_Complete; bool CacheCodeCompetionResults = options & CXTranslationUnit_CacheCompletionResults; + bool IncludeBriefCommentsInCodeCompletion + = options & CXTranslationUnit_IncludeBriefCommentsInCodeCompletion; bool SkipFunctionBodies = options & CXTranslationUnit_SkipFunctionBodies; // Configure the diagnostics. @@ -2607,6 +2609,7 @@ static void clang_parseTranslationUnit_Impl(void *UserData) { PrecompilePreamble, TUKind, CacheCodeCompetionResults, + IncludeBriefCommentsInCodeCompletion, /*AllowPCHWithCompilerErrors=*/true, SkipFunctionBodies, &ErrUnit)); diff --git a/clang/tools/libclang/CIndexCodeCompletion.cpp b/clang/tools/libclang/CIndexCodeCompletion.cpp index 303fb1f9d5f..0073b509e8a 100644 --- a/clang/tools/libclang/CIndexCodeCompletion.cpp +++ b/clang/tools/libclang/CIndexCodeCompletion.cpp @@ -227,6 +227,17 @@ clang_getCompletionParent(CXCompletionString completion_string, *kind = CCStr->getParentContextKind(); return createCXString(CCStr->getParentContextName(), /*DupString=*/false); } + +CXString +clang_getCompletionBriefComment(CXCompletionString completion_string) { + CodeCompletionString *CCStr = (CodeCompletionString *)completion_string; + + if (!CCStr) + return createCXString((const char *) NULL); + + return createCXString(CCStr->getBriefComment(), /*DupString=*/false); +} + /// \brief The CXCodeCompleteResults structure we allocate internally; /// the client only sees the initial CXCodeCompleteResults structure. @@ -509,9 +520,10 @@ namespace { SmallVector<CXCompletionResult, 16> StoredResults; CXTranslationUnit *TU; public: - CaptureCompletionResults(AllocatedCXCodeCompleteResults &Results, + CaptureCompletionResults(const CodeCompleteOptions &Opts, + AllocatedCXCodeCompleteResults &Results, CXTranslationUnit *TranslationUnit) - : CodeCompleteConsumer(true, false, true, false), + : CodeCompleteConsumer(Opts, false), AllocatedResults(Results), CCTUInfo(Results.CodeCompletionAllocator), TU(TranslationUnit) { } ~CaptureCompletionResults() { Finish(); } @@ -524,7 +536,8 @@ namespace { for (unsigned I = 0; I != NumResults; ++I) { CodeCompletionString *StoredCompletion = Results[I].CreateCodeCompletionString(S, getAllocator(), - getCodeCompletionTUInfo()); + getCodeCompletionTUInfo(), + includeBriefComments()); CXCompletionResult R; R.CursorKind = Results[I].CursorKind; @@ -658,6 +671,7 @@ void clang_codeCompleteAt_Impl(void *UserData) { struct CXUnsavedFile *unsaved_files = CCAI->unsaved_files; unsigned num_unsaved_files = CCAI->num_unsaved_files; unsigned options = CCAI->options; + bool IncludeBriefComments = options & CXCodeComplete_IncludeBriefComments; CCAI->result = 0; #ifdef UDP_CODE_COMPLETION_LOGGER @@ -699,13 +713,16 @@ void clang_codeCompleteAt_Impl(void *UserData) { Results->NumResults = 0; // Create a code-completion consumer to capture the results. - CaptureCompletionResults Capture(*Results, &TU); + CodeCompleteOptions Opts; + Opts.IncludeBriefComments = IncludeBriefComments; + CaptureCompletionResults Capture(Opts, *Results, &TU); // Perform completion. AST->CodeComplete(complete_filename, complete_line, complete_column, RemappedFiles.data(), RemappedFiles.size(), (options & CXCodeComplete_IncludeMacros), (options & CXCodeComplete_IncludeCodePatterns), + IncludeBriefComments, Capture, *Results->Diag, Results->LangOpts, *Results->SourceMgr, *Results->FileMgr, Results->Diagnostics, diff --git a/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp index 08c4de367af..ae7d806c7f0 100644 --- a/clang/tools/libclang/CXCursor.cpp +++ b/clang/tools/libclang/CXCursor.cpp @@ -1198,7 +1198,8 @@ CXCompletionString clang_getCursorCompletionString(CXCursor cursor) { = Result.CreateCodeCompletionString(unit->getASTContext(), unit->getPreprocessor(), unit->getCodeCompletionTUInfo().getAllocator(), - unit->getCodeCompletionTUInfo()); + unit->getCodeCompletionTUInfo(), + true); return String; } } @@ -1211,7 +1212,8 @@ CXCompletionString clang_getCursorCompletionString(CXCursor cursor) { = Result.CreateCodeCompletionString(unit->getASTContext(), unit->getPreprocessor(), unit->getCodeCompletionTUInfo().getAllocator(), - unit->getCodeCompletionTUInfo()); + unit->getCodeCompletionTUInfo(), + false); return String; } return NULL; diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index bba883fdda5..1272a02a128 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -71,6 +71,7 @@ clang_getChildDiagnostics clang_getClangVersion clang_getCompletionAnnotation clang_getCompletionAvailability +clang_getCompletionBriefComment clang_getCompletionChunkCompletionString clang_getCompletionChunkKind clang_getCompletionChunkText |