public ITagger <T> CreateTagger <T>(ITextBuffer buffer) where T : ITag
        {
            var classifier = VsServiceManager.GetScriptColorizer(buffer) ?? ClassifierAggregatorService.GetClassifier(buffer);

            return(buffer.Properties.GetOrCreateSingletonProperty(
                       () => new OutliningTagger(buffer, classifier)) as ITagger <T>);
        }
        public ScriptCompletionReplacementSource(ITextBuffer textBuffer)
        {
            _textBuffer = textBuffer;

            if (textBuffer.ContentType.TypeName.Equals("HTML", StringComparison.OrdinalIgnoreCase))
            {
                _lbm = VsServiceManager.GetLanguageBlockManager(textBuffer);
            }
        }
        public ITagger <T> CreateTagger <T>(ITextView textView, ITextBuffer buffer)
            where T : ITag
        {
            var textStructureNavigator = TextStructureNavigatorSelector.GetTextStructureNavigator(textView.TextBuffer);

            var classifier = VsServiceManager.GetScriptColorizer(buffer) ?? ClassifierAggregatorService.GetClassifier(buffer);

            return(new HighlightWordTagger(textView, buffer, TextSearchService, textStructureNavigator, classifier) as ITagger <T>);
        }
示例#4
0
        public static VsServiceManager Setup(VsAppShell instance)
        {
            var serviceManager = new VsServiceManager(instance);

            var catalog = VsTestCompositionCatalog.Current;

            var batch = new CompositionBatch().AddValue <ICoreShell>(instance);

            VsTestCompositionCatalog.Current.Container.Compose(batch);

            serviceManager.CompositionService = catalog.CompositionService;
            serviceManager.ExportProvider     = catalog.ExportProvider;
            serviceManager
            // ICoreShell
            .AddService(instance)
            // MEF
            .AddService(catalog)
            .AddService(catalog.CompositionService)
            .AddService(catalog.ExportProvider)
            // IMainThread and basic services
            .AddService(UIThreadHelper.Instance.MainThread)
            .AddService(Substitute.For <IActionLog>())
            .AddService(Substitute.For <IIdleTimeService>())
            .AddService(new VsApplicationMock())
            .AddService(new SecurityServiceStub())
            .AddService(new MaxLoggingPermissions())
            .AddService(new WindowsFileSystem())
            .AddService <IOutputService, TestOutputService>()
            .AddService(new RegistryImpl())
            .AddService(new ProcessServices())
            .AddService(new TestUIServices(UIThreadHelper.Instance.ProgressDialog))
            .AddService(UIThreadHelper.Instance.TaskService)
            .AddService(new TestPlatformServices())
            .AddService(new RSettingsStub())
            .AddService(new REditorSettings(new TestSettingsStorage()))
            .AddService(new TestImageService())
            .AddService(new VsEditorSupport(serviceManager))
            .AddRComponentsServices()
            .AddWindowsRInterpretersServices()
            .AddWindowsHostClientServices()
            .AddWindowsRComponentsServices()
            // OLE and VS specifics
            .AddService(new TestStatusBar())
            .AddService(new VsRegisterProjectGeneratorsMock(), typeof(SVsRegisterProjectTypes))
            .AddService(VsRegisterEditorsMock.Create(), typeof(SVsRegisterEditors))
            .AddService(new MenuCommandServiceMock(), typeof(IMenuCommandService))
            .AddService(new ComponentModelMock(VsTestCompositionCatalog.Current), typeof(SComponentModel))
            .AddService(new TextManagerMock(), typeof(SVsTextManager))
            .AddService(VsImageServiceMock.Create(), typeof(SVsImageService))
            .AddService(new VsUiShellMock(), typeof(SVsUIShell))
            .AddService(OleComponentManagerMock.Create(), typeof(SOleComponentManager))
            .AddService(VsSettingsManagerMock.Create(), typeof(SVsSettingsManager))
            .AddService(new UIHostLocaleMock(), typeof(SUIHostLocale));

            return(serviceManager);
        }
        public ITagger <T> CreateTagger <T>(ITextView textView, ITextBuffer buffer)
            where T : ITag
        {
            if (textView == null)
            {
                return(null);
            }

            var classifier = VsServiceManager.GetScriptColorizer(buffer) ?? ClassifierAggregatorService.GetClassifier(buffer);

            return(new JScriptBraceMatchingTagger(textView, buffer, classifier) as ITagger <T>);
        }
示例#6
0
        public ScriptCompletionWatcher(IWpfTextView view, ICompletionBroker broker)
        {
            _textView = view;
            _broker   = broker;

            var htmlBuffers = view.BufferGraph.GetTextBuffers(tb => tb.ContentType.TypeName.Equals("HTML", StringComparison.OrdinalIgnoreCase));

            if (htmlBuffers.Any())
            {
                _lbm = VsServiceManager.GetLanguageBlockManager(htmlBuffers.First());
            }
        }
示例#7
0
        internal JScriptBraceMatchingTagger(ITextView view, ITextBuffer sourceBuffer, IClassifier classifier)
        {
            _view             = view;
            _sourceBuffer     = sourceBuffer;
            _currentCharPoint = null;
            _classifier       = classifier;

            _view.TextBuffer.Changed    += TextBuffer_Changed;
            _view.Caret.PositionChanged += Caret_PositionChanged;

            if (sourceBuffer.ContentType.TypeName.Equals("HTML", StringComparison.OrdinalIgnoreCase))
            {
                _lbm = VsServiceManager.GetLanguageBlockManager(_sourceBuffer);
            }
        }
示例#8
0
        public OutliningTagger(ITextBuffer buffer, IClassifier classifier)
        {
            _buffer     = buffer;
            _classifier = classifier;
            _sections   = new List <ITrackingSpan>();

            if (buffer.ContentType.TypeName.Equals("HTML", StringComparison.OrdinalIgnoreCase))
            {
                _lbm = VsServiceManager.GetLanguageBlockManager(buffer);
            }

            _timer          = new DispatcherTimer(DispatcherPriority.ApplicationIdle);
            _timer.Interval = TimeSpan.FromMilliseconds(3000); // We'll force a reparse after 3 secs of no buffer changes
            _timer.Tick    += (sender, args) =>
            {
                Debug.WriteLine("OutliningTagger: _timer.Tick fired");
                _timer.Stop();
                ReparseFile();
            };
            buffer.Changed += BufferChanged;
            ReparseFile(); // Force an initial full parse
            _timer.Start();
        }