Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
 }