Exemple #1
0
        private PythonAnalysisOptions CreateAnalysisOptions()
        {
            var opts = new PythonAnalysisOptions(this);

            opts.Load();
            return(opts);
        }
Exemple #2
0
#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());
        }