Clang: implement requestFollowSymbol plug-in side

Invoke follow symbol in clang backend
if env variable QTC_CLANG_FOLLOW_SYMBOL is 1.
Does not include backend implementation.

Change-Id: Ia20a677830ebdd7f24800af5c5d6e8b1bf579205
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2017-07-27 11:42:37 +02:00
parent 4ad0e5295c
commit e6a50fd44a
17 changed files with 259 additions and 14 deletions

View File

@@ -27,6 +27,7 @@
#include <cpptools/projectpart.h>
#include <cpptools/cppcursorinfo.h>
#include <cpptools/cppsymbolinfo.h>
#include <clangbackendipc/clangcodemodelconnectionclient.h>
#include <clangbackendipc/filecontainer.h>
@@ -77,6 +78,7 @@ public:
QFuture<CppTools::CursorInfo> addExpectedReferencesMessage(quint64 ticket,
QTextDocument *textDocument);
QFuture<CppTools::SymbolInfo> addExpectedRequestFollowSymbolMessage(quint64 ticket);
bool isExpectingCodeCompletedMessage() const;
void reset();
@@ -107,6 +109,8 @@ private:
QPointer<QTextDocument> textDocument;
};
QHash<quint64, ReferencesEntry> m_referencesTable;
QHash<quint64, QFutureInterface<CppTools::SymbolInfo>> m_followTable;
};
class IpcSenderInterface
@@ -154,6 +158,11 @@ public:
QFuture<CppTools::CursorInfo> requestReferences(const FileContainer &fileContainer,
quint32 line,
quint32 column, QTextDocument *textDocument);
QFuture<CppTools::SymbolInfo> requestFollowSymbol(const FileContainer &curFileContainer,
const QVector<Utf8String> &dependentFiles,
quint32 line,
quint32 column,
bool resolveTarget);
void completeCode(ClangCompletionAssistProcessor *assistProcessor, const QString &filePath,
quint32 line,
quint32 column,