private void highlightSearch(final boolean noSmartCase) { Project[] projects = ProjectManager.getInstance().getOpenProjects(); for (Project project : projects) { Editor current = FileEditorManager.getInstance(project).getSelectedTextEditor(); Editor[] editors = current == null ? null : EditorFactory.getInstance().getEditors(current.getDocument(), project); if (editors == null) { continue; } for (final Editor editor : editors) { String els = EditorData.getLastSearch(editor); if (!showSearchHighlight) { removeSearchHighlight(editor); continue; } else if (lastSearch != null && lastSearch.equals(els)) { continue; } else if (lastSearch == null) { continue; } removeSearchHighlight(editor); highlightSearchLines(editor, lastSearch, 0, -1, shouldIgnoreCase(lastSearch, noSmartCase)); EditorData.setLastSearch(editor, lastSearch); } } }
private static void removeSearchHighlight(@NotNull Editor editor) { Collection<RangeHighlighter> ehl = EditorData.getLastHighlights(editor); if (ehl == null) { return; } for (RangeHighlighter rh : ehl) { editor.getMarkupModel().removeHighlighter(rh); } ehl.clear(); EditorData.setLastHighlights(editor, null); EditorData.setLastSearch(editor, null); }