public static RoslynCompletionSet Create(IMruCompletionService mruCompletionService, CompletionList completionList, CompletionService completionService, ITextView textView, string moniker, string displayName, ITrackingSpan applicableTo)
        {
            if (mruCompletionService == null)
            {
                throw new ArgumentNullException(nameof(mruCompletionService));
            }
            if (completionList == null)
            {
                throw new ArgumentNullException(nameof(completionList));
            }
            if (completionService == null)
            {
                throw new ArgumentNullException(nameof(completionService));
            }
            if (textView == null)
            {
                throw new ArgumentNullException(nameof(textView));
            }
            if (moniker == null)
            {
                throw new ArgumentNullException(nameof(moniker));
            }
            if (displayName == null)
            {
                throw new ArgumentNullException(nameof(displayName));
            }
            if (applicableTo == null)
            {
                throw new ArgumentNullException(nameof(applicableTo));
            }
            var completions      = new List <Completion>(completionList.Items.Length);
            var remainingFilters = new List <(RoslynIntellisenseFilter filter, int index)>(RoslynIntellisenseFilters.CreateFilters().Select((a, index) => (a, index)));
            var filters          = new List <(RoslynIntellisenseFilter filter, int index)>(remainingFilters.Count);

            foreach (var item in completionList.Items)
            {
                if (string.IsNullOrEmpty(item.DisplayText))
                {
                    continue;
                }
                for (int i = remainingFilters.Count - 1; i >= 0; i--)
                {
                    var kv = remainingFilters[i];
                    foreach (var tag in kv.filter.Tags)
                    {
                        if (item.Tags.Contains(tag))
                        {
                            remainingFilters.RemoveAt(i);
                            filters.Add(kv);
                            break;
                        }
                    }
                }
                completions.Add(new RoslynCompletion(item));
            }
            filters.Sort((a, b) => a.index - b.index);
            var completionBuilders = new List <Completion>();

            return(new RoslynCompletionSet(mruCompletionService, completionService, textView, moniker, displayName, applicableTo, completions, completionBuilders, filters.Select(a => a.filter).ToArray()));
        }
示例#2
0
 RoslynCompletionCollection(IMruCompletionService mruCompletionService, CompletionService completionService, ITextView textView, ITrackingSpan applicableTo, List <Completion> completions, RoslynIntellisenseFilter[] filters)
     : base(applicableTo, completions, filters)
 {
     if (mruCompletionService == null)
     {
         throw new ArgumentNullException(nameof(mruCompletionService));
     }
     if (completionService == null)
     {
         throw new ArgumentNullException(nameof(completionService));
     }
     if (textView == null)
     {
         throw new ArgumentNullException(nameof(textView));
     }
     if (applicableTo == null)
     {
         throw new ArgumentNullException(nameof(applicableTo));
     }
     if (filters == null)
     {
         throw new ArgumentNullException(nameof(filters));
     }
     this.mruCompletionService = mruCompletionService;
     this.completionService    = completionService;
     this.textView             = textView;
     this.filters          = filters;
     this.originalSnapshot = applicableTo.TextBuffer.CurrentSnapshot;
 }
示例#3
0
		public CompletionSource(IImageMonikerService imageMonikerService, IMruCompletionService mruCompletionService) {
			if (imageMonikerService == null)
				throw new ArgumentNullException(nameof(imageMonikerService));
			if (mruCompletionService == null)
				throw new ArgumentNullException(nameof(mruCompletionService));
			this.imageMonikerService = imageMonikerService;
			this.mruCompletionService = mruCompletionService;
		}
示例#4
0
 public CompletionSource(IMruCompletionService mruCompletionService)
 {
     if (mruCompletionService == null)
     {
         throw new ArgumentNullException(nameof(mruCompletionService));
     }
     this.mruCompletionService = mruCompletionService;
 }
