@@ -559,10 +559,23 @@ private void ExecuteQuickFixCommand(object parameter)
559
559
}
560
560
561
561
private bool CanExecuteQuickFixCommand ( object parameter )
562
+ {
563
+ if ( ! BaseCanExecuteQuickFixCommand ( )
564
+ || ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
565
+ {
566
+ return false ;
567
+ }
568
+
569
+ var ( _, selectedResults ) = tpl ;
570
+
571
+ return selectedResults != null
572
+ && selectedResults . Count ( ) == 1 ;
573
+ }
574
+
575
+ private bool BaseCanExecuteQuickFixCommand ( )
562
576
{
563
577
return ! IsBusy
564
- && _state . Status == ParserState . Ready
565
- && parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > ;
578
+ && _state . Status == ParserState . Ready ;
566
579
}
567
580
568
581
private void ExecuteQuickFixForSelection ( object parameter )
@@ -572,25 +585,26 @@ private void ExecuteQuickFixForSelection(object parameter)
572
585
return ;
573
586
}
574
587
575
- var ( quickFix , selectedItems ) = tpl ;
588
+ var ( quickFix , selectedResults ) = tpl ;
576
589
577
590
_quickFixProvider . Fix (
578
591
quickFix ,
579
- selectedItems ) ;
592
+ selectedResults ) ;
580
593
}
581
594
582
595
public bool CanExecuteQuickFixForSelection ( object parameter )
583
596
{
584
- if ( ! CanExecuteQuickFixCommand ( parameter )
597
+ if ( ! BaseCanExecuteQuickFixCommand ( )
585
598
|| ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
586
599
{
587
600
return false ;
588
601
}
589
602
590
- var ( quickFix , selectedItems ) = tpl ;
603
+ var ( quickFix , selectedResults ) = tpl ;
591
604
592
605
return quickFix . CanFixMultiple
593
- && ( selectedItems ? . All ( result => _quickFixProvider . CanFix ( quickFix , result ) ) ?? false ) ;
606
+ && selectedResults != null
607
+ && selectedResults . All ( result => _quickFixProvider . CanFix ( quickFix , result ) ) ;
594
608
}
595
609
596
610
private void ExecuteQuickFixInProcedureCommand ( object parameter )
@@ -612,15 +626,17 @@ private void ExecuteQuickFixInProcedureCommand(object parameter)
612
626
613
627
public bool CanExecuteQuickFixInProcedure ( object parameter )
614
628
{
615
- if ( ! CanExecuteQuickFixCommand ( parameter )
629
+ if ( ! BaseCanExecuteQuickFixCommand ( )
616
630
|| ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
617
631
{
618
632
return false ;
619
633
}
620
634
621
- var ( quickFix , _ ) = tpl ;
635
+ var ( quickFix , selectedResults ) = tpl ;
622
636
623
- return quickFix . CanFixInProcedure ;
637
+ return quickFix . CanFixInProcedure
638
+ && selectedResults != null
639
+ && selectedResults . Count ( ) == 1 ;
624
640
}
625
641
626
642
private void ExecuteQuickFixInModuleCommand ( object parameter )
@@ -642,15 +658,17 @@ private void ExecuteQuickFixInModuleCommand(object parameter)
642
658
643
659
public bool CanExecuteQuickFixInModule ( object parameter )
644
660
{
645
- if ( ! CanExecuteQuickFixCommand ( parameter )
661
+ if ( ! BaseCanExecuteQuickFixCommand ( )
646
662
|| ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
647
663
{
648
664
return false ;
649
665
}
650
666
651
- var ( quickFix , _ ) = tpl ;
667
+ var ( quickFix , selectedResults ) = tpl ;
652
668
653
- return quickFix . CanFixInModule ;
669
+ return quickFix . CanFixInModule
670
+ && selectedResults != null
671
+ && selectedResults . Count ( ) == 1 ;
654
672
}
655
673
656
674
private void ExecuteQuickFixInProjectCommand ( object parameter )
@@ -672,15 +690,17 @@ private void ExecuteQuickFixInProjectCommand(object parameter)
672
690
673
691
public bool CanExecuteQuickFixInProject ( object parameter )
674
692
{
675
- if ( ! CanExecuteQuickFixCommand ( parameter )
693
+ if ( ! BaseCanExecuteQuickFixCommand ( )
676
694
|| ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
677
695
{
678
696
return false ;
679
697
}
680
698
681
- var ( quickFix , _ ) = tpl ;
699
+ var ( quickFix , selectedResults ) = tpl ;
682
700
683
- return quickFix . CanFixInProject ;
701
+ return quickFix . CanFixInProject
702
+ && selectedResults != null
703
+ && selectedResults . Count ( ) == 1 ;
684
704
}
685
705
686
706
private void ExecuteQuickFixInAllProjectsCommand ( object parameter )
@@ -701,15 +721,17 @@ private void ExecuteQuickFixInAllProjectsCommand(object parameter)
701
721
702
722
public bool CanExecuteQuickFixAll ( object parameter )
703
723
{
704
- if ( ! CanExecuteQuickFixCommand ( parameter )
724
+ if ( ! BaseCanExecuteQuickFixCommand ( )
705
725
|| ! ( parameter is ValueTuple < IQuickFix , IEnumerable < IInspectionResult > > tpl ) )
706
726
{
707
727
return false ;
708
728
}
709
729
710
- var ( quickFix , _ ) = tpl ;
730
+ var ( quickFix , selectedResults ) = tpl ;
711
731
712
- return quickFix . CanFixAll ;
732
+ return quickFix . CanFixAll
733
+ && selectedResults != null
734
+ && selectedResults . Count ( ) == 1 ;
713
735
}
714
736
715
737
private void ExecuteDisableInspectionCommand ( object parameter )
0 commit comments