Exemple #1
0
        public async Task DoNotSuggestAnythingIfNotApplicable()
        {
            const string source = @"
                using System.Collections.Generic;

                public class Test {
                    public Test(List<string> lst) 
                    { }

                    public void Method() 
                    { }

                    public static void DoSmth(Test testInstance)
                    {
                        testInstance.Method();
                        var v1 = new
                    }
                }";

            var document = GetTestDocument(source);

            for (int i = 0; i < source.Length; i++)
            {
                var context = GetContext(document, Provider, i);
                await Provider.ProvideCompletionsAsync(context);

                var completions = GetCompletions(context);

                Assert.That(completions, Is.Empty);
            }
        }
Exemple #2
0
        public static async Task <IReadOnlyList <CompletionItem> > GetCompletionsAsync(CompletionProvider provider, string source, string searchText)
        {
            int position = GetPosition(source, searchText);

            var document          = GetTestDocument(source);
            var completionContext = GetContext(document, provider, position);
            await provider.ProvideCompletionsAsync(completionContext);

            return(GetCompletions(completionContext));
        }
Exemple #3
0
        public static async Task <IReadOnlyList <CompletionItem> > GetCompletionsAsync(CompletionProvider provider, Document document, string searchText)
        {
            var sourceText = await document.GetTextAsync();

            int position = GetPosition(sourceText.ToString(), searchText);

            var completionContext = GetContext(document, provider, position);
            await provider.ProvideCompletionsAsync(completionContext);

            return(GetCompletions(completionContext));
        }
Exemple #4
0
        internal static async Task <CompletionContext> GetCompletionListContextAsync(CompletionProvider provider, Document document, int position, CompletionTrigger triggerInfo, OptionSet options = null)
        {
            options = options ?? document.Project.Solution.Workspace.Options;
            var service = document.Project.LanguageServices.GetService <CompletionService>();
            var text    = await document.GetTextAsync();

            var span    = service.GetDefaultItemSpan(text, position);
            var context = new CompletionContext(provider, document, position, span, triggerInfo, options, CancellationToken.None);
            await provider.ProvideCompletionsAsync(context);

            return(context);
        }
Exemple #5
0
        public static IReadOnlyList <CompletionItem> GetCompletions(CompletionProvider provider, string source, string additinalFile, string searchText)
        {
            int position = source.IndexOf(searchText) + searchText.Length;

            var document          = GetTestDocument(source, additinalFile);
            var completionContext = GetContext(document, provider, position);

            provider.ProvideCompletionsAsync(completionContext).Wait();
            var completions = GetCompletions(completionContext);

            return(completions);
        }
        public async Task DoNotProvideCompletionsIfMemberIsNotAccessed()
        {
            const string source         = @"
                using System;
                namespace A{
                    class CA
                    {
                        [System.Obsolete]
                        public void MA(int par)
                        {
                            var a = 0;
                        }
                    }
                }
                namespace B{
                    static class B{
                        public static void ExtIntM(this int par)
                        { }
                    }
                }";
            const string extensionsFile = @"
                namespace NM
                {
                    public static class ObjectExtensions
                    {
                        public static void Do(this object obj)
                        { }
                    }
                }";

            var document = GetTestDocument(source, extensionsFile);

            for (int i = 0; i < source.Length; i++)
            {
                var context = GetContext(document, Provider, i);
                await Provider.ProvideCompletionsAsync(context);

                var completions = GetCompletions(context);

                Assert.That(completions, Is.Empty);
            }
        }
        public void DontSuggestAnythingInArbitraryContext()
        {
            const string source = @"
                public class Test {
                    public void Method() {
                        int i = 0;
                    }
                }";

            var document = GetTestDocument(source);

            for (int i = 0; i < source.Length; i++)
            {
                var context = GetContext(document, Provider, i);
                Provider.ProvideCompletionsAsync(context).Wait();
                var completions = GetCompletions(context);

                Assert.That(completions, Is.Empty);
            }
        }