private void List_ViewSelected(object sender, EnvironmentViewEventArgs e) { var view = e.View; if (view.Factory == null || view.ExtensionsCreated) { return; } // We used to create all the extensions up front in List_ViewCreated // but that slowed down initialization of the tool window considerably // due to the package manager extension in particular. // We now create the extensions only if they are likely to be used, // the first time an environment is selected in the list view. view.ExtensionsCreated = true; foreach (var pm in (_site.GetComponentModel().GetService <IInterpreterOptionsService>()?.GetPackageManagers(view.Factory)).MaybeEnumerate()) { try { var pep = new PipExtensionProvider(view.Factory, pm); pep.QueryShouldElevate += PipExtensionProvider_QueryShouldElevate; pep.OperationStarted += PipExtensionProvider_OperationStarted; pep.OutputTextReceived += PipExtensionProvider_OutputTextReceived; pep.ErrorTextReceived += PipExtensionProvider_ErrorTextReceived; pep.OperationFinished += PipExtensionProvider_OperationFinished; view.Extensions.Add(pep); } catch (NotSupportedException) { } } var model = _site.GetComponentModel(); if (model != null) { try { foreach (var provider in model.GetExtensions <IEnvironmentViewExtensionProvider>()) { try { var ext = provider.CreateExtension(view); if (ext != null) { view.Extensions.Add(ext); } } catch (Exception ex) { LogLoadException(provider, ex); } } } catch (Exception ex2) { LogLoadException(null, ex2); } } }
private void List_ViewCreated(object sender, EnvironmentViewEventArgs e) { var view = e.View; if (view.Factory == null) { return; } try { var pep = new PipExtensionProvider(view.Factory); pep.QueryShouldElevate += PipExtensionProvider_QueryShouldElevate; pep.OperationStarted += PipExtensionProvider_OperationStarted; pep.OutputTextReceived += PipExtensionProvider_OutputTextReceived; pep.ErrorTextReceived += PipExtensionProvider_ErrorTextReceived; pep.OperationFinished += PipExtensionProvider_OperationFinished; view.Extensions.Add(pep); } catch (NotSupportedException) { } var _withDb = view.Factory as PythonInterpreterFactoryWithDatabase; if (_withDb != null && !string.IsNullOrEmpty(_withDb.DatabasePath)) { view.Extensions.Add(new DBExtensionProvider(_withDb)); } var model = _site.GetComponentModel(); if (model != null) { try { foreach (var provider in model.GetExtensions <IEnvironmentViewExtensionProvider>()) { try { var ext = provider.CreateExtension(view); if (ext != null) { view.Extensions.Add(ext); } } catch (Exception ex) { LogLoadException(provider, ex); } } } catch (Exception ex2) { LogLoadException(null, ex2); } } }
private void Window_ViewCreated(object sender, EnvironmentViewEventArgs e) { if (CreateDBExtension) { var withDb = e.View.Factory as PythonInterpreterFactoryWithDatabase; if (withDb != null) { e.View.Extensions.Add(new DBExtensionProvider(withDb)); } } if (CreatePipExtension) { var pip = new PipExtensionProvider(e.View.Factory); pip.OutputTextReceived += (s, e2) => Console.WriteLine(e2.Value); e.View.Extensions.Add(pip); } }
private void List_ViewCreated(object sender, EnvironmentViewEventArgs e) { var view = e.View; var pep = new PipExtensionProvider(view.Factory); pep.GetElevateSetting += PipExtensionProvider_GetElevateSetting; pep.OperationStarted += PipExtensionProvider_OperationStarted; pep.OutputTextReceived += PipExtensionProvider_OutputTextReceived; pep.ErrorTextReceived += PipExtensionProvider_ErrorTextReceived; pep.OperationFinished += PipExtensionProvider_OperationFinished; view.Extensions.Add(pep); var _withDb = view.Factory as PythonInterpreterFactoryWithDatabase; if (_withDb != null) { view.Extensions.Add(new DBExtensionProvider(_withDb)); } }
private void List_ViewCreated(object sender, EnvironmentViewEventArgs e) { var view = e.View; var pep = new PipExtensionProvider(view.Factory); pep.GetElevateSetting += PipExtensionProvider_GetElevateSetting; pep.OperationStarted += PipExtensionProvider_OperationStarted; pep.OutputTextReceived += PipExtensionProvider_OutputTextReceived; pep.ErrorTextReceived += PipExtensionProvider_ErrorTextReceived; pep.OperationFinished += PipExtensionProvider_OperationFinished; view.Extensions.Add(pep); var _withDb = view.Factory as PythonInterpreterFactoryWithDatabase; if (_withDb != null) { view.Extensions.Add(new DBExtensionProvider(_withDb)); } var model = _site.GetComponentModel(); if (model != null) { try { foreach (var provider in model.GetExtensions <IEnvironmentViewExtensionProvider>()) { try { var ext = provider.CreateExtension(view); if (ext != null) { view.Extensions.Add(ext); } } catch (Exception ex) { LogLoadException(provider, ex); } } } catch (Exception ex2) { LogLoadException(null, ex2); } } }