@@ -12,10 +12,13 @@ import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/bro
1212import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet' ;
1313import { IViewlet } from 'vs/workbench/common/viewlet' ;
1414import { IPanel } from 'vs/workbench/common/panel' ;
15- import { SyncActionDescriptor } from 'vs/platform/actions/common/actions' ;
15+ import { Action2 , MenuId , registerAction2 , SyncActionDescriptor } from 'vs/platform/actions/common/actions' ;
1616import { IWorkbenchActionRegistry , Extensions } from 'vs/workbench/common/actions' ;
1717import { Direction } from 'vs/base/browser/ui/grid/grid' ;
1818import { KeyCode , KeyMod } from 'vs/base/common/keyCodes' ;
19+ import { IWorkbenchContribution , IWorkbenchContributionsRegistry , Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions' ;
20+ import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService' ;
21+ import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle' ;
1922
2023abstract class BaseNavigationAction extends Action {
2124
@@ -257,12 +260,38 @@ export class FocusPreviousPart extends Action {
257260 }
258261}
259262
260- const registry = Registry . as < IWorkbenchActionRegistry > ( Extensions . WorkbenchActions ) ;
263+ class GoHomeContributor implements IWorkbenchContribution {
264+
265+ constructor (
266+ @IWorkbenchEnvironmentService environmentService : IWorkbenchEnvironmentService
267+ ) {
268+ const homeIndicator = environmentService . options ?. homeIndicator ;
269+ if ( homeIndicator ) {
270+ registerAction2 ( class extends Action2 {
271+ constructor ( ) {
272+ super ( {
273+ id : `workbench.actions.goHome` ,
274+ title : nls . localize ( 'goHome' , "Go Home" ) ,
275+ menu : { id : MenuId . MenubarWebNavigationMenu }
276+ } ) ;
277+ }
278+ async run ( ) : Promise < void > {
279+ window . location . href = homeIndicator . href ;
280+ }
281+ } ) ;
282+ }
283+ }
284+ }
285+
286+ const actionsRegistry = Registry . as < IWorkbenchActionRegistry > ( Extensions . WorkbenchActions ) ;
261287const viewCategory = nls . localize ( 'view' , "View" ) ;
262288
263- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateUpAction , undefined ) , 'View: Navigate to the View Above' , viewCategory ) ;
264- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateDownAction , undefined ) , 'View: Navigate to the View Below' , viewCategory ) ;
265- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateLeftAction , undefined ) , 'View: Navigate to the View on the Left' , viewCategory ) ;
266- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateRightAction , undefined ) , 'View: Navigate to the View on the Right' , viewCategory ) ;
267- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( FocusNextPart , { primary : KeyCode . F6 } ) , 'View: Focus Next Part' , viewCategory ) ;
268- registry . registerWorkbenchAction ( SyncActionDescriptor . from ( FocusPreviousPart , { primary : KeyMod . Shift | KeyCode . F6 } ) , 'View: Focus Previous Part' , viewCategory ) ;
289+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateUpAction , undefined ) , 'View: Navigate to the View Above' , viewCategory ) ;
290+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateDownAction , undefined ) , 'View: Navigate to the View Below' , viewCategory ) ;
291+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateLeftAction , undefined ) , 'View: Navigate to the View on the Left' , viewCategory ) ;
292+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( NavigateRightAction , undefined ) , 'View: Navigate to the View on the Right' , viewCategory ) ;
293+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( FocusNextPart , { primary : KeyCode . F6 } ) , 'View: Focus Next Part' , viewCategory ) ;
294+ actionsRegistry . registerWorkbenchAction ( SyncActionDescriptor . from ( FocusPreviousPart , { primary : KeyMod . Shift | KeyCode . F6 } ) , 'View: Focus Previous Part' , viewCategory ) ;
295+
296+ const workbenchRegistry = Registry . as < IWorkbenchContributionsRegistry > ( WorkbenchExtensions . Workbench ) ;
297+ workbenchRegistry . registerWorkbenchContribution ( GoHomeContributor , LifecyclePhase . Ready ) ;
0 commit comments