diff --git a/src/tools/clangbackend/ipcsource/codecompleter.cpp b/src/tools/clangbackend/ipcsource/codecompleter.cpp index e8f88b4c1d0..149277c53d3 100644 --- a/src/tools/clangbackend/ipcsource/codecompleter.cpp +++ b/src/tools/clangbackend/ipcsource/codecompleter.cpp @@ -49,6 +49,8 @@ CodeCompleter::CodeCompleter(TranslationUnit translationUnit) QVector CodeCompleter::complete(uint line, uint column) { + translationUnit.reparse(); + ClangCodeCompleteResults completeResults(clang_codeCompleteAt(translationUnit.cxTranslationUnit(), translationUnit.filePath().constData(), line, diff --git a/src/tools/clangbackend/ipcsource/translationunit.cpp b/src/tools/clangbackend/ipcsource/translationunit.cpp index f74b555f383..bfbfb9ec744 100644 --- a/src/tools/clangbackend/ipcsource/translationunit.cpp +++ b/src/tools/clangbackend/ipcsource/translationunit.cpp @@ -96,6 +96,13 @@ void TranslationUnit::reset() d.reset(); } +void TranslationUnit::reparse() +{ + cxTranslationUnit(); + + reparseTranslationUnit(); +} + CXIndex TranslationUnit::index() const { checkIfNull(); diff --git a/src/tools/clangbackend/ipcsource/translationunit.h b/src/tools/clangbackend/ipcsource/translationunit.h index 75dd39e8614..803e5e9c27b 100644 --- a/src/tools/clangbackend/ipcsource/translationunit.h +++ b/src/tools/clangbackend/ipcsource/translationunit.h @@ -73,6 +73,7 @@ public: bool isNull() const; void reset(); + void reparse(); CXIndex index() const; CXTranslationUnit cxTranslationUnit() const;