@@ -44,32 +44,26 @@ public GitHubPackage()
4444 public GitHubPackage ( IServiceProvider serviceProvider )
4545 : base ( serviceProvider )
4646 {
47-
4847 }
4948
5049 [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Globalization" , "CA1300:SpecifyMessageBoxOptions" ) ]
5150 [ System . Diagnostics . CodeAnalysis . SuppressMessage ( "Microsoft.Performance" , "CA1804:RemoveUnusedLocals" ) ]
5251 protected override void Initialize ( )
5352 {
53+ base . Initialize ( ) ;
5454
55- ServiceProvider . AddTopLevelMenuItem ( GuidList . guidGitHubCmdSet , PkgCmdIDList . addConnectionCommand , ( s , e ) => StartFlow ( UIControllerFlow . Authentication ) ) ;
56- ServiceProvider . AddTopLevelMenuItem ( GuidList . guidGitHubCmdSet , PkgCmdIDList . showGitHubPaneCommand , ( s , e ) =>
57- {
58- var window = FindToolWindow ( typeof ( GitHubPane ) , 0 , true ) ;
59- if ( window ? . Frame == null )
60- throw new NotSupportedException ( "Cannot create tool window" ) ;
55+ var menus = ServiceProvider . GetExportedValue < IMenuProvider > ( ) ;
56+ foreach ( var menu in menus . Menus )
57+ ServiceProvider . AddTopLevelMenuItem ( menu . Guid , menu . CmdId , ( s , e ) => menu . Activate ( ) ) ;
6158
62- var windowFrame = ( IVsWindowFrame ) window . Frame ;
63- ErrorHandler . ThrowOnFailure ( windowFrame . Show ( ) ) ;
64- } ) ;
59+ foreach ( var menu in menus . DynamicMenus )
60+ ServiceProvider . AddDynamicMenuItem ( menu . Guid , menu . CmdId , menu . CanShow , menu . Activate ) ;
6561 ServiceProvider . AddDynamicMenuItem ( GuidList . guidContextMenuSet , PkgCmdIDList . getLinkCommand ,
6662 IsValidGithubRepo ,
6763 OpenRepoInBrowser ) ;
6864 ServiceProvider . AddDynamicMenuItem ( GuidList . guidContextMenuSet , PkgCmdIDList . copyLinkCommand ,
6965 IsValidGithubRepo ,
7066 CopyRepoLinkToClipboard ) ;
71-
72- base . Initialize ( ) ;
7367 }
7468
7569 private void CopyRepoLinkToClipboard ( )
@@ -110,10 +104,5 @@ private void OpenRepoInBrowser()
110104 vsBrowserProvider . OpenUrl ( new Uri ( outputUri ) ) ;
111105 }
112106
113- void StartFlow ( UIControllerFlow controllerFlow )
114- {
115- var uiProvider = ServiceProvider . GetExportedValue < IUIProvider > ( ) ;
116- uiProvider . RunUI ( controllerFlow , null ) ;
117- }
118107 }
119108}
0 commit comments