void UpdateAdornmentsWorker() { //var analysisLines = Analysis.Lines; //if (Analysis.Snapshot != View.TextSnapshot) { // var task = Analysis.Update(); // if (task != null) { // UpdateAdornments(task); // } // return; //} else if (analysisLines == null) { // UpdateAdornments(Analysis.Reset()); // return; //} if (!GlobalVisible) { Canvas.Visibility = Visibility.Collapsed; return; } Canvas.Visibility = Visibility.Visible; var snapshot = View.TextSnapshot; var viewModel = View.TextViewModel; if (snapshot == null || viewModel == null) { return; } var firstVisibleLine = View.TextViewLines.FirstOrDefault(line => line.IsFirstTextViewLineForSnapshotLine); if (firstVisibleLine == null) { return; } var lastVisibleLine = View.TextViewLines.LastOrDefault(line => line.IsLastTextViewLineForSnapshotLine); if (lastVisibleLine == null) { return; } var analysisLines = Analysis.GetLines( firstVisibleLine.Start.GetContainingLine().LineNumber, lastVisibleLine.Start.GetContainingLine().LineNumber ); if (!analysisLines.Any()) { return; } #if PERFORMANCE object cookie = null; try { PerformanceLogger.Start(ref cookie); UpdateAdornments_Performance( snapshot, viewModel, firstVisibleLine, analysisLines ); } catch (OperationCanceledException) { PerformanceLogger.Mark("Cancel"); throw; } finally { PerformanceLogger.End(cookie); } }