Fix region overwriting in combine line match

This commit is contained in:
Zachary Yedidia
2017-02-12 13:44:04 -05:00
parent 5a939241ee
commit 2d6c6001b0
+10 -2
View File
@@ -7,7 +7,13 @@ import (
func combineLineMatch(src, dst LineMatch) LineMatch { func combineLineMatch(src, dst LineMatch) LineMatch {
for k, v := range src { for k, v := range src {
dst[k] = v if g, ok := dst[k]; ok {
if g == "" {
dst[k] = v
}
} else {
dst[k] = v
}
} }
return dst return dst
} }
@@ -123,7 +129,9 @@ func (h *Highlighter) highlightEmptyRegion(start int, canMatchEnd bool, lineNum
matches := FindAllIndex(p.regex, line, start == 0, canMatchEnd) matches := FindAllIndex(p.regex, line, start == 0, canMatchEnd)
for _, m := range matches { for _, m := range matches {
highlights[start+m[0]] = p.group highlights[start+m[0]] = p.group
highlights[start+m[1]] = "" if _, ok := highlights[start+m[1]]; !ok {
highlights[start+m[1]] = ""
}
} }
} }