コード例 #1
0
        public TemplateCompletionHandlerProvider(
            ITemplateEditorOptions options,
            IVsEditorAdaptersFactoryService editorAdapterFactory,
            SVsServiceProvider serviceProvider,
            ICompletionBroker completionBroker)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (editorAdapterFactory == null)
            {
                throw new ArgumentNullException(nameof(editorAdapterFactory));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (completionBroker == null)
            {
                throw new ArgumentNullException(nameof(completionBroker));
            }

            this.options = options;
            this.editorAdapterFactory = editorAdapterFactory;
            this.serviceProvider      = serviceProvider;
            this.completionBroker     = completionBroker;
        }
コード例 #2
0
        public static void CreateTaggerDoesNotReturnTaggerWhenErrorUnderliningIsDisabled()
        {
            ITemplateEditorOptions options = OptionsWithErrorUnderliningEnabled(false);
            var target = new TemplateErrorTaggerProvider(options);

            Assert.Null(target.CreateTagger <ErrorTag>(new FakeTextBuffer(string.Empty)));
        }
コード例 #3
0
        public TemplateCompletionHandlerProvider(
            ITemplateEditorOptions options, 
            IVsEditorAdaptersFactoryService editorAdapterFactory,
            SVsServiceProvider serviceProvider,
            ICompletionBroker completionBroker)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (editorAdapterFactory == null)
            {
                throw new ArgumentNullException(nameof(editorAdapterFactory));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (completionBroker == null)
            {
                throw new ArgumentNullException(nameof(completionBroker));
            }

            this.options = options;
            this.editorAdapterFactory = editorAdapterFactory;
            this.serviceProvider = serviceProvider;
            this.completionBroker = completionBroker;
        }
コード例 #4
0
        public static void CreateTaggerReturnsTemplateClassificationTagger()
        {
            ITemplateEditorOptions options = OptionsWithSyntaxColorizationEnabled(true);
            var target = new TemplateClassificationTaggerProvider(options, new FakeClassificationTypeRegistryService());

            Assert.NotNull(target.CreateTagger <ClassificationTag>(new FakeTextBuffer(string.Empty)));
        }
コード例 #5
0
        public static void TryCreateQuickInfoSourceReturnsNullWhenQuickInfoTooltipsAreDisabled()
        {
            ITemplateEditorOptions options = OptionsWithQuickInfoTooltipsEnabled(false);
            var provider = new TemplateQuickInfoSourceProvider(options);

            Assert.Null(provider.TryCreateQuickInfoSource(new FakeTextBuffer(string.Empty)));
        }
コード例 #6
0
        public static void CreateTaggerAlwaysReturnsNullBecauseTemplateErrorReporterIsNotATagger()
        {
            ITemplateEditorOptions options = OptionsWithErrorReportingEnabled(true);
            var provider = new TemplateErrorReporterProvider(options, Substitute.For <SVsServiceProvider>(), Substitute.For <ITextDocumentFactoryService>());

            Assert.Null(provider.CreateTagger <ErrorTag>(new FakeTextBuffer(string.Empty)));
        }
コード例 #7
0
        public static void CreateTaggerReturnsTemplateErrorTagger()
        {
            ITemplateEditorOptions options = OptionsWithErrorUnderliningEnabled(true);
            var target = new TemplateErrorTaggerProvider(options);

            Assert.NotNull(target.CreateTagger <ErrorTag>(new FakeTextBuffer(string.Empty)));
        }
コード例 #8
0
        public static void CreateTaggerDoesNotReturnTaggerWhenTemplateOutliningIsDisabled()
        {
            ITemplateEditorOptions options = OptionsWithTemplateOutliningEnabled(false);
            var provider = new TemplateOutliningTaggerProvider(options);

            Assert.Null(provider.CreateTagger <OutliningRegionTag>(new FakeTextBuffer(string.Empty)));
        }
コード例 #9
0
        public static void CreateTaggerReturnsTemplateOutliningTagger()
        {
            ITemplateEditorOptions options = OptionsWithTemplateOutliningEnabled(true);
            var provider = new TemplateOutliningTaggerProvider(options);
            var tagger   = provider.CreateTagger <OutliningRegionTag>(new FakeTextBuffer(string.Empty));

            Assert.Equal(typeof(TemplateOutliningTagger), tagger.GetType());
        }
コード例 #10
0
        public TemplateQuickInfoSourceProvider(ITemplateEditorOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            this.options = options;
        }
