Beispiel #1
0
        internal virtual async Task InitializeLanguageServerAsync()
        {
            if (ContentType == null)
            {
                Debug.Fail("ContentType should have been set before evaluator initialization.");
                return;
            }

            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var evaluator = _window.Evaluator as PythonCommonInteractiveEvaluator;

            if (evaluator == null && _window.Evaluator is SelectableReplEvaluator selEvaluator)
            {
                evaluator = selEvaluator.Evaluator as PythonCommonInteractiveEvaluator;
            }

            // Activation will now be automatic, but we'll still need to maintain a ReplDocument
            if (evaluator != null)
            {
                await PythonLanguageClient.ReadyTask;
                var client = _serviceProvider.GetPythonToolsService().LanguageClient;
                if (client != null)
                {
                    client.AddClientContext(new PythonLanguageClientContextRepl(evaluator)); // Don't fire a settings change. This can crash node for some reason
                    Document = new ReplDocument(_serviceProvider, _window, client);
                    await Document.InitializeAsync();
                }
            }
        }
Beispiel #2
0
        internal async Task RestartLanguageServerAsync()
        {
            if (ContentType != null)
            {
                // TODO: Pylance
                //PythonLanguageClient.DisposeLanguageClient(ContentType.TypeName);
                Document?.Dispose();
                Document = null;
            }

            await InitializeLanguageServerAsync();
        }