public void AddProvider(IPythonInterpreterFactoryProvider provider) { _providers.Add(provider); provider.InterpreterFactoriesChanged += provider_InterpreterFactoriesChanged; var evt = InterpretersChanged; if (evt != null) { evt(this, EventArgs.Empty); } }
private IEnumerable <KeyValuePair <IPythonInterpreterFactoryProvider, Dictionary <string, object> > > GetProvidersAndMetadata() { for (int i = 0; i < _providers.Length; i++) { IPythonInterpreterFactoryProvider value = LoadFactory(i); if (value != null) { yield return(new KeyValuePair <IPythonInterpreterFactoryProvider, Dictionary <string, object> >(value, _providers[i].Metadata)); } } }
public void AddProvider(IPythonInterpreterFactoryProvider provider) { _providers.Add(provider); provider.InterpreterFactoriesChanged += provider_InterpreterFactoriesChanged; var evt = InterpretersChanged; if (evt != null) { evt(this, EventArgs.Empty); } }
internal void ProjectLoaded(IPythonInterpreterFactoryProvider provider, IVsProject project) { if (provider == null) { return; } lock (_providers) { if (!_providers.ContainsKey(provider)) { _providers[provider] = project; provider.InterpreterFactoriesChanged += Interpreters_InterpreterFactoriesChanged; } } OnInterpreterFactoriesChanged(); }
internal void ProjectUnloaded(IPythonInterpreterFactoryProvider provider) { if (provider == null) { return; } lock (_providers) { if (_providers.Remove(provider)) { provider.InterpreterFactoriesChanged -= Interpreters_InterpreterFactoriesChanged; } } OnInterpreterFactoriesChanged(); }
internal void ProjectLoaded(IPythonInterpreterFactoryProvider provider, IVsProject project) { if (provider == null) { return; } lock (_providers) { if (!_providers.ContainsKey(provider)) { _providers[provider] = project; provider.InterpreterFactoriesChanged += Interpreters_InterpreterFactoriesChanged; } } OnInterpreterFactoriesChanged(); }
/// <summary> /// Handles creating the factory value and logging any failures. /// </summary> private IPythonInterpreterFactoryProvider LoadFactory(int i) { IPythonInterpreterFactoryProvider value = null; try { var provider = _providers[i]; if (provider != null) { value = provider.Value; } } catch (CompositionException ce) { Log("Failed to get interpreter factory value: {0}", ce); _providers[i] = null; } return(value); }
private static IList <IPythonInterpreterFactory> GetFactories(IPythonInterpreterFactoryProvider provider) { while (true) { try { var res = new List <IPythonInterpreterFactory>(); foreach (var f in provider.GetInterpreterFactories()) { res.Add(f); } return(res); } catch (InvalidOperationException ex) { // Collection changed, so retry Debug.WriteLine("Retrying GetInterpreterFactories because " + ex.Message); } } }
private IEnumerable <KeyValuePair <IPythonInterpreterFactoryProvider, Dictionary <string, object> > > GetProvidersAndMetadata() { for (int i = 0; i < _factoryProviders.Length; i++) { IPythonInterpreterFactoryProvider value = null; try { var provider = _factoryProviders[i]; if (provider != null) { value = provider.Value; } } catch (CompositionException ce) { Log("Failed to get interpreter factory value: {0}", ce); _factoryProviders[i] = null; } if (value != null) { yield return(new KeyValuePair <IPythonInterpreterFactoryProvider, Dictionary <string, object> >(value, _factoryProviders[i].Metadata)); } } }
public static IEnumerable <IPythonInterpreterFactory> GetInterpreterFactories(this IPythonInterpreterFactoryProvider self) { return(self.GetInterpreterConfigurations().Select(x => self.GetInterpreterFactory(x.Id))); }
// Used for testing. internal IPythonInterpreterFactoryProvider[] SetProviders(IPythonInterpreterFactoryProvider[] providers) { var oldProviders = _providers; _providers = providers; Provider_InterpreterFactoriesChanged(this, EventArgs.Empty); return oldProviders; }
internal void ProjectUnloaded(IPythonInterpreterFactoryProvider provider) { if (provider == null) { return; } lock (_providers) { if (_providers.Remove(provider)) { provider.InterpreterFactoriesChanged -= Interpreters_InterpreterFactoriesChanged; } } OnInterpreterFactoriesChanged(); }