Skip to content

Commit 5294bf1

Browse files
alurmarijnh
authored andcommitted
[vim] throttle highlightSearchMatches
This should prevent it from falling behind trying to highlight previous queries while you're typing.
1 parent 3446b79 commit 5294bf1

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

keymap/vim.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4229,23 +4229,27 @@
42294229
query: query
42304230
};
42314231
}
4232+
var highlightTimeout = 0;
42324233
function highlightSearchMatches(cm, query) {
4233-
var searchState = getSearchState(cm);
4234-
var overlay = searchState.getOverlay();
4235-
if (!overlay || query != overlay.query) {
4236-
if (overlay) {
4237-
cm.removeOverlay(overlay);
4238-
}
4239-
overlay = searchOverlay(query);
4240-
cm.addOverlay(overlay);
4241-
if (cm.showMatchesOnScrollbar) {
4242-
if (searchState.getScrollbarAnnotate()) {
4243-
searchState.getScrollbarAnnotate().clear();
4234+
clearTimeout(highlightTimeout);
4235+
highlightTimeout = setTimeout(function() {
4236+
var searchState = getSearchState(cm);
4237+
var overlay = searchState.getOverlay();
4238+
if (!overlay || query != overlay.query) {
4239+
if (overlay) {
4240+
cm.removeOverlay(overlay);
4241+
}
4242+
overlay = searchOverlay(query);
4243+
cm.addOverlay(overlay);
4244+
if (cm.showMatchesOnScrollbar) {
4245+
if (searchState.getScrollbarAnnotate()) {
4246+
searchState.getScrollbarAnnotate().clear();
4247+
}
4248+
searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query));
42444249
}
4245-
searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query));
4250+
searchState.setOverlay(overlay);
42464251
}
4247-
searchState.setOverlay(overlay);
4248-
}
4252+
}, 50);
42494253
}
42504254
function findNext(cm, prev, query, repeat) {
42514255
if (repeat === undefined) { repeat = 1; }

0 commit comments

Comments
 (0)