forked from qt-creator/qt-creator
Locator: Use extra info as secondary sorting criterion for C++
... classes and functions. The extra info is usually the scope or the file, so this effectively adds some helpful grouping. Fixes: QTCREATORBUG-2538 Change-Id: I2404fee1df88fc51871a72db0dcc9c75d6ba6dcb Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -97,7 +97,12 @@ struct LocatorFilterEntry
|
||||
static bool compareLexigraphically(const Core::LocatorFilterEntry &lhs,
|
||||
const Core::LocatorFilterEntry &rhs)
|
||||
{
|
||||
return lhs.displayName < rhs.displayName;
|
||||
const int cmp = lhs.displayName.compare(rhs.displayName);
|
||||
if (cmp < 0)
|
||||
return true;
|
||||
if (cmp > 0)
|
||||
return false;
|
||||
return lhs.extraInfo < rhs.extraInfo;
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -173,21 +173,21 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
|
||||
<< cppFunctionsFilter
|
||||
<< "function"
|
||||
<< ResultDataList{
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)", "MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)", "MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClassAndNamespace(float)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", testFileShort),
|
||||
ResultData("myFunction(bool, int)", "<anonymous namespace> (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", "MyNamespace (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", "<anonymous namespace> (file1.cpp)")
|
||||
ResultData("myFunction(bool, int)", testFileShort)
|
||||
};
|
||||
|
||||
QTest::newRow("CppFunctionsFilter-Sorting")
|
||||
@@ -206,15 +206,15 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
|
||||
<< cppFunctionsFilter
|
||||
<< "function*bool"
|
||||
<< ResultDataList{
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", testFileShort),
|
||||
ResultData("myFunction(bool, int)", "<anonymous namespace> (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", "MyNamespace (file1.cpp)"),
|
||||
ResultData("myFunction(bool, int)", "<anonymous namespace> (file1.cpp)")
|
||||
ResultData("myFunction(bool, int)", testFileShort)
|
||||
};
|
||||
|
||||
QTest::newRow("CppFunctionsFilter-WithNamespacePrefix")
|
||||
@@ -237,18 +237,18 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
|
||||
<< cppFunctionsFilter
|
||||
<< "MyClass::func"
|
||||
<< ResultDataList{
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedInClass(bool, int)",
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClass(char)",
|
||||
"<anonymous namespace>::MyClass (file1.cpp)"),
|
||||
ResultData("functionDefinedOutSideClassAndNamespace(float)",
|
||||
"MyNamespace::MyClass (file1.cpp)"),
|
||||
};
|
||||
@@ -258,9 +258,9 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data()
|
||||
<< cppClassesFilter
|
||||
<< "myclass"
|
||||
<< ResultDataList{
|
||||
ResultData("MyClass", testFileShort),
|
||||
ResultData("MyClass", "<anonymous namespace>"),
|
||||
ResultData("MyClass", "MyNamespace"),
|
||||
ResultData("MyClass", "<anonymous namespace>")
|
||||
ResultData("MyClass", testFileShort)
|
||||
};
|
||||
|
||||
QTest::newRow("CppClassesFilter-WithNamespacePrefix")
|
||||
|
Reference in New Issue
Block a user