Core: Allow different highlight colors in search result window

... and make use of that in CppTool's "Find Usages" by assigning
different colors to read and write accesses.

Fixes: QTCREATORBUG-12734
Change-Id: I067db2c8d693bb2c5be44249931ee4f0269f7e52
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Christian Kandeler
2020-09-10 14:33:14 +02:00
parent 03983a2648
commit 4376bc1e39
24 changed files with 128 additions and 65 deletions

View File

@@ -551,13 +551,23 @@ static void displayResults(SearchResult *search, QFutureWatcher<CPlusPlus::Usage
{
CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>();
static const auto colorStyleForUsageType = [](CPlusPlus::Usage::Type type) {
switch (type) {
case CPlusPlus::Usage::Type::Read:
return SearchResultColor::Style::Alt1;
case CPlusPlus::Usage::Type::Write:
case CPlusPlus::Usage::Type::WritableRef:
return SearchResultColor::Style::Alt2;
case CPlusPlus::Usage::Type::Declaration:
case CPlusPlus::Usage::Type::Other:
return SearchResultColor::Style::Default;
}
return SearchResultColor::Style::Default; // For dumb compilers.
};
for (int index = first; index != last; ++index) {
CPlusPlus::Usage result = watcher->future().resultAt(index);
search->addResult(result.path.toString(),
result.line,
result.lineText,
result.col,
result.len);
const CPlusPlus::Usage result = watcher->future().resultAt(index);
search->addResult(result.path.toString(), result.line, result.lineText,
result.col, result.len, {}, colorStyleForUsageType(result.type));
if (parameters.prettySymbolName.isEmpty())
continue;