rubberduck-vba / Rubberduck
Showing 1 of 1 files from the diff.

@@ -230,9 +230,12 @@
Loading
230 230
                }
231 231
232 232
                _grouping = value;
233 -
                // updating GroupDescriptions forces a Refresh
234 -
                Results.GroupDescriptions.Clear();
235 -
                Results.GroupDescriptions.Add(GroupDescriptions[_grouping]);
233 +
                // Deferring refresh to avoid a rerendering without grouping
234 +
                using (Results.DeferRefresh())
235 +
                {
236 +
                    Results.GroupDescriptions.Clear();
237 +
                    Results.GroupDescriptions.Add(GroupDescriptions[_grouping]);
238 +
                }
236 239
                OnPropertyChanged();
237 240
            }
238 241
        }
@@ -308,7 +311,6 @@
Loading
308 311
        }
309 312
310 313
        private bool _canQuickFix;
311 -
312 314
        public bool CanQuickFix
313 315
        {
314 316
            get => _canQuickFix;
@@ -445,13 +447,12 @@
Loading
445 447
                }
446 448
447 449
                stopwatch.Stop();
448 -
                LogManager.GetCurrentClassLogger().Trace("Inspection results rendered in {0}ms", stopwatch.ElapsedMilliseconds);
450 +
                Logger.Trace("Inspection results rendered in {0}ms", stopwatch.ElapsedMilliseconds);
449 451
            });
450 452
        }
451 453
452 -
        private void InvalidateStaleInspectionResults(ICollection<QualifiedModuleName> modifiedModules)
454 +
        private void InvalidateUIStaleInspectionResults(ICollection<IInspectionResult> staleResults)
453 455
        {
454 -
            var staleResults = _results.Where(result => result.ChangesInvalidateResult(modifiedModules)).ToList();
455 456
            _uiDispatcher.Invoke(() =>
456 457
            {
457 458
                foreach (var staleResult in staleResults)
@@ -462,6 +463,13 @@
Loading
462 463
            });
463 464
        }
464 465
466 +
        private void InvalidateStaleInspectionResults(ICollection<QualifiedModuleName> modifiedModules)
467 +
        {
468 +
            // materialize the collection to take work off of the UI thread
469 +
            var staleResults = _results.Where(result => result.ChangesInvalidateResult(modifiedModules)).ToList();
470 +
            InvalidateUIStaleInspectionResults(staleResults);
471 +
        }
472 +
465 473
        private void ExecuteQuickFixCommand(object parameter)
466 474
        {
467 475
            var quickFix = parameter as IQuickFix;
@@ -554,14 +562,12 @@
Loading
554 562
555 563
            Task.Run(() => _configService.Save(config));
556 564
557 -
            _uiDispatcher.Invoke(() =>
558 -
            {
559 -
                RefreshCommand.Execute(null);
560 -
            });
565 +
            // remove inspection results of the selected inspection from the UI
566 +
            // collection is materialized to take work off of the UI thread
567 +
            InvalidateUIStaleInspectionResults(_results.Where(i => i.Inspection == _selectedInspection).ToList());
561 568
        }
562 569
563 570
        private bool _canDisableInspection;
564 -
565 571
        public bool CanDisableInspection
566 572
        {
567 573
            get => _canDisableInspection;
Files Coverage
Rubberduck.CodeAnalysis 88.85%
Rubberduck.Core 32.02%
Rubberduck.Interaction 9.80%
Rubberduck.Main 46.71%
Rubberduck.Parsing 80.37%
Rubberduck.Refactorings 89.20%
Rubberduck.RegexAssistant 65.19%
Rubberduck.Resources 66.67%
Rubberduck.SettingsProvider 31.72%
Rubberduck.SmartIndenter 78.72%
Rubberduck.UnitTesting 68.22%
RubberduckCodeAnalysis 60.62%
Rubberduck.JunkDrawer/Output/StringExtensions.cs 87.50%
Project Totals (1079 files) 64.23%
vwvjs6a9s3trx440
1
codecov:
2
  branch: next
3
  ci:
4
    - appveyor
5
  max_report_age: off
6
  
7
ignore:
8
  # as requested by MDoerner, because they aren't really testable
9
  - Rubberduck.VBEEditor
10
  - Rubberduck.VBEditor.*
11
  # it makes no sense to track coverage on unit-tests
12
  - RubberduckTests
13
  # xaml files are not checked for coverage
14
  # AutoGenerated files are not contributing to coverage
15
  - **/*.Designer.cs
16
    
17
coverage:
18
  round: nearest
19
  precision: 2
20
  range: 40..80 
21
  status:
22
    # don't check patch coverage
23
    patch: off
24
    project:
25
      default:
26
        target: 0 # don't force a minimum coverage
27
        # allow decrease by up to 5 %
28
        threshold: 5
29
        base: auto
30
  
31
comment:
32
  layout: "flags, diff, files"
33
  behavior: once
34
  require_changes: yes
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading