public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList <ITextBuffer> subjectBuffers)
        {
            IntellisenseController controller;

            if (!textView.Properties.TryGetProperty <IntellisenseController>(typeof(IntellisenseController), out controller))
            {
                controller = new IntellisenseController(this, textView, _ServiceProvider);
            }

            var analyzer = textView.GetAnalyzer(_ServiceProvider);

            if (analyzer != null)
            {
                var buffer = subjectBuffers[0];

                foreach (var subjBuf in subjectBuffers)
                {
                    controller.PropagateAnalyzer(subjBuf);
                }

                var entry = analyzer.MonitorTextBuffer(textView, buffer);
                _hookedCloseEvents[textView] = Tuple.Create(entry.BufferParser, analyzer);
                textView.Closed += TextView_Closed;

                for (int i = 1; i < subjectBuffers.Count; i++)
                {
                    entry.BufferParser.AddBuffer(subjectBuffers[i]);
                }
                controller.SetBufferParser(entry.BufferParser);
            }
            return(controller);
        }
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList <ITextBuffer> subjectBuffers)
        {
            if (textView.Roles.Contains("DEBUGVIEW"))
            {
                // TODO: Determine the context for this view and attach to the correct analyzer
                return(null);
            }

            if (textView.TextBuffer.ContentType.IsOfType(CodeRemoteContentDefinition.CodeRemoteContentTypeName))
            {
                // We want default handling when this is a remote buffer
                return(null);
            }

            if (Services.Python.LanguageServerOptions.ServerDisabled)
            {
                return(null);
            }

            IntellisenseController controller;

            if (!textView.Properties.TryGetProperty(typeof(IntellisenseController), out controller))
            {
                controller = new IntellisenseController(this, textView);
            }

            foreach (var subjectBuffer in subjectBuffers)
            {
                controller.ConnectSubjectBuffer(subjectBuffer);
            }

            return(controller);
        }
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList<ITextBuffer> subjectBuffers) {
            IntellisenseController controller;
            if (!textView.Properties.TryGetProperty<IntellisenseController>(typeof(IntellisenseController), out controller)) {
                controller = new IntellisenseController(this, textView, _ServiceProvider);
            }

            var analyzer = textView.GetAnalyzer(_ServiceProvider);
            if (analyzer != null) {
                var buffer = subjectBuffers[0];

                foreach (var subjBuf in subjectBuffers) {
                    controller.PropagateAnalyzer(subjBuf);
                }

                var entry = analyzer.MonitorTextBuffer(textView, buffer);
                _hookedCloseEvents[textView] = Tuple.Create(entry.BufferParser, analyzer);
                textView.Closed += TextView_Closed;

                for (int i = 1; i < subjectBuffers.Count; i++) {
                    entry.BufferParser.AddBuffer(subjectBuffers[i]);
                }
                controller.SetBufferParser(entry.BufferParser);
            }
            return controller;
        }
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList<ITextBuffer> subjectBuffers) {
            IntellisenseController controller;
            if (!textView.Properties.TryGetProperty(typeof(IntellisenseController), out controller)) {
                controller = new IntellisenseController(this, textView, _ServiceProvider);
            }

            foreach (var subjectBuffer in subjectBuffers) {
                controller.ConnectSubjectBuffer(subjectBuffer);
            }

            return controller;
        }
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList <ITextBuffer> subjectBuffers)
        {
            IntellisenseController controller;

            if (!textView.Properties.TryGetProperty <IntellisenseController>(typeof(IntellisenseController), out controller))
            {
                controller = new IntellisenseController(this, textView, _ServiceProvider);
            }

            foreach (var subjectBuffer in subjectBuffers)
            {
                controller.ConnectSubjectBuffer(subjectBuffer);
            }

            return(controller);
        }
        internal static IntellisenseController GetOrCreateController(
            IServiceProvider serviceProvider,
            IComponentModel model,
            ITextView textView
            )
        {
            IntellisenseController controller;

            if (!textView.Properties.TryGetProperty <IntellisenseController>(typeof(IntellisenseController), out controller))
            {
                var intellisenseControllerProvider = (
                    from export in model.DefaultExportProvider.GetExports <IIntellisenseControllerProvider, IContentTypeMetadata>()
                    from exportedContentType in export.Metadata.ContentTypes
                    where exportedContentType == PythonCoreConstants.ContentType && export.Value.GetType() == typeof(IntellisenseControllerProvider)
                    select export.Value
                    ).First();
                controller = new IntellisenseController((IntellisenseControllerProvider)intellisenseControllerProvider, textView, serviceProvider);
            }
            return(controller);
        }
Beispiel #7
0
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList <ITextBuffer> subjectBuffers)
        {
            if (textView.Roles.Contains("DEBUGVIEW"))
            {
                // TODO: Determine the context for this view and attach to the correct analyzer
                return(null);
            }

            IntellisenseController controller;

            if (!textView.Properties.TryGetProperty(typeof(IntellisenseController), out controller))
            {
                controller = new IntellisenseController(this, textView);
            }

            foreach (var subjectBuffer in subjectBuffers)
            {
                controller.ConnectSubjectBuffer(subjectBuffer);
            }

            return(controller);
        }
 internal static IntellisenseController GetOrCreateController(
     IServiceProvider serviceProvider,
     IComponentModel model,
     ITextView textView
 ) {
     IntellisenseController controller;
     if (!textView.Properties.TryGetProperty<IntellisenseController>(typeof(IntellisenseController), out controller)) {
         var intellisenseControllerProvider = (
            from export in model.DefaultExportProvider.GetExports<IIntellisenseControllerProvider, IContentTypeMetadata>()
            from exportedContentType in export.Metadata.ContentTypes
            where exportedContentType == PythonCoreConstants.ContentType && export.Value.GetType() == typeof(IntellisenseControllerProvider)
            select export.Value
         ).First();
         controller = new IntellisenseController((IntellisenseControllerProvider)intellisenseControllerProvider, textView, serviceProvider);
     }
     return controller;
 }