From 4899e133c9cc6736925e4860f560a0105e61edfd Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 28 May 2021 14:12:10 +0200 Subject: [PATCH] ClangCodeModel: Keep base declaration on top ... when presenting the list of virtual overrides, as we do in the built-in code model. Change-Id: I2598438f78cd9d9a7ddc1620391cea51d7e2da42 Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangdclient.cpp | 10 ++++++---- .../followsymbol_switchmethoddecldef_test.cpp | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index f39df0aeeb8..2eea1c1f46d 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1162,10 +1162,12 @@ void ClangdClient::VirtualFunctionAssistProcessor::finalize() const auto item = new CppTools::VirtualFunctionProposalItem( link, m_data->followSymbolData->openInSplit); QString text = symbol.first; - if (isOriginalLink - && (m_data->followSymbolData->defLinkNode.isPureVirtualDeclaration() - || m_data->followSymbolData->defLinkNode.isPureVirtualDefinition())) { - text += " = 0"; + if (isOriginalLink) { + item->setOrder(1000); // Ensure base declaration is on top. + if (m_data->followSymbolData->defLinkNode.isPureVirtualDeclaration() + || m_data->followSymbolData->defLinkNode.isPureVirtualDefinition()) { + text += " = 0"; + } } item->setText(text); items << item; diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index 75f70497472..fbd23e1bd0b 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -516,8 +516,6 @@ F2TestCase::F2TestCase(CppEditorAction action, if (useClangd) QEXPECT_FAIL("allOverrides from base declaration", "FIXME: check why this fails", Abort); QCOMPARE(finalVirtualSymbolResults.size(), expectedVirtualFunctionProposal.size()); - if (useClangd) - QEXPECT_FAIL("itemOrder", "FIXME: sort items", Abort); QCOMPARE(finalVirtualSymbolResults, expectedVirtualFunctionProposal); }