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

@@ -42,6 +42,8 @@ class ClangDiagnosticConfig;
class CppEditorDocumentHandle;
}
namespace TextEditor { class TextDocumentManipulatorInterface; }
namespace ClangBackEnd { class TokenInfoContainer; }
namespace ProjectExplorer { class Project; }
@@ -107,7 +109,7 @@ private:
};
template <class CharacterProvider>
void moveToPreviousChar(CharacterProvider &provider, QTextCursor &cursor)
void moveToPreviousChar(const CharacterProvider &provider, QTextCursor &cursor)
{
cursor.movePosition(QTextCursor::PreviousCharacter);
while (provider.characterAt(cursor.position()).isSpace())
@@ -123,7 +125,7 @@ void moveToPreviousWord(CharacterProvider &provider, QTextCursor &cursor)
}
template <class CharacterProvider>
bool matchPreviousWord(CharacterProvider &provider, QTextCursor cursor, QString pattern)
bool matchPreviousWord(const CharacterProvider &provider, QTextCursor cursor, QString pattern)
{
cursor.movePosition(QTextCursor::PreviousWord);
while (provider.characterAt(cursor.position()) == ':')
@@ -151,5 +153,11 @@ bool matchPreviousWord(CharacterProvider &provider, QTextCursor cursor, QString
return pattern.isEmpty();
}
QString textUntilPreviousStatement(TextEditor::TextDocumentManipulatorInterface &manipulator,
int startPosition);
bool isAtUsingDeclaration(TextEditor::TextDocumentManipulatorInterface &manipulator,
int basePosition);
} // namespace Internal
} // namespace Clang