Clang: Use completion through backend process

This makes us independent of libclang crashes for completion.
Re-parsing for highlighting still happens in the Qt Creator process.

Run in verbose mode:
    qtc.clangcodemodel.ipc=true

Run tests:
    -test "ClangCodeModel"

Task-number: QTCREATORBUG-14108
Task-number: QTCREATORBUG-12819
Change-Id: Id3e95bd2afdb6508bbd1d35fddc69534a909b905
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-05-08 15:48:17 +02:00
parent 264132da27
commit 23b8a3b2e8
59 changed files with 3820 additions and 634 deletions

View File

@@ -37,6 +37,22 @@
using namespace CppTools;
using namespace CppTools::Internal;
QString ModelManagerSupportProviderInternal::id() const
{
return QLatin1String("CppTools.BuiltinCodeModel");
}
QString ModelManagerSupportProviderInternal::displayName() const
{
return QCoreApplication::translate("ModelManagerSupportInternal::displayName",
"Qt Creator Built-in");
}
ModelManagerSupport::Ptr ModelManagerSupportProviderInternal::createModelManagerSupport()
{
return ModelManagerSupport::Ptr(new ModelManagerSupportInternal);
}
ModelManagerSupportInternal::ModelManagerSupportInternal()
: m_completionAssistProvider(new InternalCompletionAssistProvider)
{
@@ -46,17 +62,6 @@ ModelManagerSupportInternal::~ModelManagerSupportInternal()
{
}
QString ModelManagerSupportInternal::id() const
{
return QLatin1String("CppTools.BuiltinCodeModel");
}
QString ModelManagerSupportInternal::displayName() const
{
return QCoreApplication::translate("ModelManagerSupportInternal::displayName",
"Qt Creator Built-in");
}
BaseEditorDocumentProcessor *ModelManagerSupportInternal::editorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument)
{