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
+8
View File
@@ -7,8 +7,14 @@ import (
func combineLineMatch(src, dst LineMatch) LineMatch { func combineLineMatch(src, dst LineMatch) LineMatch {
for k, v := range src { for k, v := range src {
if g, ok := dst[k]; ok {
if g == "" {
dst[k] = v dst[k] = v
} }
} else {
dst[k] = v
}
}
return dst return dst
} }
@@ -123,9 +129,11 @@ 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
if _, ok := highlights[start+m[1]]; !ok {
highlights[start+m[1]] = "" highlights[start+m[1]] = ""
} }
} }
}
if canMatchEnd { if canMatchEnd {
h.states[lineNum] = nil h.states[lineNum] = nil