Example #1
0
        private async System.Threading.Tasks.Task <bool> DispatchGoToDef()
        {
            bool showDefinitionsPeek = _view.Options.GetOptionValue(ControlClickOpensPeekOption.OptionKey);
            Guid cmdGroup            = showDefinitionsPeek ? VSConstants.VsStd12 : VSConstants.GUID_VSStandardCommandSet97;
            uint cmdID = showDefinitionsPeek ? (uint)VSConstants.VSStd12CmdID.PeekDefinition : (uint)VSConstants.VSStd97CmdID.GotoDefn;

            // Don't block until we've finished executing the command
            bool success = true;

            using (ITelemetryActivity activity = await _telemetrySession.CreateActivityAsync(typeof(GoToDefMouseHandler).Assembly, "VS/PPT-GoToDef"))
            {
                int hr = _commandTarget.Exec(ref cmdGroup,
                                             cmdID,
                                             (uint)OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
                                             System.IntPtr.Zero,
                                             System.IntPtr.Zero);

                activity.SetBoolProperty("VS.PPT-GoToDef.ThroughPeek", showDefinitionsPeek);

                if (ErrorHandler.Failed(hr))
                {
                    activity.SetIntProperty("VS.PPT-GoToDef.ErrorCode", hr);
                    success = false;
                }
            }

            return(success);
        }