Esempio n. 1
0
        public override void SaveSettingsToStorage()
        {
            // Synchronize backing properties with UI.
            if (_window != null)
            {
                _window.SyncPageWithControlSettings(PyService);
            }

            // Save settings.
            PyService.DebugInteractiveOptions.Save();

            // propagate changed settings to existing REPL windows
            var model        = ComponentModel;
            var replProvider = model.GetService <IReplWindowProvider>();

            foreach (var replWindow in replProvider.GetReplWindows())
            {
                PythonDebugReplEvaluator pyEval = replWindow.Evaluator as PythonDebugReplEvaluator;
                if (pyEval != null)
                {
                    if (Options.UseInterpreterPrompts)
                    {
                        replWindow.SetOptionValue(ReplOptions.PrimaryPrompt, pyEval.PrimaryPrompt);
                        replWindow.SetOptionValue(ReplOptions.SecondaryPrompt, pyEval.SecondaryPrompt);
                    }
                    else
                    {
                        replWindow.SetOptionValue(ReplOptions.PrimaryPrompt, Options.PrimaryPrompt);
                        replWindow.SetOptionValue(ReplOptions.SecondaryPrompt, Options.SecondaryPrompt);
                    }
                    replWindow.SetOptionValue(ReplOptions.DisplayPromptInMargin, !Options.InlinePrompts);
                    replWindow.SetOptionValue(ReplOptions.UseSmartUpDown, Options.ReplSmartHistory);
                }
            }
        }
Esempio n. 2
0
        public override void SaveSettingsToStorage()
        {
            // Synchronize backing properties with UI.
            if (_window != null)
            {
                _window.SyncPageWithControlSettings(PyService);
            }

            // Save settings.
            Options.Save();

            // propagate changed settings to existing REPL windows
            var model = ComponentModel;

            if (model == null)
            {
                // Might be shutting down?
                return;
            }

            var replProvider = model.GetService <InteractiveWindowProvider>();

            foreach (var replWindow in replProvider.GetReplWindows())
            {
                PythonDebugReplEvaluator pyEval = replWindow.Evaluator as PythonDebugReplEvaluator;
                if (pyEval != null)
                {
                    // TODO: Update REPL prompts
                    replWindow.SetSmartUpDown(Options.ReplSmartHistory);
                }
            }
        }
Esempio n. 3
0
        public void TestInit()
        {
            Version.AssertInstalled();
            var serviceProvider = PythonToolsTestUtilities.CreateMockServiceProvider();

            _evaluator = new PythonDebugReplEvaluator(serviceProvider);
            _window    = new MockReplWindow(_evaluator);
            _evaluator._Initialize(_window);
            _processes = new List <PythonProcess>();
        }
        public override void SaveSettingsToStorage()
        {
            // Synchronize backing properties with UI.
            if (_window != null)
            {
                _window.SyncPageWithControlSettings(PyService);
            }

            // Save settings.
            Options.Save();

            // propagate changed settings to existing REPL windows
            var model = ComponentModel;

            if (model == null)
            {
                // Might be shutting down?
                return;
            }

            var replProvider = model.GetService <IReplWindowProvider>();

            foreach (var replWindow in replProvider.GetReplWindows())
            {
                PythonDebugReplEvaluator pyEval = replWindow.Evaluator as PythonDebugReplEvaluator;
                if (pyEval != null)
                {
                    // HACK: Many more changes required to support updating
                    // prompts in Dev14. Fixing the crash for now and deferring
                    // the other work until we revamp REPLs completely.
#if !DEV14_OR_LATER
                    if (Options.UseInterpreterPrompts)
                    {
                        replWindow.SetPrompts(pyEval.PrimaryPrompt, pyEval.SecondaryPrompt);
                    }
                    else
                    {
                        replWindow.SetPrompts(Options.PrimaryPrompt, Options.SecondaryPrompt);
                    }
                    replWindow.SetOptionValue(ReplOptions.DisplayPromptInMargin, !Options.InlinePrompts);
#endif
                    replWindow.SetSmartUpDown(Options.ReplSmartHistory);
                }
            }
        }