Exemplo n.º 1
0
        public void AddInManager_CallInitializeOnceForAction()
        {
            var a1    = CreatePackageActionForManager();
            var a2    = CreatePackageActionForManager();
            var dte   = CreateDTE();
            var addIn = CreateAddIn();

            mock.ReplayAll();

            var manager = new CustomAddInManager(dte, addIn, null, Assembly.GetExecutingAssembly());

            Trace.WriteLine("Addin two actions.");
            manager.Add(a1);
            manager.Add(a2);

            // initialize actions - only the first one should be executed
            // the rest should be discarded by the manager itself:
            Trace.WriteLine("Calling application init of AddIn manager for the first time.");
            manager.ApplicationInit(true);
            Trace.WriteLine("Calling for the second time.");
            manager.ApplicationInit(true);

            // release manager's resources:
            Trace.WriteLine("Calling application exit.");
            manager.ApplicationExit(true);

            // check if the initialization has been called at most 2-times:
            Trace.WriteLine("Validating number of calls.");
            ThrowCounterException(2);
        }
Exemplo n.º 2
0
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            if (manager == null)
            {
                customizator = new TytanCustomizator();
                manager      = new CustomAddInManager((DTE2)application, (AddIn)addInInst, customizator,
                                                      Assembly.GetExecutingAssembly());
                //if (connectMode != ext_ConnectMode.ext_cm_UISetup)
                customizator.Initialize(manager);

                // register all known refactoring IPackageActions:
                manager.Add(new InitConstructorRefactor());
                manager.Add(new ExtractPropertyRefactor());
                //manager.Add(new ExpandEnumRefactor());
                // manager.Add(new ExtractResourceRefactor());
                manager.Add(new AssignReorderRefactor());
                manager.Add(new MultiRenameRefactor());
                manager.Add(new InsertionGuidRefactor());
                manager.Add(new InsertionClassNameAction());
                manager.Add(new InsertionPathRefactor());
                manager.Add(new InsertionDatabaseRefactor());
                if (manager.Version == ShellVersions.VS2005)
                {
                    manager.Add(new OpenWindowsExplorer());
                }
                manager.Add(new VisualStudioCloseQuestion());
                manager.Add(new ReferenceProjectAction());

                // manager.Add(new NativeImagePreviewPackageTool());
                manager.Add(new CommandViewPackageTool());
                manager.Add(new RegistryViewPackageTool());
                manager.Add(new EnvironmentVarsPackageTool());
                manager.Add(new DebugViewPackageTool());

                manager.Add(new AboutBoxAction());
            }

            // initialize VS IDE commands:
            manager.ApplicationInit(true /* connectMode == ext_ConnectMode.ext_cm_UISetup */);
            customizator.AfterApplicationInit(true);
        }