Beispiel #1
0
        public virtual async Task <ExecutionResult> InitializeAsync()
        {
            if (_commands != null)
            {
                // Already initialized
                return(ExecutionResult.Success);
            }

            var msg = Strings.ReplInitializationMessage.FormatUI(
                DisplayName,
                AssemblyVersionInfo.Version,
                AssemblyVersionInfo.VSVersion
                ).Replace("&#x1b;", "\x1b");

            WriteOutput(msg, addNewline: true);

            var langBuffer = _window.CurrentLanguageBuffer;

            if (langBuffer != null)
            {
                // Reinitializing, and our new language buffer does not automatically
                // get connected to the Intellisense controller. Let's fix that.
                var controller = IntellisenseControllerProvider.GetController(_window.TextView);
                controller?.ConnectSubjectBuffer(langBuffer);
            }

            _window.TextView.Options.SetOptionValue(InteractiveWindowOptions.SmartUpDown, UseSmartHistoryKeys);
            _commands = GetInteractiveCommands(_serviceProvider, _window, this);

            return(ExecutionResult.Success);
        }
        public IOleCommandTarget GetCommandTarget(IWpfTextView textView, IOleCommandTarget nextTarget)
        {
            if (textView.TextBuffer.ContentType.IsOfType(CodeRemoteContentDefinition.CodeRemoteContentTypeName))
            {
                // We want default handling when this is a remote buffer
                return(null);
            }

            var window = textView.TextBuffer.GetInteractiveWindow();

            var controller = IntellisenseControllerProvider.GetOrCreateController(
                _editorServices.Site,
                _editorServices.ComponentModel,
                textView
                );

            controller._oldTarget = nextTarget;

            var editFilter = EditFilter.GetOrCreate(_editorServices, textView, controller);

            if (window == null)
            {
                return(editFilter);
            }

            textView.Properties[IntellisenseController.SuppressErrorLists] = IntellisenseController.SuppressErrorLists;
            return(ReplEditFilter.GetOrCreate(_editorServices.Site, _editorServices.ComponentModel, textView, editFilter));
        }
Beispiel #3
0
        public IOleCommandTarget GetCommandTarget(IWpfTextView textView, IOleCommandTarget nextTarget)
        {
            EditFilter filter;

            if (!textView.Properties.TryGetProperty <EditFilter>(typeof(EditFilter), out filter))
            {
                textView.Properties[typeof(EditFilter)] = filter = new EditFilter(
                    textView,
                    _editorOpsFactory.GetEditorOperations(textView),
                    _serviceProvider
                    );
                var window = textView.TextBuffer.GetInteractiveWindow();
                if (window != null && window.Evaluator is PythonReplEvaluator)
                {
                    textView.Properties.AddProperty(typeof(PythonReplEvaluator), (PythonReplEvaluator)window.Evaluator);
                }
                var intellisenseController = IntellisenseControllerProvider.GetOrCreateController(
                    _serviceProvider,
                    (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel)),
                    textView
                    );
                intellisenseController._oldTarget = nextTarget;
                filter._next = intellisenseController;
            }
            return(filter);
        }
Beispiel #4
0
        private async Task DoInitializeAsync(IInteractiveEvaluator eval)
        {
            await eval.InitializeAsync();

            var view   = eval?.CurrentWindow?.TextView;
            var buffer = eval?.CurrentWindow?.CurrentLanguageBuffer;

            if (view != null && buffer != null)
            {
                var controller = IntellisenseControllerProvider.GetOrCreateController(_serviceProvider, _serviceProvider.GetComponentModel(), view);
                controller.DisconnectSubjectBuffer(buffer);
                controller.ConnectSubjectBuffer(buffer);
            }
        }
        public Task <ExecutionResult> InitializeAsync()
        {
            _commands = PythonInteractiveEvaluator.GetInteractiveCommands(_serviceProvider, CurrentWindow, this);

            var langBuffer = CurrentWindow.CurrentLanguageBuffer;

            if (langBuffer != null)
            {
                // Reinitializing, and our new language buffer does not automatically
                // get connected to the Intellisense controller. Let's fix that.
                var controller = IntellisenseControllerProvider.GetController(CurrentWindow.TextView);
                controller?.ConnectSubjectBuffer(langBuffer);
            }

            CurrentWindow.TextView.Options.SetOptionValue(InteractiveWindowOptions.SmartUpDown, CurrentOptions.UseSmartHistory);
            CurrentWindow.WriteLine(Strings.DebugReplHelpMessage);

            CurrentWindow.ReadyForInput += OnReadyForInput;
            return(ExecutionResult.Succeeded);
        }
        public IOleCommandTarget GetCommandTarget(IWpfTextView textView, IOleCommandTarget nextTarget)
        {
            var window = textView.TextBuffer.GetInteractiveWindow();

            var controller = IntellisenseControllerProvider.GetOrCreateController(
                _serviceProvider,
                _componentModel,
                textView
                );

            controller._oldTarget = nextTarget;

            var editFilter = EditFilter.GetOrCreate(_serviceProvider, _componentModel, textView, controller);

            if (window == null)
            {
                return(editFilter);
            }

            return(ReplEditFilter.GetOrCreate(_serviceProvider, _componentModel, textView, editFilter));
        }