コード例 #11
0
        public TemplateQuickInfoSourceProvider(ITemplateEditorOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            this.options = options;
        }
コード例 #12
0
        public TemplateOutliningTaggerProvider(ITemplateEditorOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            this.options = options;
        }
コード例 #13
0
        public static void TryCreateQuickInfoSourceReturnsTemplateQuickInfoSource()
        {
            ITemplateEditorOptions options = OptionsWithQuickInfoTooltipsEnabled(true);
            var provider   = new TemplateQuickInfoSourceProvider(options);
            var textBuffer = new FakeTextBuffer(string.Empty);
            IQuickInfoSource quickInfoSource = provider.TryCreateQuickInfoSource(textBuffer);

            Assert.Equal(typeof(TemplateQuickInfoSource), quickInfoSource.GetType());
        }
コード例 #14
0
        public static void CreateTaggerReturnsSingleTaggerWhenCalledMultipleTimesForSameBuffer()
        {
            ITemplateEditorOptions options = OptionsWithTemplateOutliningEnabled(true);
            var provider = new TemplateOutliningTaggerProvider(options);
            var buffer   = new FakeTextBuffer(string.Empty);
            var tagger1  = provider.CreateTagger <OutliningRegionTag>(buffer);
            var tagger2  = provider.CreateTagger <OutliningRegionTag>(buffer);

            Assert.Same(tagger1, tagger2);
        }
コード例 #15
0
        public static void TryCreateQuickInfoSourceReturnsSameObjectWhenCalledMultipleTimesForSameBuffer()
        {
            ITemplateEditorOptions options = OptionsWithQuickInfoTooltipsEnabled(true);
            var provider             = new TemplateQuickInfoSourceProvider(options);
            var textBuffer           = new FakeTextBuffer(string.Empty);
            IQuickInfoSource source1 = provider.TryCreateQuickInfoSource(textBuffer);
            IQuickInfoSource source2 = provider.TryCreateQuickInfoSource(textBuffer);

            Assert.Same(source1, source2);
        }
コード例 #16
0
        public static void CreateTaggerReturnsSameTaggerWhenCalledMultipleTimesForSameBuffer()
        {
            ITemplateEditorOptions options = OptionsWithSyntaxColorizationEnabled(true);
            var target  = new TemplateClassificationTaggerProvider(options, new FakeClassificationTypeRegistryService());
            var buffer  = new FakeTextBuffer(string.Empty);
            var tagger1 = target.CreateTagger <ClassificationTag>(buffer);
            var tagger2 = target.CreateTagger <ClassificationTag>(buffer);

            Assert.Same(tagger1, tagger2);
        }
コード例 #17
0
        public static void CreateTaggerReturnsSameTaggerWhenCalledMultipleTimesForSameBuffer()
        {
            ITemplateEditorOptions options = OptionsWithErrorUnderliningEnabled(true);
            var target  = new TemplateErrorTaggerProvider(options);
            var buffer  = new FakeTextBuffer(string.Empty);
            var tagger1 = target.CreateTagger <ErrorTag>(buffer);
            var tagger2 = target.CreateTagger <ErrorTag>(buffer);

            Assert.Same(tagger1, tagger2);
        }
コード例 #18
0
        public static void CreateTaggerDoesNotCreateTemplateErrorReporterWhenErrorReportingIsDisabled()
        {
            ITemplateEditorOptions options = OptionsWithErrorReportingEnabled(false);
            var provider = new TemplateErrorReporterProvider(options, Substitute.For <SVsServiceProvider>(), Substitute.For <ITextDocumentFactoryService>());

            ITextBuffer textBuffer = new FakeTextBuffer(string.Empty);

            provider.CreateTagger <ErrorTag>(textBuffer);

            Assert.False(textBuffer.Properties.ContainsProperty(typeof(TemplateErrorReporter)));
        }
コード例 #19
0
        public static void TextViewCreatedDoesNotCreateTemplateCompletionHandlerWhenCompletionListsAreDisabled()
        {
            ITemplateEditorOptions options = OptionsWithCompletionListsEnabled(false);
            var adapterFactory             = Substitute.For <IVsEditorAdaptersFactoryService>();
            var provider = new TemplateCompletionHandlerProvider(options, adapterFactory, Substitute.For <SVsServiceProvider>(), Substitute.For <ICompletionBroker>());

            var viewAdapter = Substitute.For <IVsTextView>();

            provider.VsTextViewCreated(viewAdapter);

            adapterFactory.DidNotReceive().GetWpfTextView(viewAdapter);
        }
