int IOleCommandTarget.Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { if (manager.IsEnabled) { if (IsActive) { if (pguidCmdGroup == VSConstants.VSStd2K) { if ((int)nCmdID == 1) { var c = (char)(ushort)Marshal.GetObjectForNativeVariant(pvaIn); if (c == 45 && universalArgumentString.Length == 0 || char.IsNumber(c)) { manager.UpdateStatus(c.ToString(), true); universalArgumentString.Append(c); return(0); } Commit(true); } else if ((int)nCmdID == 2) { Commit(true); } } else if (pguidCmdGroup == typeof(VSConstants.VSStd97CmdID).GUID && (int)nCmdID == 17) { Commit(true); } if (pguidCmdGroup == typeof(EmacsCommandID).GUID) { if ((int)nCmdID == 51) { Cancel(); } else { Commit((int)nCmdID != 52); } } } else if (manager.UniversalArgument.HasValue) { manager.UniversalArgument = new int?(); } } return(1); }
public int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { if (manager.IsEnabled) { IEmacsCommandMetadata commandMetadata = manager.GetCommandMetadata((int)nCmdID, pguidCmdGroup); if (commandMetadata != null) { if (commandMetadata != null) { try { manager.Execute(view, commandMetadata, true); manager.AfterSearch = false; } catch (Exception ex) { manager.UpdateStatus(ex.Message, false); return(1); } } return(0); } if (pguidCmdGroup == VSConstants.VSStd2K && (int)nCmdID == 1 && manager.UniversalArgument.HasValue && manager.UniversalArgument.Value > 1) { int num1 = manager.UniversalArgument.Value; while (num1-- > 0) { int num2 = router.ExecuteCommand(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); if (num2 != 0) { return(num2); } } return(0); } if (pguidCmdGroup == VSConstants.VSStd2K && ((int)nCmdID == 122 || (int)nCmdID == 123)) { MarkSession.GetSession(view).PushMark(true); manager.AfterSearch = true; } } return(1); }