protected IEnumerable <MemberResult> GetModules(string[] package, bool modulesOnly = true) { var analysis = GetAnalysisEntry(); if (analysis == null) { return(Enumerable.Empty <MemberResult>()); } IPythonReplIntellisense pyReplEval = null; IReplEvaluator eval; if (TextBuffer.Properties.TryGetProperty <IReplEvaluator>(typeof(IReplEvaluator), out eval)) { pyReplEval = eval as IPythonReplIntellisense; } IEnumerable <KeyValuePair <string, bool> > replScopes = null; if (pyReplEval != null) { replScopes = pyReplEval.GetAvailableScopesAndKind(); } if (package == null) { package = new string[0]; } var modules = Enumerable.Empty <MemberResult>(); if (analysis != null && (pyReplEval == null || !pyReplEval.LiveCompletionsOnly)) { modules = modules.Concat(package.Length > 0 ? analysis.GetModuleMembers(package, !modulesOnly) : analysis.GetModules(true).Distinct(CompletionComparer.MemberEquality) ); } if (replScopes != null) { modules = GetModulesFromReplScope(replScopes, package) .Concat(modules) .Distinct(CompletionComparer.MemberEquality); } return(modules); }