private void ReplaceRanges(object sender, MatchesWithReplacementEventArgs e)
 {
     Contract.Requires(e.Matches.All(m => m.Range.Start >= 0 && m.Range.End <= current.Document.Content.Length));
     System.Diagnostics.Trace.WriteLine("ReplaceRanges: " + e.Matches);
     try
     {
         current.ReplaceRanges(e.Matches);
     }
     catch (Exception err)
     {
         System.Diagnostics.Trace.WriteLine(err);
         sidebar.InvalidateRanges(e.CheckId, e.Matches);
     }
 }