/// <summary> /// Constructor /// </summary> /// <param name="moniker">Unique non-localized identifier</param> /// <param name="displayName">Name shown in the UI if there are multiple <see cref="CompletionSet"/>s</param> /// <param name="applicableTo">Span that will be modified when a <see cref="Completion"/> gets committed</param> /// <param name="completions">Completion items</param> /// <param name="completionBuilders">Completion builders</param> /// <param name="filters">Filters or null</param> public DsCompletionSet(string moniker, string displayName, ITrackingSpan applicableTo, IEnumerable <Completion> completions, IEnumerable <Completion> completionBuilders, IReadOnlyList <IIntellisenseFilter> filters) : base(moniker, displayName, applicableTo, Array.Empty <Completion>(), Array.Empty <Completion>(), filters ?? Array.Empty <IIntellisenseFilter>()) { allCompletions = completions.ToArray(); allCompletionBuilders = completionBuilders.ToArray(); filteredCompletions = new FilteredCompletionCollection(allCompletions); filteredCompletionBuilders = new FilteredCompletionCollection(allCompletionBuilders); }
/// <summary> /// Constructor /// </summary> /// <param name="applicableTo">Span that will be modified when a <see cref="Completion"/> gets committed</param> /// <param name="completions">Completion items</param> /// <param name="filters">Filters or null</param> public CompletionCollection(ITrackingSpan applicableTo, IEnumerable <Completion> completions, IReadOnlyList <IIntellisenseFilter> filters = null) { if (completions == null) { throw new ArgumentNullException(nameof(completions)); } currentCompletion = CurrentCompletion.Empty; allCompletions = completions.ToArray(); filteredCompletions = new FilteredCompletionCollection(allCompletions); ApplicableTo = applicableTo; Filters = filters ?? Array.Empty <IIntellisenseFilter>(); }