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

@@ -33,6 +33,7 @@
#include "cpptools_global.h"
#include <QSharedPointer>
#include <QString>
namespace TextEditor { class TextDocument; }
@@ -45,16 +46,27 @@ class CppCompletionAssistProvider;
class CPPTOOLS_EXPORT ModelManagerSupport
{
public:
virtual ~ModelManagerSupport() = 0;
using Ptr = QSharedPointer<ModelManagerSupport>;
virtual QString id() const = 0;
virtual QString displayName() const = 0;
public:
virtual ~ModelManagerSupport() = 0;
virtual CppCompletionAssistProvider *completionAssistProvider() = 0;
virtual BaseEditorDocumentProcessor *editorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) = 0;
};
class CPPTOOLS_EXPORT ModelManagerSupportProvider
{
public:
virtual ~ModelManagerSupportProvider() {}
virtual QString id() const = 0;
virtual QString displayName() const = 0;
virtual ModelManagerSupport::Ptr createModelManagerSupport() = 0;
};
} // CppTools namespace
#endif // CPPTOOLS_CPPMODELMANAGERSUPPORT_H