Exemplo n.º 1
0
        protected override async System.Threading.Tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            await base.InitializeAsync(cancellationToken, progress);

            // NOTE: this switch is already performed within the base.InitializeAsync() method.
            await Microsoft.VisualStudio.Shell.ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            _CurrentSolutionRcsType = RcsType.Unknown;

            //EnvDTE.IVsExtensibility extensibility = await GetServiceAsync(typeof(EnvDTE.IVsExtensibility)) as EnvDTE.IVsExtensibility;
            //_DTE2 = (DTE2)extensibility.GetGlobalsObject(null).DTE as EnvDTE80.DTE2;
            _DTE2 = Package.GetGlobalService(typeof(DTE)) as DTE2;

            IVsSolution solution = await GetServiceAsync(typeof(SVsSolution)) as IVsSolution;

            Assumes.Present(solution);
            int  hr;
            uint pdwCookie;

            hr = solution.AdviseSolutionEvents(this, out pdwCookie);
            Marshal.ThrowExceptionForHR(hr);

            _VsShell = await GetServiceAsync(typeof(SVsShell)) as IVsShell;

            _VsRegisterScciProvider = await GetServiceAsync(typeof(IVsRegisterScciProvider)) as IVsRegisterScciProvider;

            _VsGetScciProviderInterface = await GetServiceAsync(typeof(IVsRegisterScciProvider)) as IVsGetScciProviderInterface;

            _SettingsStore = GetWritableSettingsStore();

            TaskManager.Initialize(this);
            solutionEvents         = ((Events2)_DTE2.Events).SolutionEvents;
            solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(this.SolutionEvents_Opened);
            SolutionEvents_Opened();
        }
Exemplo n.º 2
0
        public static void RegisterPrimarySourceControlProvider(RcsType rcsType)
        {
            int         hr;
            Guid        packageGuid     = new Guid();
            Guid        sccProviderGuid = new Guid();
            SccProvider providerToLoad  = SccProvider.Unknown;
            bool        enabled         = false;

            switch (rcsType)
            {
            case RcsType.Subversion:
            {
                enabled = RegisterSubversionScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Git:
            {
                enabled = RegisterGitScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Mercurial:
            {
                enabled = RegisterMercurialScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Perforce:
            {
                enabled = RegisterPerforceScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }
            }

            if (!enabled)
            {
                return;
            }

            SccProvider currentSccProvider = GetCurrentSccProvider();

            if (providerToLoad == currentSccProvider)
            {
                return;
            }

            int installed;

            hr = _VsShell.IsPackageInstalled(ref packageGuid, out installed);
            Marshal.ThrowExceptionForHR(hr);
            if (installed == 0)
            {
                return;
            }

            hr = _VsRegisterScciProvider.RegisterSourceControlProvider(sccProviderGuid);
            Marshal.ThrowExceptionForHR(hr);
        }
Exemplo n.º 3
0
        protected override void Initialize()
        {
            base.Initialize();

            _CurrentSolutionRcsType = RcsType.Unknown;

            IVsExtensibility extensibility = GetService <IVsExtensibility>();

            _DTE2 = (DTE2)extensibility.GetGlobalsObject(null).DTE;

            IVsSolution solution = GetService <SVsSolution>() as IVsSolution;
            int         hr;
            uint        pdwCookie;

            hr = solution.AdviseSolutionEvents(this, out pdwCookie);
            Marshal.ThrowExceptionForHR(hr);

            _VsShell = GetService <SVsShell>() as IVsShell;
            _VsRegisterScciProvider = GetService <IVsRegisterScciProvider>();
            _SettingsStore          = GetWritableSettingsStore();
        }
Exemplo n.º 4
0
        public static void RegisterPrimarySourceControlProvider(RcsType rcsType)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            AppHelper.Output(String.Format("Registering Primary Source Control Provider: {0}", rcsType.ToString()));

            int         hr;
            Guid        packageGuid     = new Guid();
            Guid        sccProviderGuid = new Guid();
            SccProvider providerToLoad  = SccProvider.Unknown;
            bool        enabled         = false;

            switch (rcsType)
            {
            case RcsType.Subversion:
            {
                enabled = RegisterSubversionScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Git:
            {
                enabled = RegisterGitScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Mercurial:
            {
                enabled = RegisterMercurialScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Perforce:
            {
                enabled = RegisterPerforceScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }
            }

            AppHelper.Output(String.Format("Provider to Load: {0}, Enabled: {1}", providerToLoad.ToString(), enabled));

            if (!enabled)
            {
                return;
            }

            SccProvider currentSccProvider = GetCurrentSccProvider();

            AppHelper.Output(String.Format("Current Provider: {0}", currentSccProvider.ToString()));

            if (providerToLoad == currentSccProvider)
            {
                return;
            }

            var installed = IsSccPackageInstalled(packageGuid);

            AppHelper.Output(String.Format("Provider {0} installed: {1}", providerToLoad.ToString(), installed));

            if (!installed)
            {
                return;
            }

            hr = _VsRegisterScciProvider.RegisterSourceControlProvider(sccProviderGuid);
            Marshal.ThrowExceptionForHR(hr);

            AppHelper.Output(String.Format("Provider {0} registered (providerGuid: {1})", providerToLoad.ToString(), sccProviderGuid.ToString()));
        }