diff --git a/src/LanguageServer/Impl/Completion/ImportCompletion.cs b/src/LanguageServer/Impl/Completion/ImportCompletion.cs index 0b60509ab..3a156912b 100644 --- a/src/LanguageServer/Impl/Completion/ImportCompletion.cs +++ b/src/LanguageServer/Impl/Completion/ImportCompletion.cs @@ -135,8 +135,11 @@ public static CompletionResult GetCompletionsInFromImport(FromImportStatement fr private static IEnumerable GetAllImportableModules(CompletionContext context) { var mres = context.Analysis.Document.Interpreter.ModuleResolution; - var modules = mres.CurrentPathResolver.GetAllModuleNames().Distinct(); - return modules.Select(n => CompletionItemSource.CreateCompletionItem(n, CompletionItemKind.Module)); + var modules = mres.CurrentPathResolver.GetAllModuleNames(); + return modules + .Where(n => !string.IsNullOrEmpty(n)) + .Distinct() + .Select(n => CompletionItemSource.CreateCompletionItem(n, CompletionItemKind.Module)); } private static CompletionResult GetResultFromImportSearch(IImportSearchResult importSearchResult, CompletionContext context, bool prependStar, SourceSpan? applicableSpan = null) { @@ -164,7 +167,9 @@ private static CompletionResult GetResultFromImportSearch(IImportSearchResult im } if (module != null) { - completions.AddRange(module.GetMemberNames().Select(n => context.ItemSource.CreateCompletionItem(n, module?.GetMember(n)))); + completions.AddRange(module.GetMemberNames() + .Where(n => !string.IsNullOrEmpty(n)) + .Select(n => context.ItemSource.CreateCompletionItem(n, module.GetMember(n)))); } if (importSearchResult is IImportChildrenSource children) { @@ -187,23 +192,6 @@ private static CompletionResult GetResultFromImportSearch(IImportSearchResult im return new CompletionResult(completions, applicableSpan); } - private static IReadOnlyList GetChildModules(string[] names, CompletionContext context) { - if (!names.Any()) { - return Array.Empty(); - } - - var mres = context.Analysis.Document.Interpreter.ModuleResolution; - var fullName = string.Join(".", names.Take(names.Length - 1)); - - var import = mres.CurrentPathResolver.GetModuleImportFromModuleName(fullName); - if (string.IsNullOrEmpty(import?.ModulePath)) { - return Array.Empty(); - } - - var packages = mres.GetPackagesFromDirectory(Path.GetDirectoryName(import.ModulePath)); - return packages.Select(n => CompletionItemSource.CreateCompletionItem(n, CompletionItemKind.Module)).ToArray(); - } - private static IEnumerable<(T1, T2)> ZipLongest(IEnumerable src1, IEnumerable src2) { using (var e1 = src1?.GetEnumerator()) using (var e2 = src2?.GetEnumerator()) {