private static string FormatClosureDescription([NotNull] JetHashSet <IDeclaredElement> elements) { int parameters = 0, vars = 0; var hasThis = false; foreach (var element in elements) { if (element is IParameter || element is IQueryAnonymousTypeProperty) { parameters++; } else if (element is ILocalVariable) { vars++; } else if (element is IFunction) { hasThis = true; } } var buf = new StringBuilder(); if (parameters > 0) { buf.Append(FormatOrderedByStartOffset(elements.Where(element => element is IParameter || element is IQueryAnonymousTypeProperty))) .Append(' ') .Append(NounUtil.ToPluralOrSingular("parameter", parameters)); } if (vars > 0) { if (parameters > 0) { buf.Append(hasThis ? ", " : " and "); } buf.Append(FormatOrderedByStartOffset( elements.Where(element => element is ILocalVariable))) .Append(' ') .Append(NounUtil.ToPluralOrSingular("variable", vars)); } if (hasThis) { if (parameters > 0 || vars > 0) { buf.Append(" and "); } buf.Append("'this' reference"); } return(buf.ToString()); }
public override ICollection <TreeSection> GetTreeSections([NotNull] IOccurrenceBrowserDescriptor descriptor) { return(descriptor.OccurrenceSections.Select( x => { var caption = $"Found {x.Items.Count} linked {NounUtil.ToPluralOrSingular("type", x.Items.Count)}"; return new TreeSection(x.Model, caption); }) .ToList()); }
public override string GetResultsTitle(OccurrenceSection section) { if (section.TotalCount == 0) { return(NoLinkedTypesFoundText); } var typeOrTypes = NounUtil.ToPluralOrSingular("type", section.TotalCount); return(section.FilteredCount == section.TotalCount ? $"Found {section.TotalCount} linked {typeOrTypes}" : $"Displaying {section.FilteredCount} of {section.TotalCount} linked {typeOrTypes}"); }