diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index dfcd3ac2fe0e0ce04fba12a48874490e25c5e2a8..9e884448bf58cace91fffaa5ee3ddaf84e53187e 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -47,6 +47,7 @@ #include <cplusplus/Overview.h> #include <cplusplus/OverviewModel.h> #include <cplusplus/SimpleLexer.h> +#include <cplusplus/TokenUnderCursor.h> #include <cplusplus/TypeOfExpression.h> #include <cpptools/cppmodelmanagerinterface.h> @@ -627,13 +628,15 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor) tc.movePosition(QTextCursor::PreviousWord, QTextCursor::KeepAnchor); const int nameStart = tc.position(); const int nameLength = tc.anchor() - tc.position(); + tc.setPosition(endOfName); - // Drop out if we're at a number - if (characterAt(nameStart).isNumber()) + // Drop out if we're at a number, string or comment + static TokenUnderCursor tokenUnderCursor; + const SimpleToken tk = tokenUnderCursor(tc); + if (tk.isLiteral() || tk.isComment()) return link; // Evaluate the type of the expression under the cursor - tc.setPosition(endOfName); ExpressionUnderCursor expressionUnderCursor; const QString expression = expressionUnderCursor(tc); TypeOfExpression typeOfExpression;