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;