protected override IEnumerable <IInspectionResult> DoGetInspectionResults() { var excel = State.DeclarationFinder.Projects.SingleOrDefault(item => !item.IsUserDefined && item.IdentifierName == "Excel"); if (excel == null) { return(Enumerable.Empty <IInspectionResult>()); } var targetProperties = BuiltInDeclarations .OfType <PropertyGetDeclaration>() .Where(x => InterestingMembers.Contains(x.IdentifierName) && InterestingClasses.Contains(x.ParentDeclaration?.IdentifierName)) .ToList(); var members = targetProperties.SelectMany(item => item.References.Where(reference => !IsIgnoringInspectionResultFor(reference, AnnotationName))); return(members.Select(issue => new IdentifierReferenceInspectionResult(this, string.Format(InspectionResults.ImplicitActiveWorkbookReferenceInspection, issue.Context.GetText()), State, issue))); }
protected override IEnumerable <IInspectionResult> DoGetInspectionResults() { var excel = State.DeclarationFinder.Projects.SingleOrDefault(item => !item.IsUserDefined && item.IdentifierName == "Excel"); if (excel == null) { return(Enumerable.Empty <IInspectionResult>()); } var targetProperties = BuiltInDeclarations .OfType <PropertyDeclaration>() .Where(x => InterestingMembers.Contains(x.IdentifierName) && InterestingClasses.Contains(x.ParentDeclaration?.IdentifierName)) .ToList(); var references = targetProperties.SelectMany(declaration => declaration.References .Where(reference => !IsIgnoringInspectionResultFor(reference, AnnotationName) && IsAccessedWithStringLiteralParameter(reference)) .Select(reference => new IdentifierReferenceInspectionResult(this, InspectionResults.SheetAccessedUsingStringInspection, State, reference))); var issues = new List <IdentifierReferenceInspectionResult>(); foreach (var reference in references) { using (var component = GetVBComponentMatchingSheetName(reference)) { if (component == null) { continue; } using (var properties = component.Properties) { reference.Properties.CodeName = (string)properties.Single(property => property.Name == "CodeName").Value; } issues.Add(reference); } } return(issues); }