Skip to content

Commit

Permalink
Support Continue Working in X options in remote indicator (#170809)
Browse files Browse the repository at this point in the history
  • Loading branch information
joyceerhl authored Jan 8, 2023
1 parent 638db26 commit 27084dc
Showing 1 changed file with 25 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle';
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions';
import { Registry } from 'vs/platform/registry/common/platform';
import { ILifecycleService, LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle';
import { Action2, IAction2Options, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions';
import { Action2, IAction2Options, MenuId, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions';
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
import { localize } from 'vs/nls';
import { IEditSessionsStorageService, Change, ChangeType, Folder, EditSession, FileType, EDIT_SESSION_SYNC_CATEGORY, EDIT_SESSIONS_CONTAINER_ID, EditSessionSchemaVersion, IEditSessionsLogService, EDIT_SESSIONS_VIEW_ICON, EDIT_SESSIONS_TITLE, EDIT_SESSIONS_SHOW_VIEW, EDIT_SESSIONS_DATA_VIEW_ID, decodeEditSessionFileContent, hashedEditSessionId } from 'vs/workbench/contrib/editSessions/common/editSessions';
Expand Down Expand Up @@ -779,30 +779,39 @@ export class EditSessionsContribution extends Disposable implements IWorkbenchCo
));

if (contribution.qualifiedName) {
this.generateStandaloneOptionCommand(command.id, contribution.qualifiedName, command.category, when);
this.generateStandaloneOptionCommand(command.id, contribution.qualifiedName, command.category, when, contribution.remoteGroup);
}
}
}
this.continueEditSessionOptions = continueEditSessionOptions;
});
}

private generateStandaloneOptionCommand(commandId: string, qualifiedName: string, category: string | ILocalizedString | undefined, when: ContextKeyExpression | undefined) {
private generateStandaloneOptionCommand(commandId: string, qualifiedName: string, category: string | ILocalizedString | undefined, when: ContextKeyExpression | undefined, remoteGroup: string | undefined) {
const command = {
id: `${continueWorkingOnCommand.id}.${commandId}`,
title: { original: qualifiedName, value: qualifiedName },
category: typeof category === 'string' ? { original: category, value: category } : category,
precondition: when,
f1: true
};

registerAction2(class StandaloneContinueOnOption extends Action2 {
constructor() {
super({
id: `${continueWorkingOnCommand.id}.${commandId}`,
title: { original: qualifiedName, value: qualifiedName },
category: typeof category === 'string' ? { original: category, value: category } : category,
precondition: when,
f1: true
});
super(command);
}

async run(accessor: ServicesAccessor): Promise<void> {
return accessor.get(ICommandService).executeCommand(continueWorkingOnCommand.id, undefined, commandId);
}
});

if (remoteGroup !== undefined) {
MenuRegistry.appendMenuItem(MenuId.StatusBarRemoteIndicatorMenu, {
group: remoteGroup,
command: command
});
}
}

private registerContinueInLocalFolderAction(): void {
Expand Down Expand Up @@ -830,7 +839,7 @@ export class EditSessionsContribution extends Disposable implements IWorkbenchCo
}));

if (getVirtualWorkspaceLocation(this.contextService.getWorkspace()) !== undefined && isNative) {
this.generateStandaloneOptionCommand(openLocalFolderCommand.id, localize('continueWorkingOn.existingLocalFolder', 'Continue Working in Existing Local Folder'), undefined, openLocalFolderCommand.precondition);
this.generateStandaloneOptionCommand(openLocalFolderCommand.id, localize('continueWorkingOn.existingLocalFolder', 'Continue Working in Existing Local Folder'), undefined, openLocalFolderCommand.precondition, undefined);
}
}

Expand Down Expand Up @@ -944,6 +953,7 @@ interface ICommand {
when: string;
documentation?: string;
qualifiedName?: string;
remoteGroup?: string;
}

const continueEditSessionExtPoint = ExtensionsRegistry.registerExtensionPoint<ICommand[]>({
Expand All @@ -970,6 +980,10 @@ const continueEditSessionExtPoint = ExtensionsRegistry.registerExtensionPoint<IC
description: localize('continueEditSessionExtPoint.description', "The url, or a command that returns the url, to the option's documentation page."),
type: 'string'
},
remoteGroup: {
description: localize('continueEditSessionExtPoint.remoteGroup', 'Group into which this item belongs in the remote indicator.'),
type: 'string'
},
when: {
description: localize('continueEditSessionExtPoint.when', 'Condition which must be true to show this item.'),
type: 'string'
Expand Down

0 comments on commit 27084dc

Please sign in to comment.