ClangCodeModel: Use clangd for completion and function hint

Change-Id: I80160f3a40da18ac178682afe6caba5e5af6e3eb
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2021-06-18 16:30:03 +02:00
parent 67d2a4186b
commit e0e8fda580
62 changed files with 1569 additions and 187 deletions

View File

@@ -41,7 +41,9 @@ namespace Internal {
class ActivationSequenceContextProcessor
{
public:
ActivationSequenceContextProcessor(const ClangCompletionAssistInterface *assistInterface);
ActivationSequenceContextProcessor(QTextDocument *document, int position,
CPlusPlus::LanguageFeatures languageFeatures);
ActivationSequenceContextProcessor(const ClangCompletionAssistInterface *interface);
CPlusPlus::Kind completionKind() const;
int startOfNamePosition() const; // e.g. points to 'b' in "foo.bar<CURSOR>"
@@ -50,10 +52,10 @@ public:
const QTextCursor &textCursor_forTestOnly() const;
enum class NameCategory { Function, NonFunction };
static int findStartOfName(const TextEditor::AssistInterface *assistInterface,
static int findStartOfName(const QTextDocument *document,
int startPosition,
NameCategory category = NameCategory::NonFunction);
static int skipPrecedingWhitespace(const TextEditor::AssistInterface *assistInterface,
static int skipPrecedingWhitespace(const QTextDocument *document,
int startPosition);
protected:
@@ -78,7 +80,8 @@ private:
QVector<CPlusPlus::Token> m_tokens;
QTextCursor m_textCursor;
CPlusPlus::Token m_token;
const ClangCompletionAssistInterface *m_assistInterface;
QTextDocument * const m_document;
const CPlusPlus::LanguageFeatures m_languageFeatures;
int m_tokenIndex;
const int m_positionInDocument;
int m_startOfNamePosition;