public void SelectInterpreter(IPythonInterpreterFactory selection) { if (selection == null) { return; } if (!Dispatcher.CheckAccess()) { Dispatcher.BeginInvoke((Action)(() => SelectInterpreter(selection))); return; } var sel = Interpreters.FirstOrDefault(iv => iv.Interpreter == selection); if (sel != null) { BaseInterpreter = sel; } }
private void RefreshCanCreateVirtualEnv(string path) { if (!Dispatcher.CheckAccess()) { Dispatcher.BeginInvoke((Action)(() => RefreshCanCreateVirtualEnv(path))); return; } if (Interpreters.Count == 0) { WillCreateVirtualEnv = false; WillAddVirtualEnv = false; CannotCreateVirtualEnv = false; NoInterpretersInstalled = true; return; } if (!IsValidVirtualEnvPath(path) || BaseInterpreter == null) { WillCreateVirtualEnv = false; WillAddVirtualEnv = false; CannotCreateVirtualEnv = true; NoInterpretersInstalled = false; return; } if (Directory.Exists(path) && Directory.EnumerateFileSystemEntries(path).Any()) { WillCreateVirtualEnv = false; var options = VirtualEnv.FindInterpreterOptions(path, _interpreterService); if (options != null && File.Exists(options.InterpreterPath)) { var baseInterp = _interpreterService.FindInterpreter(options.Id, options.LanguageVersion); InterpreterView baseInterpView; if (baseInterp != null && (baseInterpView = Interpreters.FirstOrDefault(iv => iv.Interpreter == baseInterp)) != null) { if (_lastUserSelectedBaseInterpreter == null) { _lastUserSelectedBaseInterpreter = BaseInterpreter; } BaseInterpreter = baseInterpView; WillAddVirtualEnv = true; } else { WillAddVirtualEnv = false; } } else { WillAddVirtualEnv = false; } CannotCreateVirtualEnv = !WillAddVirtualEnv; NoInterpretersInstalled = false; } else { WillCreateVirtualEnv = true; WillAddVirtualEnv = false; CannotCreateVirtualEnv = false; NoInterpretersInstalled = false; if (_lastUserSelectedBaseInterpreter != null) { BaseInterpreter = _lastUserSelectedBaseInterpreter; _lastUserSelectedBaseInterpreter = null; } } }
private void RefreshCanCreateVirtualEnv(string path) { if (!Dispatcher.CheckAccess()) { Dispatcher.BeginInvoke((Action)(() => RefreshCanCreateVirtualEnv(path))); return; } if (Interpreters.Count == 0) { WillCreateVirtualEnv = false; WillAddVirtualEnv = false; CannotCreateVirtualEnv = false; NoInterpretersInstalled = true; return; } if (!IsValidVirtualEnvPath(path) || BaseInterpreter == null) { WillCreateVirtualEnv = false; WillAddVirtualEnv = false; CannotCreateVirtualEnv = true; NoInterpretersInstalled = false; return; } if (Directory.Exists(path) && Directory.EnumerateFileSystemEntries(path).Any()) { WillCreateVirtualEnv = false; var config = VirtualEnv.FindInterpreterConfiguration(null, path, _interpreterService); if (config != null && File.Exists(config.InterpreterPath)) { var baseInterpView = Interpreters.FirstOrDefault(v => v.Id == config.Id); if (baseInterpView != null) { if (_lastUserSelectedBaseInterpreter == null) { _lastUserSelectedBaseInterpreter = BaseInterpreter; } BaseInterpreter = baseInterpView; WillAddVirtualEnv = true; } else { WillAddVirtualEnv = false; } } else { WillAddVirtualEnv = false; } CannotCreateVirtualEnv = !WillAddVirtualEnv; NoInterpretersInstalled = false; } else { WillCreateVirtualEnv = true; WillAddVirtualEnv = false; CannotCreateVirtualEnv = false; NoInterpretersInstalled = false; if (_lastUserSelectedBaseInterpreter != null) { BaseInterpreter = _lastUserSelectedBaseInterpreter; _lastUserSelectedBaseInterpreter = null; } } }