internal PythonToolsService(IServiceContainer container) { _container = container; var langService = new PythonLanguageInfo(container); _container.AddService(langService.GetType(), langService, true); IVsTextManager textMgr = (IVsTextManager)container.GetService(typeof(SVsTextManager)); if (textMgr != null) { var langPrefs = new LANGPREFERENCES[1]; langPrefs[0].guidLang = typeof(PythonLanguageInfo).GUID; ErrorHandler.ThrowOnFailure(textMgr.GetUserPreferences(null, null, langPrefs, null)); _langPrefs = new LanguagePreferences(this, langPrefs[0]); Guid guid = typeof(IVsTextManagerEvents2).GUID; IConnectionPoint connectionPoint; ((IConnectionPointContainer)textMgr).FindConnectionPoint(ref guid, out connectionPoint); connectionPoint.Advise(_langPrefs, out _langPrefsTextManagerCookie); } _optionsService = (IPythonToolsOptionsService)container.GetService(typeof(IPythonToolsOptionsService)); var compModel = (IComponentModel)container.GetService(typeof(SComponentModel)); _interpreterRegistry = compModel.GetService <IInterpreterRegistryService>(); if (_interpreterRegistry != null) { _interpreterRegistry.InterpretersChanged += InterpretersChanged; } _interpreterOptionsService = compModel.GetService <IInterpreterOptionsService>(); if (_interpreterOptionsService != null) // not available in some test cases... { _interpreterOptionsService.DefaultInterpreterChanged += UpdateDefaultAnalyzer; LoadInterpreterOptions(); } _idleManager = new IdleManager(container); _advancedOptions = new AdvancedEditorOptions(this); _debuggerOptions = new DebuggerOptions(this); _generalOptions = new GeneralOptions(this); _surveyNews = new SurveyNewsService(container); _suppressDialogOptions = new SuppressDialogOptions(this); _globalInterpreterOptions = new GlobalInterpreterOptions(this, _interpreterOptionsService, _interpreterRegistry); _globalInterpreterOptions.Load(); _interactiveOptions = new PythonInteractiveOptions(this, "Interactive"); _interactiveOptions.Load(); _debugInteractiveOptions = new PythonInteractiveOptions(this, "Debug Interactive Window"); _debuggerOptions.Load(); _factoryProviders = ComponentModel.DefaultExportProvider.GetExports <IPythonInterpreterFactoryProvider, Dictionary <string, object> >(); _logger = new PythonToolsLogger(ComponentModel.GetExtensions <IPythonToolsLogger>().ToArray()); InitializeLogging(); }
internal PythonToolsService(IServiceContainer container) { _container = container; var langService = new PythonLanguageInfo(container); _container.AddService(langService.GetType(), langService, true); _langPrefs = new Lazy <LanguagePreferences>(() => new LanguagePreferences(this, typeof(PythonLanguageInfo).GUID)); _optionsService = (IPythonToolsOptionsService)container.GetService(typeof(IPythonToolsOptionsService)); var compModel = (IComponentModel)container.GetService(typeof(SComponentModel)); _interpreterRegistry = compModel.GetService <IInterpreterRegistryService>(); if (_interpreterRegistry != null) { _interpreterRegistry.InterpretersChanged += InterpretersChanged; } _interpreterOptionsService = compModel.GetService <IInterpreterOptionsService>(); if (_interpreterOptionsService != null) // not available in some test cases... { _interpreterOptionsService.DefaultInterpreterChanged += UpdateDefaultAnalyzer; LoadInterpreterOptions(); } _idleManager = new IdleManager(container); _advancedOptions = new AdvancedEditorOptions(this); _debuggerOptions = new DebuggerOptions(this); _generalOptions = new GeneralOptions(this); _surveyNews = new SurveyNewsService(container); _suppressDialogOptions = new SuppressDialogOptions(this); _globalInterpreterOptions = new GlobalInterpreterOptions(this, _interpreterOptionsService, _interpreterRegistry); _globalInterpreterOptions.Load(); _interactiveOptions = new PythonInteractiveOptions(this, "Interactive"); _interactiveOptions.Load(); _debugInteractiveOptions = new PythonInteractiveOptions(this, "Debug Interactive Window"); _debuggerOptions.Load(); _factoryProviders = ComponentModel.DefaultExportProvider.GetExports <IPythonInterpreterFactoryProvider, Dictionary <string, object> >(); _logger = new PythonToolsLogger(ComponentModel.GetExtensions <IPythonToolsLogger>().ToArray()); InitializeLogging(); }