Exemple #1
0
        public async void SubjectBuffersConnected(IWpfTextView textView, ConnectionReason reason, Collection <ITextBuffer> subjectBuffers)
        {
            if (RoslynUtilities.IsRoslynInstalled(ServiceProvider) || !LanguageUtilities.IsRunning())
            {
                return;
            }

            if (!subjectBuffers.Any(b => b.ContentType.IsOfType("CSharp")))
            {
                return;
            }

            // VS2010 only creates TextViewAdapters later; wait for it to exist.
            await Dispatcher.Yield();

            var textViewAdapter = EditorAdaptersFactoryService.GetViewAdapter(textView);

            if (textViewAdapter == null)
            {
                return;
            }
            ITextDocument document;

            if (!TextDocumentFactoryService.TryGetTextDocument(textView.TextDataModel.DocumentBuffer, out document))
            {
                return;
            }

            textView.Properties.GetOrCreateSingletonProperty(() => new GoToDefinitionInterceptor(ReferenceProviders, ServiceProvider, textViewAdapter, textView, document));
        }
Exemple #2
0
        public async Task CSharpMetadataTest()
        {
            // Hop on to the UI thread so the language service APIs work
            await Application.Current.Dispatcher.NextFrame(DispatcherPriority.ApplicationIdle);

            // Use a type that is not in the public reference source
            textView.Caret.MoveTo(textView.FindSpan("System.IO.Log.LogStore").End);
            GetCurrentNativeTextView().Execute(VSConstants.VSStd97CmdID.GotoDefn);

            var           metadataTextView = GetCurentTextView();
            var           docService       = componentModel.GetService <ITextDocumentFactoryService>();
            ITextDocument document;

            Assert.IsTrue(docService.TryGetTextDocument(metadataTextView.TextDataModel.DocumentBuffer, out document));
            ISymbolResolver resolver = null;

            if (RoslynUtilities.IsRoslynInstalled(VsIdeTestHostContext.ServiceProvider))
            {
                resolver = new RoslynSymbolResolver();
            }
            else if (DTE.Version == "12.0")
            {
                resolver = new CSharp12Resolver();
            }
            if (resolver == null)
            {
                var symbol = resolver.GetSymbolAt(document.FilePath, metadataTextView.FindSpan("public LogStore(SafeFileHandle").End);
                Assert.IsFalse(symbol.HasLocalSource);
                Assert.AreEqual("mscorlib", symbol.AssemblyName);
                Assert.AreEqual("T:Microsoft.Win32.SafeHandles.SafeFileHandle", symbol.IndexId);
            }
        }
Exemple #3
0
        public async Task CSharp10ResolverTest()
        {
            if (RoslynUtilities.IsRoslynInstalled(VsIdeTestHostContext.ServiceProvider))
            {
                Assert.Inconclusive("Cannot test native language services with Roslyn installed?");
            }

            await TestCSharpResolver(new CSharp10Resolver(DTE));
        }
Exemple #4
0
        public async Task CSharpRoslynResolverTest()
        {
            if (!RoslynUtilities.IsRoslynInstalled(VsIdeTestHostContext.ServiceProvider))
            {
                Assert.Inconclusive("Roslyn is not installed");
            }

            await TestCSharpResolver(new RoslynSymbolResolver());
        }
Exemple #5
0
        public async Task CSharp12ResolverTest()
        {
            if (DTE.Version != "12.0")
            {
                Assert.Inconclusive("CSharp12Resolver only works in VS 2013");
            }
            if (RoslynUtilities.IsRoslynInstalled(VsIdeTestHostContext.ServiceProvider))
            {
                Assert.Inconclusive("Cannot test native language services with Roslyn installed?");
            }

            await TestCSharpResolver(new CSharp12Resolver());
        }
Exemple #6
0
        public static void PrepareSolution(TestContext context)
        {
            DTE.Solution.Open(Path.Combine(SolutionDir, "TestBed.sln"));

            componentModel = (IComponentModel)VsIdeTestHostContext.ServiceProvider.GetService(typeof(SComponentModel));
            fileName       = Path.GetFullPath(Path.Combine(SolutionDir, "Basic", "File.vb"));
            DTE.ItemOperations.OpenFile(fileName).Activate();
            textView = GetCurentTextView();

            isRoslyn = RoslynUtilities.IsRoslynInstalled(VsIdeTestHostContext.ServiceProvider);
            if (isRoslyn)
            {
                resolver = new RoslynSymbolResolver();
            }
            else
            {
                resolver = new VBResolver();
            }
        }