diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index c591ecfe2c7..25049089aab 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -70,6 +70,7 @@ #include #include +#include #include #include #include @@ -373,8 +374,13 @@ void QmlJSEditorWidget::updateUses() return; QList selections; - foreach (const SourceLocation &loc, - m_qmlJsEditorDocument->semanticInfo().idLocations.value(wordUnderCursor())) { + QList locations + = m_qmlJsEditorDocument->semanticInfo().idLocations.value(wordUnderCursor()); + // code model may present the locations not in a document order + Utils::sort(locations, [](const SourceLocation &lhs, const SourceLocation &rhs) { + return lhs.begin() < rhs.begin(); + }); + for (const SourceLocation &loc : qAsConst(locations)) { if (! loc.isValid()) continue;