public void RefreshSearchMarker ()
{
if (textEditor.HighlightSearchPattern) {
DisposeSearchPatternWorker ();
SearchWorkerArguments args = new SearchWorkerArguments () {
FirstLine = YToLine (textEditor.VAdjustment.Value),
LastLine = YToLine (textEditor.Allocation.Height + textEditor.VAdjustment.Value),
OldRegions = selectedRegions,
Engine = textEditor.GetTextEditorData ().SearchEngine.Clone (),
Text = textEditor.Text
};
if (string.IsNullOrEmpty (textEditor.SearchPattern)) {
if (selectedRegions.Count > 0) {
UpdateRegions (selectedRegions, args);
selectedRegions.Clear ();
}
return;
}
searchPatternWorker = new System.ComponentModel.BackgroundWorker ();
searchPatternWorker.WorkerSupportsCancellation = true;
searchPatternWorker.DoWork += SearchPatternWorkerDoWork;
searchPatternWorker.RunWorkerAsync (args);
}
}