private int PreLanguageCommandFilterExec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            var nextTarget = firstLanguageServiceCommandFilter ?? _editorServicesCommandFilter;

            if (pguidCmdGroup == Guids.InteractiveCommandSetId)
            {
                switch ((CommandIds)nCmdID)
                {
                case CommandIds.AbortExecution: _window.AbortCommand(); return(VSConstants.S_OK);

                case CommandIds.Reset: _window.Operations.ResetAsync(); return(VSConstants.S_OK);

                case CommandIds.SmartExecute: _window.Operations.ExecuteInput(); return(VSConstants.S_OK);

                case CommandIds.HistoryNext: _window.Operations.HistoryNext(); return(VSConstants.S_OK);

                case CommandIds.HistoryPrevious: _window.Operations.HistoryPrevious(); return(VSConstants.S_OK);

                case CommandIds.ClearScreen: _window.Operations.ClearView(); return(VSConstants.S_OK);

                case CommandIds.SearchHistoryNext:
                    _window.Operations.HistorySearchNext();
                    return(VSConstants.S_OK);

                case CommandIds.SearchHistoryPrevious:
                    _window.Operations.HistorySearchPrevious();
                    return(VSConstants.S_OK);
                }
            }
            else if (pguidCmdGroup == VSConstants.VSStd2K)
            {
                switch ((VSConstants.VSStd2KCmdID)nCmdID)
                {
                case VSConstants.VSStd2KCmdID.TYPECHAR:
                    _window.Operations.Delete();
                    break;

                case VSConstants.VSStd2KCmdID.RETURN:
                    if (_window.Operations.TrySubmitStandardInput())
                    {
                        return(VSConstants.S_OK);
                    }
                    break;

                case VSConstants.VSStd2KCmdID.SHOWCONTEXTMENU:
                    ShowContextMenu();
                    return(VSConstants.S_OK);
                }
            }
            else if (currentBufferCommandHandler != null && pguidCmdGroup == VSConstants.GUID_VSStandardCommandSet97)
            {
                // undo/redo support:
                switch ((VSConstants.VSStd97CmdID)nCmdID)
                {
                case VSConstants.VSStd97CmdID.Undo:
                case VSConstants.VSStd97CmdID.MultiLevelUndo:
                case VSConstants.VSStd97CmdID.MultiLevelUndoList:
                case VSConstants.VSStd97CmdID.Redo:
                case VSConstants.VSStd97CmdID.MultiLevelRedo:
                case VSConstants.VSStd97CmdID.MultiLevelRedoList:
                    return(currentBufferCommandHandler.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut));
                }
            }

            int res = nextTarget.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);

#if DUMP_COMMANDS
            DumpCmd("Exec", result, ref pguidCmdGroup, nCmdID, 0);
#endif
            return(res);
        }
예제 #2
0
 public override Task<ExecutionResult> Execute(IInteractiveWindow window, string arguments) {
     window.AbortCommand();
     return ExecutionResult.Succeeded;
 }
예제 #3
0
 public Task<ExecutionResult> Execute(IReplWindow window, string arguments)
 {
     window.AbortCommand();
     return ExecutionResult.Succeeded;
 }
예제 #4
0
 public override Task <ExecutionResult> Execute(IInteractiveWindow window, string arguments)
 {
     window.AbortCommand();
     return(ExecutionResult.Succeeded);
 }