Exemplo n.º 1
0
        public SquashPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            this.teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));

            this.gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            this.gitService.PropertyChanged += this.OnGitServiceActiveRepositoriesChanged;
        }
        public GitRemoteRepository GetActiveRepository()
        {
            _gitService = _appServiceProvider.GetService <IGitExt>();
            var activeRepository = _gitService.ActiveRepositories.FirstOrDefault();

            return(activeRepository.ToGitRepo());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
            TraceWriteLine("Package Initialization: Starting");
            IServiceContainer      serviceContainer = this as IServiceContainer;
            ServiceCreatorCallback callback         =
                new ServiceCreatorCallback(CreateGitWrapperService);

            serviceContainer.AddService(typeof(IGitStashWrapper), callback, true);
            serviceContainer.AddService(typeof(IGitStashProjectEvents), callback, true);
            serviceContainer.AddService(typeof(IGitStashTranslator), callback, true);
            gitService = (IGitExt)GetService(typeof(IGitExt));
            gitService.PropertyChanged += GitService_PropertyChanged;
            this.projects = new GitStashProjects(this);
            this.events   = new GitStashFileWatcher();
            if (gitService.ActiveRepositories.FirstOrDefault() != null)
            {
                string path = gitService.ActiveRepositories.FirstOrDefault().RepositoryPath;
                TraceWriteLine("Setting directory: " + path);
                events.ChangeDirectory(path);
            }

            TraceWriteLine("Package Initialization: Done");
            ShowStashPageCommand.Initialize(this);
        }
Exemplo n.º 4
0
        public (Repository, Commit) GetSelectedCommit()
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            EnvDTE80.DTE2 dte = ServiceProvider.GetService(typeof(DTE)) as EnvDTE80.DTE2;
            // GUID found via dte.ActiveWindow.ObjectKind
            Guid           gitHistoryWindowGuid = new Guid("116D2292-E37D-41CD-A077-EBACAC4C8CC4");
            IVsUIShell     vsUIShell            = (IVsUIShell)Package.GetGlobalService(typeof(SVsUIShell));
            int            toolWindowReturn     = vsUIShell.FindToolWindow((uint)__VSFINDTOOLWIN.FTW_fFrameOnly, ref gitHistoryWindowGuid, out IVsWindowFrame vsWindowFrame);
            WindowFrame    windowFrame          = (WindowFrame)vsWindowFrame;
            ToolWindowView toolWindowView       = (ToolWindowView)windowFrame.FrameView;
            // panel is of innaccessible type Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ContentHostingPanel
            // so use base System.Windows.Controls.Grid
            Grid contentHostingPanel = (Grid)toolWindowView.Content;
            // Type Microsoft.VisualStudio.Platform.WindowManagement.Controls.GenericPaneContentPresenter is internal
            // so use base ContentPresenter
            ContentPresenter genericPaneContentPresenter = contentHostingPanel.Children[1] as ContentPresenter;
            // Microsoft.VisualStudio.TeamFoundation.ToolWindowBase.ToolWindowBaseProxy is innaccessible
            // so use base ContentPresenter
            ContentPresenter toolWindowBaseProxy = (ContentPresenter)genericPaneContentPresenter.Content;
            // Is of type Microsoft.TeamFoundation.Git.Controls.History.HistoryView,
            // but this class is defined as internal so using base UserControl.
            UserControl historyView = (UserControl)toolWindowBaseProxy.Content;
            // Is of type Microsoft.TeamFoundation.Git.Controls.History.HistoryViewModel,
            // but this class is defined as internal so using base Microsoft.TeamFoundation.MVVM.ViewModelBase.
            ViewModelBase historyViewModel = (ViewModelBase)historyView.DataContext;
            // Use reflection to get at properties of internal type HistoryViewModel and ObservableCollection<GitHistoryItem>
            object     gitHistoryItem = ((IList)historyViewModel.GetType().GetProperty("SelectedItems").GetValue(historyViewModel, null))[0];
            IGitCommit selectedCommit = (IGitCommit)gitHistoryItem.GetType().GetProperty("Commit").GetValue(gitHistoryItem, null);
            IGitExt    gitExt         = ServiceProvider.GetService(typeof(IGitExt)) as IGitExt;
            Repository repository     = new Repository(gitExt.ActiveRepositories.First().RepositoryPath);
            Commit     commit         = repository.Lookup <Commit>(selectedCommit.Id.Sha);

            return(repository, commit);
        }
