protected override async Task ProvideCompletionsAsync(CompletionContext context, string pathThroughLastSlash) { var resolver = context.Document.Project.CompilationOptions.MetadataReferenceResolver as RuntimeMetadataReferenceResolver; if (resolver != null && pathThroughLastSlash.IndexOfAny(s_pathIndicators) < 0) { foreach (var(name, path) in resolver.TrustedPlatformAssemblies) { context.AddItem(CommonCompletionItem.Create(name, displayTextSuffix: "", glyph: Glyph.Assembly, rules: s_rules)); context.AddItem(CommonCompletionItem.Create(PathUtilities.GetFileName(path, includeExtension: true), displayTextSuffix: "", glyph: Glyph.Assembly, rules: s_rules)); } if (resolver.GacFileResolver is object) { var gacHelper = new GlobalAssemblyCacheCompletionHelper(s_rules); context.AddItems(await gacHelper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } } if (pathThroughLastSlash.IndexOf(',') < 0) { var helper = GetFileSystemCompletionHelper(context.Document, Glyph.Assembly, RuntimeMetadataReferenceResolver.AssemblyExtensions, s_rules); context.AddItems(await helper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } }
protected override async Task ProvideCompletionsAsync(CompletionContext context, string pathThroughLastSlash) { if (GacFileResolver.IsAvailable && pathThroughLastSlash.IndexOfAny(s_pathIndicators) < 0) { var gacHelper = new GlobalAssemblyCacheCompletionHelper(s_rules); context.AddItems(await gacHelper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } if (pathThroughLastSlash.IndexOf(',') < 0) { var helper = GetFileSystemCompletionHelper(context.Document, Glyph.Assembly, ImmutableArray.Create(".dll", ".exe"), s_rules); context.AddItems(await helper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } }
protected override async Task ProvideCompletionsAsync(CompletionContext context, string pathThroughLastSlash) { if (GacFileResolver.IsAvailable && pathThroughLastSlash.IndexOfAny(s_pathIndicators) < 0) { var gacHelper = new GlobalAssemblyCacheCompletionHelper(s_rules); context.AddItems(await gacHelper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } if (pathThroughLastSlash.IndexOf(',') < 0) { var text = await context.Document.GetTextAsync(context.CancellationToken).ConfigureAwait(false); var fileSystemHelper = GetFileSystemCompletionHelper(text, context.Document); context.AddItems(await fileSystemHelper.GetItemsAsync(pathThroughLastSlash, context.CancellationToken).ConfigureAwait(false)); } }