11using System . Collections . Generic ;
22using Rubberduck . Parsing . Inspections . Resources ;
33using Rubberduck . SettingsProvider ;
4+ using Rubberduck . Parsing . Inspections . Abstract ;
5+ using System . Linq ;
46
57namespace Rubberduck . Settings
68{
79 public class CodeInspectionConfigProvider : IConfigProvider < CodeInspectionSettings >
810 {
911 private readonly IPersistanceService < CodeInspectionSettings > _persister ;
12+ private readonly IEnumerable < IInspection > _foundInspections ;
1013
11- public CodeInspectionConfigProvider ( IPersistanceService < CodeInspectionSettings > persister )
14+ public CodeInspectionConfigProvider ( IPersistanceService < CodeInspectionSettings > persister , IEnumerable < IInspection > foundInspections )
1215 {
1316 _persister = persister ;
17+ _foundInspections = foundInspections ;
1418 }
1519
1620 public CodeInspectionSettings Create ( )
@@ -29,61 +33,9 @@ public void Save(CodeInspectionSettings settings)
2933 _persister . Save ( settings ) ;
3034 }
3135
32- public HashSet < CodeInspectionSetting > GetDefaultCodeInspections ( )
36+ public IEnumerable < CodeInspectionSetting > GetDefaultCodeInspections ( )
3337 {
34- // https://github.com/rubberduck-vba/Rubberduck/issues/3021
35- return new HashSet < CodeInspectionSetting >
36- {
37- new CodeInspectionSetting ( "ApplicationWorksheetFunctionInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Suggestion ) ,
38- new CodeInspectionSetting ( "AssignedByValParameterInspection" , CodeInspectionType . LanguageOpportunities ) ,
39- new CodeInspectionSetting ( "ConstantNotUsedInspection" , CodeInspectionType . CodeQualityIssues ) ,
40- new CodeInspectionSetting ( "DefaultProjectNameInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Suggestion ) ,
41- new CodeInspectionSetting ( "EmptyIfBlockInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Hint ) ,
42- new CodeInspectionSetting ( "EmptyStringLiteralInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
43- new CodeInspectionSetting ( "EncapsulatePublicFieldInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Hint ) ,
44- new CodeInspectionSetting ( "FunctionReturnValueNotUsedInspection" , CodeInspectionType . CodeQualityIssues ) ,
45- new CodeInspectionSetting ( "HostSpecificExpressionInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
46- new CodeInspectionSetting ( "HungarianNotationInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
47- new CodeInspectionSetting ( "IllegalAnnotationInspection" , CodeInspectionType . RubberduckOpportunities , CodeInspectionSeverity . Error ) ,
48- new CodeInspectionSetting ( "ImplicitActiveSheetReferenceInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
49- new CodeInspectionSetting ( "ImplicitActiveWorkbookReferenceInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
50- new CodeInspectionSetting ( "ImplicitByRefParameterInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
51- new CodeInspectionSetting ( "ImplicitDefaultMemberAssignmentInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
52- new CodeInspectionSetting ( "ImplicitPublicMemberInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
53- new CodeInspectionSetting ( "ImplicitVariantReturnTypeInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
54- new CodeInspectionSetting ( "LineLabelNotUsedInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Warning ) ,
55- new CodeInspectionSetting ( "MemberNotOnInterfaceInspection" , CodeInspectionType . CodeQualityIssues ) ,
56- new CodeInspectionSetting ( "MissingAnnotationArgumentInspection" , CodeInspectionType . RubberduckOpportunities , CodeInspectionSeverity . Error ) ,
57- new CodeInspectionSetting ( "MissingAnnotationInspection" , CodeInspectionType . RubberduckOpportunities , CodeInspectionSeverity . Suggestion ) ,
58- new CodeInspectionSetting ( "MissingAttributeInspection" , CodeInspectionType . RubberduckOpportunities ) ,
59- new CodeInspectionSetting ( "ModuleScopeDimKeywordInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
60- new CodeInspectionSetting ( "MoveFieldCloserToUsageInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Hint ) ,
61- new CodeInspectionSetting ( "MultilineParameterInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Suggestion ) ,
62- new CodeInspectionSetting ( "MultipleDeclarationsInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Suggestion ) ,
63- new CodeInspectionSetting ( "NonReturningFunctionInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Error ) ,
64- new CodeInspectionSetting ( "ObjectVariableNotSetInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Error ) ,
65- new CodeInspectionSetting ( "ObsoleteCallStatementInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
66- new CodeInspectionSetting ( "ObsoleteCommentSyntaxInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
67- new CodeInspectionSetting ( "ObsoleteGlobalInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
68- new CodeInspectionSetting ( "ObsoleteLetStatementInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
69- new CodeInspectionSetting ( "ObsoleteTypeHintInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
70- new CodeInspectionSetting ( "OptionBaseInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Hint ) ,
71- new CodeInspectionSetting ( "OptionExplicitInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Error ) ,
72- new CodeInspectionSetting ( "ParameterCanBeByValInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Suggestion ) ,
73- new CodeInspectionSetting ( "ParameterNotUsedInspection" , CodeInspectionType . CodeQualityIssues ) ,
74- new CodeInspectionSetting ( "ProcedureCanBeWrittenAsFunctionInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Suggestion ) ,
75- new CodeInspectionSetting ( "ProcedureNotUsedInspection" , CodeInspectionType . CodeQualityIssues ) ,
76- new CodeInspectionSetting ( "RedundantOptionInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
77- new CodeInspectionSetting ( "SelfAssignedDeclarationInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Suggestion ) ,
78- new CodeInspectionSetting ( "UnassignedVariableUsageInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Error ) ,
79- new CodeInspectionSetting ( "UndeclaredVariableUsageInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Error ) ,
80- new CodeInspectionSetting ( "UntypedFunctionUsageInspection" , CodeInspectionType . LanguageOpportunities , CodeInspectionSeverity . Hint ) ,
81- new CodeInspectionSetting ( "UseMeaningfulNameInspection" , CodeInspectionType . MaintainabilityAndReadabilityIssues , CodeInspectionSeverity . Suggestion ) ,
82- new CodeInspectionSetting ( "VariableNotAssignedInspection" , CodeInspectionType . CodeQualityIssues ) ,
83- new CodeInspectionSetting ( "VariableNotUsedInspection" , CodeInspectionType . CodeQualityIssues ) ,
84- new CodeInspectionSetting ( "VariableTypeNotDeclaredInspection" , CodeInspectionType . LanguageOpportunities ) ,
85- new CodeInspectionSetting ( "WriteOnlyPropertyInspection" , CodeInspectionType . CodeQualityIssues , CodeInspectionSeverity . Suggestion ) ,
86- } ;
38+ return _foundInspections . Select ( inspection => new CodeInspectionSetting ( inspection ) ) ;
8739 }
8840 }
8941}
0 commit comments