示例#5
0
		RoslynCompletionSet(IMruCompletionService mruCompletionService, CompletionService completionService, ITextView textView, string moniker, string displayName, ITrackingSpan applicableTo, List<Completion> completions, List<Completion> completionBuilders, RoslynIntellisenseFilter[] filters)
			: base(moniker, displayName, applicableTo, completions, completionBuilders, filters) {
			this.mruCompletionService = mruCompletionService;
			this.completionService = completionService;
			this.textView = textView;
			originalSnapshot = applicableTo.TextBuffer.CurrentSnapshot;
			InitializeCompletions(completions);
			InitializeCompletions(completionBuilders);
		}
 RoslynCompletionSet(IMruCompletionService mruCompletionService, CompletionService completionService, ITextView textView, string moniker, string displayName, ITrackingSpan applicableTo, List <Completion> completions, List <Completion> completionBuilders, RoslynIntellisenseFilter[] filters)
     : base(moniker, displayName, applicableTo, completions, completionBuilders, filters)
 {
     this.mruCompletionService = mruCompletionService;
     this.completionService    = completionService;
     this.textView             = textView;
     originalSnapshot          = applicableTo.TextBuffer.CurrentSnapshot;
     InitializeCompletions(completions);
     InitializeCompletions(completionBuilders);
 }
示例#7
0
 public CompletionSource(IImageMonikerService imageMonikerService, IMruCompletionService mruCompletionService)
 {
     if (imageMonikerService == null)
     {
         throw new ArgumentNullException(nameof(imageMonikerService));
     }
     if (mruCompletionService == null)
     {
         throw new ArgumentNullException(nameof(mruCompletionService));
     }
     this.imageMonikerService  = imageMonikerService;
     this.mruCompletionService = mruCompletionService;
 }
示例#8
0
		public static RoslynCompletionSet Create(IImageMonikerService imageMonikerService, IMruCompletionService mruCompletionService, CompletionList completionList, CompletionService completionService, ITextView textView, string moniker, string displayName, ITrackingSpan applicableTo) {
			if (imageMonikerService == null)
				throw new ArgumentNullException(nameof(imageMonikerService));
			if (mruCompletionService == null)
				throw new ArgumentNullException(nameof(mruCompletionService));
			if (completionList == null)
				throw new ArgumentNullException(nameof(completionList));
			if (completionService == null)
				throw new ArgumentNullException(nameof(completionService));
			if (textView == null)
				throw new ArgumentNullException(nameof(textView));
			if (moniker == null)
				throw new ArgumentNullException(nameof(moniker));
			if (displayName == null)
				throw new ArgumentNullException(nameof(displayName));
			if (applicableTo == null)
				throw new ArgumentNullException(nameof(applicableTo));
			var completions = new List<Completion>(completionList.Items.Length);
			var remainingFilters = new List<KeyValuePair<RoslynIntellisenseFilter, int>>(RoslynIntellisenseFilters.CreateFilters(imageMonikerService).Select((a, index) => new KeyValuePair<RoslynIntellisenseFilter, int>(a, index)));
			var filters = new List<KeyValuePair<RoslynIntellisenseFilter, int>>(remainingFilters.Count);
			foreach (var item in completionList.Items) {
				if (string.IsNullOrEmpty(item.DisplayText))
					continue;
				for (int i = remainingFilters.Count - 1; i >= 0; i--) {
					var kv = remainingFilters[i];
					foreach (var tag in kv.Key.Tags) {
						if (item.Tags.Contains(tag)) {
							remainingFilters.RemoveAt(i);
							filters.Add(kv);
							break;
						}
					}
				}
				completions.Add(new RoslynCompletion(imageMonikerService, item));
			}
			filters.Sort((a, b) => a.Value - b.Value);
			var completionBuilders = new List<Completion>();
			return new RoslynCompletionSet(mruCompletionService, completionService, textView, moniker, displayName, applicableTo, completions, completionBuilders, filters.Select(a => a.Key).ToArray());
		}
示例#9
0
		CompletionSourceProvider(IImageMonikerService imageMonikerService, IMruCompletionService mruCompletionService) {
			this.imageMonikerService = imageMonikerService;
			this.mruCompletionService = mruCompletionService;
		}
示例#10
0
 public CompletionSource(IMruCompletionService mruCompletionService) =>
 this.mruCompletionService = mruCompletionService ?? throw new ArgumentNullException(nameof(mruCompletionService));
示例#11
0
 CompletionSourceProvider(IMruCompletionService mruCompletionService) =>
 this.mruCompletionService = mruCompletionService;
示例#12
0
 CompletionSourceProvider(IImageMonikerService imageMonikerService, IMruCompletionService mruCompletionService)
 {
     this.imageMonikerService  = imageMonikerService;
     this.mruCompletionService = mruCompletionService;
 }