public FileSystemCompletionHelper( CompletionProvider completionProvider, TextSpan textChangeSpan, ICurrentWorkingDirectoryDiscoveryService fileSystemDiscoveryService, Glyph folderGlyph, Glyph fileGlyph, ImmutableArray<string> searchPaths, IEnumerable<string> allowableExtensions, Func<string, bool> exclude = null, CompletionItemRules itemRules = null) { Debug.Assert(searchPaths.All(path => PathUtilities.IsAbsolute(path))); _completionProvider = completionProvider; _textChangeSpan = textChangeSpan; _searchPaths = searchPaths; _allowableExtensions = allowableExtensions.Select(e => e.ToLowerInvariant()).ToSet(); _fileSystemDiscoveryService = fileSystemDiscoveryService; _folderGlyph = folderGlyph; _fileGlyph = fileGlyph; _exclude = exclude; _itemRules = itemRules; _lazyGetDrives = new Lazy<string[]>(() => IOUtilities.PerformIO(Directory.GetLogicalDrives, SpecializedCollections.EmptyArray<string>())); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (document == null) { throw new ArgumentNullException(nameof(document)); } if (options == null) { throw new ArgumentException(nameof(options)); } this.Provider = provider; this.Document = document; this.Position = position; this.CompletionListSpan = defaultSpan; this.Trigger = trigger; this.Options = options; this.CancellationToken = cancellationToken; _items = new List<CompletionItem>(); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> internal CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, in CompletionOptions options,
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (document == null) { throw new ArgumentNullException(nameof(document)); } if (options == null) { throw new ArgumentException(nameof(options)); } this.Provider = provider; this.Document = document; this.Position = position; this.DefaultItemSpan = defaultSpan; this.Trigger = trigger; this.Options = options; this.CancellationToken = cancellationToken; _items = new List <CompletionItem>(); }
public GlobalAssemblyCacheCompletionHelper( CompletionProvider completionProvider, TextSpan textChangeSpan, CompletionItemRules itemRules = null) { _completionProvider = completionProvider; _textChangeSpan = textChangeSpan; _itemRules = itemRules; }
internal static ImmutableHashSet <char> GetTriggerCharacters(CompletionProvider provider) { if (provider is LSPCompletionProvider lspProvider) { return(lspProvider.TriggerCharacters); } return(ImmutableHashSet <char> .Empty); }
// Internal for testing purposes only. internal async Task <CompletionContext> GetContextAsync( CompletionProvider provider, Document document, int position, CompletionTrigger triggerInfo, OptionSet options, CancellationToken cancellationToken) { return(await GetContextAsync( provider, document, position, triggerInfo, options, defaultSpan : null, cancellationToken : cancellationToken).ConfigureAwait(false)); }
internal protected CompletionProvider GetProvider(CompletionItem item) { CompletionProvider provider = null; if (item.ProviderName != null) { lock (_gate) { provider = _nameToProvider.GetOrAdd(item.ProviderName, _getProviderByName); } } return(provider); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) : this(provider ?? throw new ArgumentNullException(nameof(provider)), document ?? throw new ArgumentNullException(nameof(document)), position, defaultSpan, trigger, CompletionOptions.From(options ?? throw new ArgumentNullException(nameof(options)), document.Project.Language),
private static async Task <CompletionContext> GetProviderCompletionsAsync( CompletionProvider provider, Document document, int position, TextSpan defaultFilterSpan, CompletionTrigger triggerInfo, OptionSet options, CancellationToken cancellationToken) { var context = new CompletionContext(provider, document, position, defaultFilterSpan, triggerInfo, options, cancellationToken); await provider.ProvideCompletionsAsync(context).ConfigureAwait(false); return(context); }
internal protected CompletionProvider GetProvider(CompletionItem item) { CompletionProvider provider = null; if (item.Properties.TryGetValue("Provider", out var name)) { lock (_gate) { provider = _nameToProvider.GetOrAdd(name, _getProviderByName); } } return(provider); }
internal protected CompletionProvider GetProvider(CompletionItem item) { string name; CompletionProvider provider = null; if (item.Properties.TryGetValue("Provider", out name)) { lock (_gate) { _nameToProvider.TryGetValue(name, out provider); } } return(provider); }
internal Task <CompletionContext> GetContextAsync( CompletionProvider provider, Document document, int position, CompletionTrigger triggerInfo, OptionSet options, CancellationToken cancellationToken) { return(_completionServiceWithProviders.GetContextAsync( provider, document, position, triggerInfo, options, defaultSpan: null, cancellationToken)); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) { Provider = provider ?? throw new ArgumentNullException(nameof(provider)); Document = document ?? throw new ArgumentNullException(nameof(document)); Position = position; CompletionListSpan = defaultSpan; Trigger = trigger; Options = options ?? throw new ArgumentNullException(nameof(options)); CancellationToken = cancellationToken; _items = new List <CompletionItem>(); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet?options, CancellationToken cancellationToken) : this(provider ?? throw new ArgumentNullException(nameof(provider)), document ?? throw new ArgumentNullException(nameof(document)), position, defaultSpan, trigger, // Publicly available options do not affect this API. CompletionOptions.Default, cancellationToken) { #pragma warning disable RS0030 // Do not used banned APIs Options = options ?? OptionValueSet.Empty; #pragma warning restore }
private async Task <CompletionContext> GetContextAsync( CompletionProvider provider, Document document, int position, CompletionTrigger triggerInfo, OptionSet options, TextSpan?defaultSpan, CancellationToken cancellationToken) { options = options ?? document.Project.Solution.Workspace.Options; if (defaultSpan == null) { var text = await document.GetTextAsync(cancellationToken).ConfigureAwait(false); defaultSpan = this.GetDefaultCompletionListSpan(text, position); } var context = new CompletionContext(provider, document, position, defaultSpan.Value, triggerInfo, options, cancellationToken); await provider.ProvideCompletionsAsync(context).ConfigureAwait(false); return(context); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (document == null) { throw new ArgumentNullException(nameof(document)); } if (options == null) { throw new ArgumentException(nameof(options)); } this.Provider = provider; this.Document = document; this.Position = position; #pragma warning disable CS0618 // Type or member is obsolete this.DefaultItemSpan = defaultSpan; #pragma warning restore CS0618 // Type or member is obsolete this.CompletionListSpan = defaultSpan; this.Trigger = trigger; this.Options = options; this.CancellationToken = cancellationToken; _items = new List <CompletionItem>(); }
/// <summary> /// Creates a <see cref="CompletionContext"/> instance. /// </summary> public CompletionContext( CompletionProvider provider, Document document, int position, TextSpan defaultSpan, CompletionTrigger trigger, OptionSet options, CancellationToken cancellationToken) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (document == null) { throw new ArgumentNullException(nameof(document)); } if (options == null) { throw new ArgumentException(nameof(options)); } this.Provider = provider; this.Document = document; this.Position = position; #pragma warning disable CS0618 // Type or member is obsolete this.DefaultItemSpan = defaultSpan; #pragma warning restore CS0618 // Type or member is obsolete this.CompletionListSpan = defaultSpan; this.Trigger = trigger; this.Options = options; this.CancellationToken = cancellationToken; _items = new List<CompletionItem>(); }
private static async Task<CompletionContext> GetProviderCompletionsAsync( CompletionProvider provider, Document document, int position, TextSpan defaultFilterSpan, CompletionTrigger triggerInfo, OptionSet options, CancellationToken cancellationToken) { var context = new CompletionContext(provider, document, position, defaultFilterSpan, triggerInfo, options, cancellationToken); await provider.ProvideCompletionsAsync(context).ConfigureAwait(false); return context; }