fix highlighting issue with overlapping ranges

This commit is contained in:
Benjamin Pasero
2015-12-11 11:17:21 +01:00
parent 661d832744
commit b5ac76e800

View File

@@ -200,11 +200,20 @@ export class QuickOpenEntry {
let pathHighlights = Filters.matchesFuzzy(lookFor, pathPrefix + entry.getLabel(), true);
if (pathHighlights) {
pathHighlights.forEach(h => {
if (h.start >= pathPrefixLength) {
h.start -= (pathPrefixLength);
h.end -= (pathPrefixLength);
labelHighlights.push(h);
} else {
// Match overlaps label and description part, we need to split it up
if (h.start < pathPrefixLength && h.end > pathPrefixLength) {
labelHighlights.push({ start: 0, end: h.end - pathPrefixLength });
descriptionHighlights.push({ start: h.start, end: pathPrefixLength });
}
// Match on label part
else if (h.start >= pathPrefixLength) {
labelHighlights.push({ start: h.start - pathPrefixLength, end: h.end - pathPrefixLength });
}
// Match on description part
else {
descriptionHighlights.push(h);
}
});