forked from qt-creator/qt-creator
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:
@@ -38,15 +38,20 @@
|
||||
#include <cpptools/semantichighlighter.h>
|
||||
|
||||
#include <QFutureWatcher>
|
||||
#include <QPointer>
|
||||
|
||||
namespace ClangCodeModel {
|
||||
namespace Internal {
|
||||
|
||||
class ModelManagerSupportClang;
|
||||
|
||||
class ClangEditorDocumentProcessor : public CppTools::BaseEditorDocumentProcessor
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ClangEditorDocumentProcessor(TextEditor::TextDocument *document);
|
||||
ClangEditorDocumentProcessor(ModelManagerSupportClang *modelManagerSupport,
|
||||
TextEditor::TextDocument *document);
|
||||
~ClangEditorDocumentProcessor();
|
||||
|
||||
// BaseEditorDocumentProcessor interface
|
||||
@@ -61,6 +66,8 @@ private slots:
|
||||
void onParserFinished();
|
||||
|
||||
private:
|
||||
QPointer<ModelManagerSupportClang> m_modelManagerSupport;
|
||||
|
||||
ClangEditorDocumentParser m_parser;
|
||||
QFutureWatcher<void> m_parserWatcher;
|
||||
unsigned m_parserRevision;
|
||||
@@ -69,6 +76,7 @@ private:
|
||||
CppTools::BuiltinEditorDocumentProcessor m_builtinProcessor;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace ClangCodeModel
|
||||
|
||||
#endif // CLANGEDITORDOCUMENTPROCESSOR_H
|
||||
|
||||
Reference in New Issue
Block a user