Exemplo n.º 5
0
        public StashListTeamExplorerNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
            _teamExplorer    = _serviceProvider.GetService(typeof(ITeamExplorer)) as ITeamExplorer;
            _image           = Resources.TeamExplorerIcon;
            _gitService      = (IGitExt)_serviceProvider.GetService(typeof(IGitExt));

            IsVisible = _gitService.AnyActiveRepository();
            _gitService.PropertyChanged += GitServicePropertyChanged;
        }
Exemplo n.º 6
0
 public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
 {
     Title = "GitFlow";
     gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
     gitService.PropertyChanged += OnGitServicePropertyChanged;
     
     var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
     var customGuid = new Guid("B85225F6-B15E-4A8A-AF6E-2BE96A4FE672");
     outWindow.CreatePane(ref customGuid, "GitFlow.VS", 1, 1);
     outWindow.GetPane(ref customGuid, out outputWindow);
 }
Exemplo n.º 7
0
 public StashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
     : base(serviceProvider)
 {
     this.Image     = Resources.StashIcon;
     this.IsVisible = false;
     this.T         = GetService <IGitStashTranslator>().Translator;
     this.Text      = T["Git Stash"];
     teamExplorer   = GetService <ITeamExplorer>();
     gitService     = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
     teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged;
 }
Exemplo n.º 8
0
 public GitWatcher(
     IAppServiceProvider appServiceProvider,
     IEventAggregatorService eventAggregatorService,
     IGitService gitService
     )
 {
     _syncContext = SynchronizationContext.Current;
     this._eventAggregatorService = eventAggregatorService;
     _gitService = gitService;
     _gitExt     = appServiceProvider.GetService <IGitExt>();
 }
Exemplo n.º 9
0
 public void Refresh(IServiceProvider serviceProvider)
 {
     if (gitService != null)
     {
         gitService.PropertyChanged -= CheckAndUpdate;
     }
     gitService = serviceProvider.GetServiceSafe <IGitExt>();
     if (gitService != null)
     {
         gitService.PropertyChanged += CheckAndUpdate;
     }
 }
        public VsCommitizenNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
            : base(serviceProvider)
        {
            this.Text      = "VsCommitizen";
            this.Image     = VSPackage.Git_icon;
            this.ArgbColor = Color.Red.ToArgb();

            gitService = GetService <IGitExt>();
            gitService.PropertyChanged += GitService_PropertyChanged;

            this.IsVisible = gitService.ActiveRepositories.Count > 0;
        }
Exemplo n.º 11
0
        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
            this.TraceWriteLine("Package Initialization: Starting");
            IServiceContainer      serviceContainer = this;
            ServiceCreatorCallback callback         = this.CreateGitWrapperService;

            serviceContainer.AddService(typeof(IGitSquashWrapper), callback, true);
            this.gitService = (IGitExt)this.GetService(typeof(IGitExt));

            this.TraceWriteLine("Package Initialization: Done");
        }
