Пример #1
0
        public ReAttachUi(IReAttachPackage package)
        {
            _package = package;
            var menuService = _package.GetService(typeof(IMenuCommandService)) as IMenuCommandService;

            if (menuService == null)
            {
                _package.Reporter.ReportError("Can\'t obtain a reference to IMenuCommandService from ReAttachUI ctor.");
                return;
            }

            for (var i = 0; i < ReAttachConstants.ReAttachHistorySize; i++)
            {
                var commandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet, ReAttachConstants.ReAttachCommandId + i);
                var command   = new OleMenuCommand(ReAttachCommandClicked, commandId);
                //command.BeforeQueryStatus += ReAttachCommandOnBeforeQueryStatus;
                menuService.AddCommand(command);

                if (i > 0)                 // Hide all items except first one initially.
                {
                    command.Visible = false;
                }

                Commands[i] = command;
            }

            var buildToggleCommandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet,
                                                     ReAttachConstants.BuildBeforeReAttachCommandId);
            var buildCommand = new OleMenuCommand(ReAttachToggleBuildClicked, buildToggleCommandId);

            buildCommand.Visible = true;
            buildCommand.Checked = _package.History.Options.BuildBeforeReAttach;
            menuService.AddCommand(buildCommand);
            _buildToggleCommand = buildCommand;
        }
Пример #2
0
        private ReAttachUi(IReAttachPackage package, IMenuCommandService menuService)
        {
            _package = package;
            for (var i = 0; i < ReAttachConstants.ReAttachHistorySize; i++)
            {
                var commandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet, ReAttachConstants.ReAttachCommandId + i);
                var command   = new OleMenuCommand(async(s, e) => await ReAttachCommandClickedAsync(s, e).ConfigureAwait(true), commandId);
                //command.BeforeQueryStatus += ReAttachCommandOnBeforeQueryStatus;
                menuService.AddCommand(command);

                if (i > 0)                 // Hide all items except first one initially.
                {
                    command.Visible = false;
                }

                Commands[i] = command;
            }

            var buildToggleCommandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet,
                                                     ReAttachConstants.BuildBeforeReAttachCommandId);
            var buildCommand = new OleMenuCommand(ReAttachToggleBuildClicked, buildToggleCommandId);

            buildCommand.Visible = true;
            buildCommand.Checked = _package.History.Options.BuildBeforeReAttach;
            menuService.AddCommand(buildCommand);
            _buildToggleCommand = buildCommand;
        }
Пример #3
0
        public ReAttachDebugger(IReAttachPackage package)
        {
            _package  = package;
            _debugger = package.GetService(typeof(SVsShellDebugger)) as IVsDebugger;
            _dte      = _package.GetService(typeof(SDTE)) as DTE2;
            if (_dte != null)
            {
                _dteDebugger = _dte.Debugger as Debugger2;
            }

            if (_package == null || _debugger == null || _dte == null || _dteDebugger == null)
            {
                _package.Reporter.ReportError(
                    "Unable to get required services for ReAttachDebugger in ctor.");
                return;
            }

            if (_debugger.AdviseDebuggerEvents(this, out _cookie) != VSConstants.S_OK)
            {
                _package.Reporter.ReportError("ReAttach: AdviserDebuggerEvents failed.");
            }

            if (_debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
            {
                _package.Reporter.ReportError("AdviceDebugEventsCallback call failed in ReAttachDebugger ctor.");
            }

            foreach (Engine engine in _dteDebugger.Transports.Item("Default").Engines)
            {
                _engines.Add(Guid.Parse(engine.ID), engine.Name);
            }
        }
Пример #4
0
        public ReAttachUi(IReAttachPackage package)
        {
            _package = package;
            var menuService = _package.GetService(typeof(IMenuCommandService)) as IMenuCommandService;
            if (menuService == null)
            {
                _package.Reporter.ReportError("Can\'t obtain a reference to IMenuCommandService from ReAttachUI ctor.");
                return;
            }

            for (var i = 0; i < ReAttachConstants.ReAttachHistorySize; i++)
            {
                var commandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet, ReAttachConstants.ReAttachCommandId + i);
                var command = new OleMenuCommand(ReAttachCommandClicked, commandId);
                //command.BeforeQueryStatus += ReAttachCommandOnBeforeQueryStatus;
                menuService.AddCommand(command);

                if (i > 0) // Hide all items except first one initially.
                    command.Visible = false;

                Commands[i] = command;
            }

            var buildToggleCommandId = new CommandID(ReAttachConstants.ReAttachPackageCmdSet,
                ReAttachConstants.BuildBeforeReAttachCommandId);
            var buildCommand = new OleMenuCommand(ReAttachToggleBuildClicked, buildToggleCommandId);
            buildCommand.Visible = true;
            buildCommand.Checked = _package.History.Options.BuildBeforeReAttach;
            menuService.AddCommand(buildCommand);
            _buildToggleCommand = buildCommand;
        }