コード例 #20
0
        public static void TextViewCreatedDoesNotCreateTemplateCompletionHandlerWhenViewAdapterDoesNotHaveTextView()
        {
            ITemplateEditorOptions options = OptionsWithCompletionListsEnabled(true);
            var adapterFactory             = Substitute.For <IVsEditorAdaptersFactoryService>();

            adapterFactory.GetWpfTextView(Arg.Any <IVsTextView>()).Returns((IWpfTextView)null);

            var provider = new TemplateCompletionHandlerProvider(options, adapterFactory, Substitute.For <SVsServiceProvider>(), Substitute.For <ICompletionBroker>());

            provider.VsTextViewCreated(Substitute.For <IVsTextView>());

            // No exception expected
        }
コード例 #21
0
        public TemplateClassificationTaggerProvider(ITemplateEditorOptions options, IClassificationTypeRegistryService classificationTypeRegistry)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (classificationTypeRegistry == null)
            {
                throw new ArgumentNullException(nameof(classificationTypeRegistry));
            }

            this.options = options;
            this.classificationTypeRegistry = classificationTypeRegistry;
        }
コード例 #22
0
        public static void TextViewCreatedCreatesTemplateCompletionHandlerWhenViewAdapterHasTextView()
        {
            var viewProperties = new PropertyCollection();

            var view = Substitute.For <IWpfTextView>();

            view.Properties.Returns(viewProperties);

            var viewAdapter = Substitute.For <IVsTextView>();

            var adapterFactory = Substitute.For <IVsEditorAdaptersFactoryService>();

            adapterFactory.GetWpfTextView(viewAdapter).Returns(view);

            ITemplateEditorOptions options = OptionsWithCompletionListsEnabled(true);

            var provider = new TemplateCompletionHandlerProvider(options, adapterFactory, Substitute.For <SVsServiceProvider>(), Substitute.For <ICompletionBroker>());

            provider.VsTextViewCreated(viewAdapter);

            Assert.True(viewProperties.ContainsProperty(typeof(TemplateCompletionHandler)));
        }
コード例 #23
0
        public static void TestViewCreatedSetsNextHandlerOfTemplateCompletionHandler()
        {
            var viewProperties = new PropertyCollection();

            var view = Substitute.For <IWpfTextView>();

            view.Properties.Returns(viewProperties);

            var viewAdapter = Substitute.For <IVsTextView>();

            var adapterFactory = Substitute.For <IVsEditorAdaptersFactoryService>();

            adapterFactory.GetWpfTextView(viewAdapter).Returns(view);

            ITemplateEditorOptions options = OptionsWithCompletionListsEnabled(true);

            var provider = new TemplateCompletionHandlerProvider(options, adapterFactory, Substitute.For <SVsServiceProvider>(), Substitute.For <ICompletionBroker>());

            provider.VsTextViewCreated(viewAdapter);

            var handler = (TemplateCompletionHandler)viewProperties.GetProperty(typeof(TemplateCompletionHandler));

            viewAdapter.Received().AddCommandFilter(handler, out handler.NextHandler);
        }
コード例 #24
0
        public static void TextViewCreatedAddsTemplateCompletionHandlerToTextViewCommandFilters()
        {
            var viewProperties = new PropertyCollection();

            var view = Substitute.For <IWpfTextView>();

            view.Properties.Returns(viewProperties);

            var viewAdapter = Substitute.For <IVsTextView>();

            var adapterFactory = Substitute.For <IVsEditorAdaptersFactoryService>();

            adapterFactory.GetWpfTextView(viewAdapter).Returns(view);

            ITemplateEditorOptions options = OptionsWithCompletionListsEnabled(true);

            var provider = new TemplateCompletionHandlerProvider(options, adapterFactory, Substitute.For <SVsServiceProvider>(), Substitute.For <ICompletionBroker>());

            provider.VsTextViewCreated(viewAdapter);

            IOleCommandTarget nextTarget;

            viewAdapter.Received().AddCommandFilter(Arg.Any <TemplateCompletionHandler>(), out nextTarget);
        }
コード例 #25
0
        public TemplateErrorReporterProvider(
            ITemplateEditorOptions options,
            SVsServiceProvider serviceProvider,
            ITextDocumentFactoryService textDocumentFactory)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (textDocumentFactory == null)
            {
                throw new ArgumentNullException(nameof(textDocumentFactory));
            }

            this.options             = options;
            this.serviceProvider     = serviceProvider;
            this.textDocumentFactory = textDocumentFactory;
        }