Beispiel #1
0
        private static IEnumerable <IMemberResult> GetModuleVariables(ProjectEntry entry, GetMemberOptions opts, string prefix, IModuleAnalysis analysis)
        {
            var breadthFirst = analysis.Scope.TraverseBreadthFirst(s => s.Children);
            var all          = breadthFirst.SelectMany(c => analysis.GetAllAvailableMembersFromScope(c, opts));
            var result       = all
                               .Where(m => {
                if (m.Values.Any(v => v.DeclaringModule == entry || v.Locations.Any(l => l.DocumentUri == entry.DocumentUri)))
                {
                    if (string.IsNullOrEmpty(prefix) || m.Name.StartsWithOrdinal(prefix, ignoreCase: true))
                    {
                        return(true);
                    }
                }
                return(false);
            })
                               .Take(_symbolHierarchyMaxSymbols);

            return(result);
        }
 private static IEnumerable <IMemberResult> GetScopeVariables(IModuleAnalysis analysis, IScope scope, GetMemberOptions opts, int currentDepth)
 => analysis.GetAllAvailableMembersFromScope(scope, opts).Concat(GetChildScopesVariables(analysis, scope, opts, currentDepth + 1));