Пример #5
0
        public ReAttachDebugger(IReAttachPackage package)
        {
            _package = package;
            _debugger = package.GetService(typeof(SVsShellDebugger)) as IVsDebugger;
            _dte = _package.GetService(typeof(SDTE)) as DTE2;
            if (_dte != null)
                _dteDebugger = _dte.Debugger as Debugger2;

            if (_package == null || _debugger == null || _dte == null || _dteDebugger == null)
            {
                _package.Reporter.ReportError(
                    "Unable to get required services for ReAttachDebugger in ctor.");
                return;
            }

            // TODO: Unadvise, or did I find something telling me otherwise?
            if (_debugger.AdviseDebuggerEvents(this, out _cookie) != VSConstants.S_OK)
                _package.Reporter.ReportError("ReAttach: AdviserDebuggerEvents failed.");

            if (_debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
                _package.Reporter.ReportError("AdviceDebugEventsCallback call failed in ReAttachDebugger ctor.");

            foreach (Engine engine in _dteDebugger.Transports.Item("Default").Engines)
            {
                var engineId = Guid.Parse(engine.ID);
                if (ReAttachConstants.IgnoredDebuggingEngines.Contains(engineId))
                    continue;

                _engines.Add(engineId, engine.Name);
            }
        }
Пример #6
0
        public static async Task <ReAttachDebugger> InitAsync(IReAttachPackage package)
        {
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            var debugger = await package.GetServiceAsync(typeof(SVsShellDebugger)) as IVsDebugger;

            var dte = await package.GetServiceAsync(typeof(SDTE)) as DTE2;

            return(new ReAttachDebugger(package, debugger, dte));
        }
Пример #7
0
 public ReAttachDialog(IReAttachPackage package, ReAttachTarget target)
 {
     InitializeComponent();
     _package = package;
     _target = target;
     ProcessName.Text = string.Format("{0} ({1})", target.ProcessName, target.ProcessUser);
     Dots.Text = "";
     _timer.Tick += TimerOnTick;
     _timer.Interval = new TimeSpan(0, 0, 1);
     _timer.Start();
 }
Пример #8
0
        public static async Task <ReAttachUi> InitAsync(IReAttachPackage package)
        {
            var menuService = await package.GetServiceAsync(typeof(IMenuCommandService)) as IMenuCommandService;

            if (menuService == null)
            {
                package.Reporter.ReportError("Can\'t obtain a reference to IMenuCommandService from ReAttachUI ctor.");
                return(null);
            }
            return(new ReAttachUi(package, menuService));
        }
Пример #9
0
 public ReAttachDialog(IReAttachPackage package, ReAttachTarget target)
 {
     InitializeComponent();
     _package         = package;
     _target          = target;
     ProcessName.Text = string.Format("{0} ({1})", target.ProcessName, target.ProcessUser);
     Dots.Text        = "";
     _timer.Tick     += TimerOnTick;
     _timer.Interval  = new TimeSpan(0, 0, 1);
     _timer.Start();
 }
Пример #10
0
        public ReAttachDebugger(IReAttachPackage package)
        {
            _package  = package;
            _debugger = package.GetService(typeof(SVsShellDebugger)) as IVsDebugger;
            _dte      = _package.GetService(typeof(SDTE)) as DTE2;
            if (_dte != null)
            {
                _dteDebugger = _dte.Debugger as Debugger2;
            }

            if (_package == null || _debugger == null || _dte == null || _dteDebugger == null)
            {
                _package.Reporter.ReportError(
                    "Unable to get required services for ReAttachDebugger in ctor.");
                return;
            }

            // TODO: Unadvise, or did I find something telling me otherwise?
            if (_debugger.AdviseDebuggerEvents(this, out _debuggerCookie) != VSConstants.S_OK)
            {
                _package.Reporter.ReportError("ReAttach: AdviserDebuggerEvents failed.");
            }

            if (_debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
            {
                _package.Reporter.ReportError("AdviceDebugEventsCallback call failed in ReAttachDebugger ctor.");
            }

            try
            {
                foreach (Transport transport in _dteDebugger.Transports)
                {
                    //foreach (Engine engine in _dteDebugger.Transports.Item("Default").Engines)
                    foreach (Engine engine in transport.Engines)
                    {
                        var engineId = Guid.Parse(engine.ID);
                        if (ReAttachConstants.IgnoredDebuggingEngines.Contains(engineId) || _engines.ContainsKey(engineId))
                        {
                            continue;
                        }

                        _engines.Add(engineId, engine.Name);
                        _package.Reporter.ReportTrace("ReAttach found debugging engine {0}.", engine.Name);
                    }
                }
            } catch (Exception e)
            {
                _package.Reporter.ReportError("ReAttach was unable to detect debugging engines: {0}.", e.Message);
            }
        }
Пример #11
0
        public ReAttachDialog(IReAttachPackage package, ReAttachTarget target)
        {
            InitializeComponent();
            _package = package;
            _target  = target;

            var name = target.ProcessName;

            if (name.Length > 50)
            {
                name = name.Substring(0, 50);
            }

            ProcessName.Text = name;
            Dots.Text        = "";
            _timer.Tick     += TimerOnTick;
            _timer.Interval  = new TimeSpan(0, 0, 1);
            _timer.Start();
        }
Пример #12
0
        public ReAttachDebugger(IReAttachPackage package)
        {
            _package = package;
            _debugger = package.GetService(typeof(SVsShellDebugger)) as IVsDebugger;
            _dte = _package.GetService(typeof(SDTE)) as DTE2;
            if (_dte != null)
                _dteDebugger = _dte.Debugger as Debugger2;

            if (_package == null || _debugger == null || _dte == null || _dteDebugger == null)
            {
                _package.Reporter.ReportError(
                    "Unable to get required services for ReAttachDebugger in ctor.");
                return;
            }

            if (_debugger.AdviseDebuggerEvents(this, out _cookie) != VSConstants.S_OK)
                _package.Reporter.ReportError("ReAttach: AdviserDebuggerEvents failed.");

            if (_debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
                _package.Reporter.ReportError("AdviceDebugEventsCallback call failed in ReAttachDebugger ctor.");
        }
Пример #13
0
        public ReAttachDebugger(IReAttachPackage package)
        {
            _package = package;
            _debugger = package.GetService(typeof(SVsShellDebugger)) as IVsDebugger;
            _dte = _package.GetService(typeof(SDTE)) as DTE2;
            if (_dte != null)
                _dteDebugger = _dte.Debugger as Debugger2;

            if (_package == null || _debugger == null || _dte == null || _dteDebugger == null)
            {
                _package.Reporter.ReportError(
                    "Unable to get required services for ReAttachDebugger in ctor.");
                return;
            }

            if (_debugger.AdviseDebuggerEvents(this, out _cookie) != VSConstants.S_OK)
                _package.Reporter.ReportError("ReAttach: AdviserDebuggerEvents failed.");

            if (_debugger.AdviseDebugEventCallback(this) != VSConstants.S_OK)
                _package.Reporter.ReportError("AdviceDebugEventsCallback call failed in ReAttachDebugger ctor.");

            foreach (Engine engine in _dteDebugger.Transports.Item("Default").Engines)
                _engines.Add(Guid.Parse(engine.ID), engine.Name);
        }
Пример #14
0
 public ReAttachRegistryRepository(IReAttachPackage package)
 {
     _package = package;
 }
Пример #15
0
 public ReAttachBusService(IReAttachPackage package)
 {
     _package = package;
 }
Пример #16
0
 public ReAttachRegistryRepository(IReAttachPackage package)
 {
     _package = package;
 }