From d45418446767577793392be5b62b592b09f07595 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 23 Aug 2022 12:53:01 +0200 Subject: [PATCH] ClangCodeModel: Use central functions for getting token positions Change-Id: I192e2807067467906b38e164933755f763133cb4 Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: David Schulz --- src/libs/3rdparty/cplusplus/TranslationUnit.cpp | 7 +++++++ src/libs/3rdparty/cplusplus/TranslationUnit.h | 1 + src/plugins/clangcodemodel/clangdclient.cpp | 8 ++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/libs/3rdparty/cplusplus/TranslationUnit.cpp b/src/libs/3rdparty/cplusplus/TranslationUnit.cpp index 0e396166ce3..62f4c570c79 100644 --- a/src/libs/3rdparty/cplusplus/TranslationUnit.cpp +++ b/src/libs/3rdparty/cplusplus/TranslationUnit.cpp @@ -392,6 +392,13 @@ int TranslationUnit::getTokenPositionInDocument(int index, const QTextDocument * return Utils::Text::positionInText(doc, line, column); } +int TranslationUnit::getTokenEndPositionInDocument(int index, const QTextDocument *doc) const +{ + int line, column; + getTokenEndPosition(index, &line, &column); + return Utils::Text::positionInText(doc, line, column); +} + void TranslationUnit::getTokenStartPosition(int index, int *line, int *column, const StringLiteral **fileName) const diff --git a/src/libs/3rdparty/cplusplus/TranslationUnit.h b/src/libs/3rdparty/cplusplus/TranslationUnit.h index 38c680994e9..9694177a752 100644 --- a/src/libs/3rdparty/cplusplus/TranslationUnit.h +++ b/src/libs/3rdparty/cplusplus/TranslationUnit.h @@ -129,6 +129,7 @@ public: const StringLiteral **fileName = nullptr) const; int getTokenPositionInDocument(int index, const QTextDocument *doc) const; + int getTokenEndPositionInDocument(int index, const QTextDocument *doc) const; void pushLineOffset(int offset); void pushPreprocessorLine(int utf16charOffset, diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index e929dd39e28..d183dc304d5 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1116,14 +1116,10 @@ QTextCursor ClangdClient::Private::adjustedCursor(const QTextCursor &cursor, return cursor; const TranslationUnit * const tu = cppDoc->translationUnit(); const auto posForToken = [doc, tu](int tok) { - int line, column; - tu->getTokenPosition(tok, &line, &column); - return Utils::Text::positionInText(doc->document(), line, column); + return tu->getTokenPositionInDocument(tok, doc->document()); }; const auto endPosForToken = [doc, tu](int tok) { - int line, column; - tu->getTokenEndPosition(tok, &line, &column); - return Utils::Text::positionInText(doc->document(), line, column); + return tu->getTokenEndPositionInDocument(tok, doc->document()); }; const auto leftMovedCursor = [cursor] { QTextCursor c = cursor;