diff --git a/internal/buffer/line_array.go b/internal/buffer/line_array.go index eecb6b5904..4016ab18e0 100644 --- a/internal/buffer/line_array.go +++ b/internal/buffer/line_array.go @@ -386,6 +386,13 @@ func (la *LineArray) SearchMatch(b *Buffer, pos Loc) bool { } lineN := pos.Y + + // Prevent crash if the highlighting occurs during a line deletion, + // before the draw position is updated. + if lineN >= len(la.lines) { + return false + } + if la.lines[lineN].search == nil { la.lines[lineN].search = make(map[*Buffer]*searchState) }