Beispiel #7
0
        public void ReplWindowCreated(IReplWindow window)
        {
            var model      = _serviceProvider.GetComponentModel();
            var textView   = window.TextView;
            var vsTextView = _adapterFact.GetViewAdapter(textView);

            if (window.Evaluator is PythonReplEvaluator)
            {
                textView.Properties.AddProperty(typeof(PythonReplEvaluator), (PythonReplEvaluator)window.Evaluator);
            }

            var editFilter             = new EditFilter(window.TextView, _editorOpsFactory.GetEditorOperations(textView), _serviceProvider);
            var intellisenseController = IntellisenseControllerProvider.GetOrCreateController(
                _serviceProvider,
                model,
                textView
                );

            editFilter.AttachKeyboardFilter(vsTextView);
            intellisenseController.AttachKeyboardFilter();
        }
Beispiel #8
0
        public IOleCommandTarget GetCommandTarget(IWpfTextView textView, IOleCommandTarget nextTarget)
        {
            EditFilter filter;

            if (!textView.Properties.TryGetProperty <EditFilter>(typeof(EditFilter), out filter))
            {
                textView.Properties[typeof(EditFilter)] = filter = new EditFilter(
                    textView,
                    _editorOpsFactory.GetEditorOperations(textView),
                    _serviceProvider
                    );
                var intellisenseController = IntellisenseControllerProvider.GetOrCreateController(
                    _serviceProvider,
                    (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel)),
                    textView
                    );
                intellisenseController._oldTarget = nextTarget;
                filter._next = intellisenseController;
            }
            return(filter);
        }
        public IOleCommandTarget GetCommandTarget(IWpfTextView textView, IOleCommandTarget nextTarget)
        {
            var window = textView.TextBuffer.GetInteractiveWindow();

            var controller = IntellisenseControllerProvider.GetOrCreateController(
                _editorServices.Site,
                _editorServices.ComponentModel,
                textView
                );

            controller._oldTarget = nextTarget;

            var editFilter = EditFilter.GetOrCreate(_editorServices, textView, controller);

            if (window == null)
            {
                return(editFilter);
            }

            textView.Properties[IntellisenseController.SuppressErrorLists] = IntellisenseController.SuppressErrorLists;
            return(ReplEditFilter.GetOrCreate(_editorServices.Site, _editorServices.ComponentModel, textView, editFilter));
        }
Beispiel #10
0
        private int ExecWorker(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            var eval = _interactive.Evaluator;

            // preprocessing
            if (pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97)
            {
                switch ((VSConstants.VSStd97CmdID)nCmdID)
                {
                case VSConstants.VSStd97CmdID.Cut:
                    if (_editorOps.CutSelection())
                    {
                        return(VSConstants.S_OK);
                    }
                    break;

                case VSConstants.VSStd97CmdID.Copy:
                    if (_editorOps.CopySelection())
                    {
                        return(VSConstants.S_OK);
                    }
                    break;

                case VSConstants.VSStd97CmdID.Paste:
                    string pasting = eval.FormatClipboard();
                    if (pasting != null)
                    {
                        PasteReplCode(
                            _interactive,
                            pasting,
                            (eval as PythonInteractiveEvaluator)?.LanguageVersion ?? PythonLanguageVersion.None
                            ).DoNotWait();

                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }
            else if (pguidCmdGroup == CommonConstants.Std2KCmdGroupGuid)
            {
                switch ((VSConstants.VSStd2KCmdID)nCmdID)
                {
                case VSConstants.VSStd2KCmdID.CANCEL:
                    var controller = IntellisenseControllerProvider.GetController(_textView);
                    if (controller != null && controller.DismissCompletionSession())
                    {
                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }
            else if (pguidCmdGroup == GuidList.guidPythonToolsCmdSet)
            {
                switch (nCmdID)
                {
                case PkgCmdIDList.comboIdReplScopes:
                    ScopeComboBoxHandler(pvaIn, pvaOut);
                    return(VSConstants.S_OK);

                case PkgCmdIDList.comboIdReplEvaluators:
                    EvaluatorComboBoxHandler(pvaIn, pvaOut);
                    return(VSConstants.S_OK);

                case PkgCmdIDList.comboIdReplScopesGetList:
                    ScopeComboBoxGetList(pvaOut);
                    return(VSConstants.S_OK);

                case PkgCmdIDList.comboIdReplEvaluatorsGetList:
                    EvaluatorComboBoxGetList(pvaOut);
                    return(VSConstants.S_OK);

                case PkgCmdIDList.cmdidNewInteractiveWindow:
                    return(CloneInteractiveWindow());

                case PkgCmdIDList.cmdidOpenInteractiveScopeInEditor:
                    var path = GetCurrentScopeSourcePath();
                    if (!string.IsNullOrEmpty(path))
                    {
                        PythonToolsPackage.NavigateTo(_serviceProvider, path, Guid.Empty, 0);
                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }

            return(_next.Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut));
        }