forked from qt-creator/qt-creator
CppLocatorFilter: Fix highlighting in extra info column
Given the following example: typedef int value; void value_test(void) {} void test(value v) {} searching for "value" findes both candidates; and for the locator filters "m" and "." highlighting already worked fine. For the locator filter ":", however, the arguments are displayed in the extraInfo column. To get proper highlighting here, we have to repeat the regexp match in this column. While fixing that, make sure that full-qualified searches (separated by "::") are still highlighted properly. For the Clang Code Model, there is still a bug not addressed by this patch: Ctrl+K with ". value" -> "value" isn't highlighted yellow. Change-Id: Idd5eeeedb893151cd5c7f70f6b11397db788b706 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
committed by
André Hartmann
parent
845fd8d533
commit
92daed1f6c
@@ -108,7 +108,12 @@ QList<Core::LocatorFilterEntry> CppLocatorFilter::matchesFor(
|
||||
matchOffset = 0;
|
||||
}
|
||||
filterEntry.highlightInfo = highlightInfo(match);
|
||||
if (matchOffset > 0) {
|
||||
if (matchInParameterList && filterEntry.highlightInfo.starts.isEmpty()) {
|
||||
match = regexp.match(filterEntry.extraInfo);
|
||||
filterEntry.highlightInfo = highlightInfo(match);
|
||||
filterEntry.highlightInfo.dataType =
|
||||
Core::LocatorFilterEntry::HighlightInfo::ExtraInfo;
|
||||
} else if (matchOffset > 0) {
|
||||
for (int &start : filterEntry.highlightInfo.starts)
|
||||
start -= matchOffset;
|
||||
}
|
||||
|
Reference in New Issue
Block a user