message: Update search highlights for all visible editors immediately
  Fixes
diff: @@ -44,6 +44,8 @@ import {
  import { globalState } from '../state/globalState';
  import { reportSearch } from '../util/statusBarTextUtils';
  import { Notation } from '../configuration/notation';
  +import { ModeHandlerMap } from './modeHandlerMap';
  +import { EditorIdentity } from '../editorIdentity';
  /**
  * ModeHandler is the extension's backbone. It listens to events and updates the VimState.
  @@ -1176,6 +1178,14 @@ export class ModeHandler implements vscode.Disposable {
  return vimState;
  }
  + public updateSearchHighlights(showHighlights: boolean) {
  + let searchRanges: vscode.Range[] = [];
  + if (showHighlights) {
  + searchRanges = globalState.searchState?.getMatchRanges(this.vimState.editor.document) ?? [];
  + }
  + this.vimState.editor.setDecorations(decoration.SearchHighlight, searchRanges);
  + }
  +
  public async updateView(
  vimState: VimState,
  args: { drawSelection: boolean; revealRange: boolean } = {
  @@ -1344,28 +1354,12 @@ export class ModeHandler implements vscode.Disposable {
  // TODO: draw marks (#3963)
  - // Draw search highlight
  - let searchRanges: vscode.Range[] = [];
  - if (
  - globalState.searchState &&
  - ((configuration.incsearch && this.currentMode === Mode.SearchInProgressMode) ||
  - (configuration.hlsearch && globalState.hl))
  - ) {
  - searchRanges.push.apply(searchRanges, globalState.searchState.getMatchRanges());
  -
  - const nextMatch = globalState.searchState.getNextSearchMatchRange(
  - vimState.cursorStopPosition
  - );
  -
  - // TODO: why are we putting the next match in separately; isn't this redundant?
  - if (nextMatch) {
  - const { start, end, match } = nextMatch;
  - if (match) {
  - searchRanges.push(new vscode.Range(start, end));
  + const showHighlights =
  + (configuration.incsearch && this.currentMode === Mode.SearchInProgressMode) ||
  + (configuration.hlsearch && globalState.hl);
  + for (const editor of vscode.window.visibleTextEditors) {
  + ModeHandlerMap.get(EditorIdentity.fromEditor(editor))?.updateSearchHighlights(showHighlights);
  }
  - }
  - }
  - this.vimState.editor.setDecorations(decoration.SearchHighlight, searchRanges);
  const easyMotionHighlightRanges =
  this.currentMode === Mode.EasyMotionInputMode
  