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());
        }
示例#2
0
 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}");
        }