diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 1ca1c9f72d9df5ed387fa5c6e3b51e37ef85359f..505e97ab7d5a981daccef2154d27ffaf34a1d25a 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -416,8 +416,11 @@ void CPPEditor::updateMethodBoxIndex() const QString expression = expressionUnderCursor(tc); //qDebug() << "expression:" << expression; + Snapshot snapshot; + snapshot.insert(thisDocument->fileName(), thisDocument); + TypeOfExpression typeOfExpression; - typeOfExpression.setSnapshot(m_modelManager->snapshot()); + typeOfExpression.setSnapshot(snapshot); const QList<TypeOfExpression::Result> results = typeOfExpression(expression, thisDocument, symbol, TypeOfExpression::Preprocess); @@ -439,6 +442,19 @@ void CPPEditor::updateMethodBoxIndex() QTextCursor c(document()->findBlockByNumber(symbol->line() - 1)); c.setPosition(c.position() + column); + + const QString text = c.block().text(); + + int i = column; + for (; i < text.length(); ++i) { + const QChar &ch = text.at(i); + + if (ch == QLatin1Char('*') || ch == QLatin1Char('&')) + c.movePosition(QTextCursor::NextCharacter); + else + break; + } + c.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor); QTextEdit::ExtraSelection sel;