Exemplo n.º 12
0
        public StashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            ServiceProvider = serviceProvider;

            Image        = Resources.StashIcon;
            ArgbColor    = UI.Colors.NavigationItemGreen.ToInt32();
            IsEnabled    = true;
            this.T       = GetService <IGitStashTranslator>().Translator;
            Text         = T["GitStash"];
            teamExplorer = GetService <ITeamExplorer>();
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged;
            Refresh();
        }
        public GitSubmodulesPage([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title = "Git Submodules";
            gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt));
            teamExplorer = (ITeamExplorer) serviceProvider.GetService(typeof (ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow = Package.GetGlobalService(typeof (SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("08A48010-2A4A-4DB1-AA58-36674F667904");
            outWindow.CreatePane(ref customGuid, "Git Submodules", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui = new GitSubmodulePageUI();
            PageContent = ui;
        }
        public GitOperationsPage([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title = "Git Operations";
            gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt));
            teamExplorer = (ITeamExplorer) serviceProvider.GetService(typeof (ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow = Package.GetGlobalService(typeof (SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("A7C0163F-82E8-4D95-97C8-C62743D15DC3");
            outWindow.CreatePane(ref customGuid, "Git Operations", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui = new GitOperationsPageUI();
            PageContent = ui;
        }
Exemplo n.º 15
0
        public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "GitFlow with Pull Request";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("2AAAB744-47C6-4208-A26C-35937E69BB50");

            outWindow.CreatePane(ref customGuid, "GitFlowWithPR.VS", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui          = new GitFlowPageUI();
            PageContent = ui;
        }
        public GitOperationsPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "Git MoreOperations";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("A7C0163F-82E8-4D95-97C8-C62743D15DC3");

            outWindow.CreatePane(ref customGuid, "Git MoreOperations", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui          = new GitOperationsPageUI();
            PageContent = ui;
        }
Exemplo n.º 17
0
        public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "GitFlow AVH";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("B85225F6-B15E-4A8A-AF6E-2BE96A4FE672");

            outWindow.CreatePane(ref customGuid, "Source Control - GitFlow AVH", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui          = new GitFlowPageUI();
            PageContent = ui;
        }
        public GiteeConnectSection(IMessenger messenger, IShellService shell, IStorage storage, ITeamExplorerServices teamexplorer, IViewFactory viewFactory, IWebService web)
        {
            _messenger    = messenger;
            _shell        = shell;
            _storage      = storage;
            _teamexplorer = teamexplorer;
            _viewFactory  = viewFactory;
            _web          = web;

            messenger.Register("OnLogined", OnLogined);
            messenger.Register("OnSignOuted", OnSignOuted);
            messenger.Register <string, Repository>("OnClone", OnClone);
            messenger.Register <string>("OnOpenSolution", OnOpenSolution);
            IGitExt gitExt = GlobalServiceProvider.GlobalProvider.GetService <IGitExt>();

            gitExt.PropertyChanged += GitExt_PropertyChanged;
        }
Exemplo n.º 19
0
    static VSGitExt CreateVSGitExt(IVSUIContext context = null, IGitExt gitExt = null, IAsyncServiceProvider sp = null,
                                   ILocalRepositoryModelFactory repoFactory = null, JoinableTaskContext joinableTaskContext = null)
    {
        context             = context ?? CreateVSUIContext(true);
        gitExt              = gitExt ?? CreateGitExt();
        sp                  = sp ?? Substitute.For <IAsyncServiceProvider>();
        repoFactory         = repoFactory ?? Substitute.For <ILocalRepositoryModelFactory>();
        joinableTaskContext = joinableTaskContext ?? new JoinableTaskContext();
        var factory = Substitute.For <IVSUIContextFactory>();

        factory.GetUIContext(UICONTEXT.RepositoryOpen_guid).Returns(context);
        sp.GetServiceAsync(typeof(IGitExt)).Returns(gitExt);
        var vsGitExt = new VSGitExt(sp, factory, repoFactory, joinableTaskContext);

        vsGitExt.JoinTillEmpty();
        return(vsGitExt);
    }
        public GitSubmodulesPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "Git Submodules";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("08A48010-2A4A-4DB1-AA58-36674F667904");

            outWindow.CreatePane(ref customGuid, "Git Submodules", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);


            ui          = new GitSubmodulePageUI();
            PageContent = ui;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="GitCommands"/> class.
        /// Adds our command handlers for menu (commands must exist in the command table file)
        /// </summary>
        /// <param name="package">Owner package, not null.</param>
        /// <param name="commandService">Command service to add command to, not null.</param>
        private GitOriginDevelopment(AsyncPackage package,
                                     OleMenuCommandService commandService,
                                     IGitExt gitService,
                                     IVsOutputWindowPane vsOutputWindow,
                                     DTE dteVsCoreAutomation)
        {
            this.package         = package ?? throw new ArgumentNullException(nameof(package));
            commandService       = commandService ?? throw new ArgumentNullException(nameof(commandService));
            _gitService          = gitService ?? throw new ArgumentNullException(nameof(gitService));
            _vsOutputWindowPane  = vsOutputWindow ?? throw new ArgumentNullException(nameof(vsOutputWindow));
            _dteVsCoreAutomation = dteVsCoreAutomation ?? throw new ArgumentNullException(nameof(dteVsCoreAutomation));

            var menuCommandID = new CommandID(CommandSet, CommandId);
            var menuItem      = new MenuCommand(this.Execute, menuCommandID);

            commandService.AddCommand(menuItem);
        }
Exemplo n.º 22
0
    static VSGitExt CreateVSGitExt(IVSUIContext context = null, IGitExt gitExt = null, IAsyncServiceProvider sp = null,
                                   ILocalRepositoryModelFactory repoFactory = null)
    {
        context     = context ?? CreateVSUIContext(true);
        gitExt      = gitExt ?? CreateGitExt();
        sp          = sp ?? Substitute.For <IAsyncServiceProvider>();
        repoFactory = repoFactory ?? Substitute.For <ILocalRepositoryModelFactory>();
        var factory     = Substitute.For <IVSUIContextFactory>();
        var contextGuid = new Guid(Guids.GitSccProviderId);

        factory.GetUIContext(contextGuid).Returns(context);
        sp.GetServiceAsync(typeof(IGitExt)).Returns(gitExt);
        var vsGitExt = new VSGitExt(sp, factory, repoFactory);

        vsGitExt.PendingTasks.Wait();
        return(vsGitExt);
    }
 public SquashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
     : base(serviceProvider)
 {
     try
     {
         this.UpdateVisible();
         this.Image     = Properties.Resources.SquashIcon;
         this.IsVisible = false;
         this.Text      = Properties.Resources.SquashName;
         ITeamExplorer teamExplorer = this.GetService <ITeamExplorer>();
         teamExplorer.PropertyChanged += this.TeamExplorerOnPropertyChanged;
         this.gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
     }
     catch (Exception ex)
     {
         this.HandleException(ex);
     }
 }
Exemplo n.º 24
0
        public GitStashPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "Git Stash";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("B602D8ED-2A92-4EB6-AE2C-A04F19386BAF");

            outWindow.CreatePane(ref customGuid, "Git stash", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            hiddenOutput = new Service.HiddenGitOutput();

            ui          = new GitStashPageUI();
            PageContent = ui;
        }
 public GitSubmodulesNavigationItem([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider)
     : base(serviceProvider)
 {
     try
     {
         UpdateVisible();
         Text = "Git Submodules";
         Image = Resources.LinkIcon;
         IsVisible = true;
         teamExplorer = GetService<ITeamExplorer>();
         gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt));
         teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged;
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
Exemplo n.º 26
0
        public GitSkipFilesPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title        = "Git SkipFiles";
            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("BCAD885C-621F-4FFE-A746-E6AC35213F34");

            outWindow.CreatePane(ref customGuid, "Git SkipFiles", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            hiddenOutput = new Service.HiddenGitOutput();

            ui          = new GitSkipFilesPageUI();
            PageContent = ui;
        }
Exemplo n.º 27
0
 public GitFlowNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
     : base(serviceProvider)
 {
     try
     {
         UpdateVisible();
         Text         = "GitFlow";
         Image        = Resources.LinkIcon;
         IsVisible    = true;
         teamExplorer = GetService <ITeamExplorer>();
         gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
         teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged;
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
Exemplo n.º 28
0
        public GitLogPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            Title = "Git Journal";

            ServiceDTE = (DTE)serviceProvider.GetService(typeof(DTE));

            gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
            teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer));
            gitService.PropertyChanged += OnGitServicePropertyChanged;

            var outWindow  = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow;
            var customGuid = new Guid("9E717339-5502-4A0B-B04E-3D86AFE31F50");

            outWindow.CreatePane(ref customGuid, "Git journal", 1, 1);
            outWindow.GetPane(ref customGuid, out outputWindow);

            ui          = new GitLogPageUI();
            PageContent = ui;
        }
 public GitStashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider)
 {
     try
     {
         UpdateVisible();
         Text         = "Git Stash";
         Image        = Resources.LinkIcon;
         IsVisible    = true;
         teamExplorer = GetService <ITeamExplorer>();
         gitService   = (IGitExt)serviceProvider.GetService(typeof(IGitExt));
         teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged;
         ArgbColor = System.Windows.Media.Color.FromRgb(0xAE, 0x3C, 0xBA).ToInt32();
         IsEnabled = true;
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
    static VSGitExt CreateVSGitExt(IVSUIContext context   = null, IGitExt gitExt = null, IServiceProvider sp = null,
                                   IGitService gitService = null, JoinableTaskContext joinableTaskContext = null, string contextGuidString = null)
    {
        context = context ?? CreateVSUIContext(true);
        gitExt  = gitExt ?? CreateGitExt();
        var contextGuid = new Guid(contextGuidString ?? Guids.GitSccProviderId);

        sp                  = sp ?? Substitute.For <IServiceProvider>();
        gitService          = gitService ?? Substitute.For <IGitService>();
        joinableTaskContext = joinableTaskContext ?? new JoinableTaskContext();
        var factory = Substitute.For <IVSUIContextFactory>();

        factory.GetUIContext(contextGuid).Returns(context);
        sp.GetService(typeof(IGitExt)).Returns(gitExt);
        var vsGitExt = new VSGitExt(sp, factory, gitService, joinableTaskContext);

        vsGitExt.JoinTillEmpty();
        return(vsGitExt);
    }
Exemplo n.º 31
0
        bool TryInitialize()
        {
            gitService = serviceProvider.GetService <IGitExt>();
            if (gitService != null)
            {
                gitService.PropertyChanged += (s, e) =>
                {
                    if (e.PropertyName == nameof(gitService.ActiveRepositories))
                    {
                        RefreshActiveRepositories();
                    }
                };

                log.Debug("Found IGitExt service and initialized VSGitExt");
                return(true);
            }

            log.Error("Couldn't find IGitExt service");
            return(false);
        }
Exemplo n.º 32
0
        async Task InitializeAsync()
        {
            gitExt = await GetServiceAsync <IGitExt>();

            if (gitService == null)
            {
                log.Error("Couldn't find IGitExt service");
                return;
            }

            // Refresh on background thread
            await Task.Run(() => RefreshActiveRepositories());

            gitExt.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == nameof(gitExt.ActiveRepositories))
                {
                    RefreshActiveRepositories();
                }
            };
        }
Exemplo n.º 33
0
        void Initialize()
        {
            PendingTasks = asyncServiceProvider.GetServiceAsync(typeof(IGitExt)).ContinueWith(t =>
            {
                gitService = (IGitExt)t.Result;
                if (gitService == null)
                {
                    log.Error("Couldn't find IGitExt service");
                    return;
                }

                RefreshActiveRepositories();
                gitService.PropertyChanged += (s, e) =>
                {
                    if (e.PropertyName == nameof(gitService.ActiveRepositories))
                    {
                        RefreshActiveRepositories();
                    }
                };
            }, TaskScheduler.Default);
        }
        /// <summary>
        /// Initializes the singleton instance of the command.
        /// </summary>
        /// <param name="package">Owner package, not null.</param>
        public static async Task InitializeAsync(AsyncPackage package)
        {
            // Switch to the main thread - the call to AddCommand in GitCommands's constructor requires
            // the UI thread.
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken);

            OleMenuCommandService commandService = await package.GetServiceAsync((typeof(IMenuCommandService))) as OleMenuCommandService;

            IGitExt gitService = await package.GetServiceAsync((typeof(IGitExt))) as IGitExt;

            DTE vsCoreAutomation = await package.GetServiceAsync((typeof(DTE))) as DTE;

            IVsOutputWindow outputWindow = await package.GetServiceAsync((typeof(IVsOutputWindow))) as IVsOutputWindow;

            // Instantiates VS output window
            var paneGuid = Microsoft.VisualStudio.VSConstants.OutputWindowPaneGuid.GeneralPane_guid;
            var paneName = ExtensionConstants.PanelName;
            IVsOutputWindowPane vsoutputwindow;

            outputWindow.CreatePane(paneGuid, paneName, 1, 0);
            outputWindow.GetPane(paneGuid, out vsoutputwindow);

            Instance = new GitOriginDevelopment(package, commandService, gitService, vsoutputwindow, vsCoreAutomation);
        }