private PythonAdvancedEditorOptions CreateAdvancedEditorOptions() { var opts = new PythonAdvancedEditorOptions(this); opts.Load(); return(opts); }
#pragma warning restore CS0067 public async Task <Connection> ActivateAsync(CancellationToken token) { if (_server == null) { Debug.Fail("Should not have called StartAsync when _server is null."); return(null); } await JoinableTaskContext.Factory.SwitchToMainThreadAsync(); Site.GetPythonToolsService().LanguageClient = this; CreateClientContexts(); _analysisOptions = Site.GetPythonToolsService().AnalysisOptions; _advancedEditorOptions = Site.GetPythonToolsService().AdvancedEditorOptions; _analysisOptions.Changed += OnSettingsChanged; _advancedEditorOptions.Changed += OnSettingsChanged; var dte = (EnvDTE80.DTE2)Site.GetService(typeof(EnvDTE.DTE)); var solutionEvents = dte.Events.SolutionEvents; solutionEvents.Opened += OnSolutionOpened; solutionEvents.BeforeClosing += OnSolutionClosing; solutionEvents.ProjectAdded += OnProjectAdded; solutionEvents.ProjectRemoved += OnProjectRemoved; WorkspaceService.OnActiveWorkspaceChanged += OnWorkspaceOpening; _disposables.Add(() => { _clientContexts.ForEach(c => c.InterpreterChanged -= OnSettingsChanged); _analysisOptions.Changed -= OnSettingsChanged; _advancedEditorOptions.Changed -= OnSettingsChanged; _clientContexts.ForEach(c => c.Dispose()); _clientContexts.Clear(); solutionEvents.Opened -= OnSolutionOpened; solutionEvents.ProjectAdded -= OnProjectAdded; solutionEvents.ProjectRemoved -= OnProjectRemoved; solutionEvents.BeforeClosing -= OnSolutionClosing; WorkspaceService.OnActiveWorkspaceChanged -= OnWorkspaceOpening; }); return(await _server.ActivateAsync()); }