Skip to content

Commit d2a8be7

Browse files
authored
Hide edit sessions view until explicitly shown (microsoft#156238)
1 parent 0e38fde commit d2a8be7

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

src/vs/workbench/contrib/editSessions/browser/editSessions.contribution.ts

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle
1010
import { Action2, IAction2Options, registerAction2 } from 'vs/platform/actions/common/actions';
1111
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
1212
import { localize } from 'vs/nls';
13-
import { IEditSessionsWorkbenchService, Change, ChangeType, Folder, EditSession, FileType, EDIT_SESSION_SYNC_CATEGORY, EDIT_SESSIONS_CONTAINER_ID, EditSessionSchemaVersion, IEditSessionsLogService, EDIT_SESSIONS_VIEW_ICON, EDIT_SESSIONS_TITLE, EDIT_SESSIONS_SCHEME } from 'vs/workbench/contrib/editSessions/common/editSessions';
13+
import { IEditSessionsWorkbenchService, Change, ChangeType, Folder, EditSession, FileType, EDIT_SESSION_SYNC_CATEGORY, EDIT_SESSIONS_CONTAINER_ID, EditSessionSchemaVersion, IEditSessionsLogService, EDIT_SESSIONS_VIEW_ICON, EDIT_SESSIONS_TITLE, EDIT_SESSIONS_SCHEME, EDIT_SESSIONS_SHOW_VIEW, EDIT_SESSIONS_SIGNED_IN } from 'vs/workbench/contrib/editSessions/common/editSessions';
1414
import { ISCMRepository, ISCMService } from 'vs/workbench/contrib/scm/common/scm';
1515
import { IFileService } from 'vs/platform/files/common/files';
1616
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
@@ -32,14 +32,14 @@ import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuratio
3232
import { Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry';
3333
import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
3434
import { ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry';
35-
import { ContextKeyExpr, ContextKeyExpression, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
35+
import { ContextKeyExpr, ContextKeyExpression, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
3636
import { ICommandService } from 'vs/platform/commands/common/commands';
3737
import { getVirtualWorkspaceLocation } from 'vs/platform/workspace/common/virtualWorkspace';
3838
import { Schemas } from 'vs/base/common/network';
3939
import { IsWebContext } from 'vs/platform/contextkey/common/contextkeys';
4040
import { isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
4141
import { EditSessionsLogService } from 'vs/workbench/contrib/editSessions/common/editSessionsLogService';
42-
import { IViewContainersRegistry, Extensions as ViewExtensions, ViewContainerLocation } from 'vs/workbench/common/views';
42+
import { IViewContainersRegistry, Extensions as ViewExtensions, ViewContainerLocation, IViewsService } from 'vs/workbench/common/views';
4343
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
4444
import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer';
4545
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@@ -70,6 +70,8 @@ export class EditSessionsContribution extends Disposable implements IWorkbenchCo
7070
private registered = false;
7171
private continueEditSessionOptions: ContinueEditSessionItem[] = [];
7272

73+
private readonly shouldShowViewsContext: IContextKey<boolean>;
74+
7375
constructor(
7476
@IEditSessionsWorkbenchService private readonly editSessionsWorkbenchService: IEditSessionsWorkbenchService,
7577
@IFileService private readonly fileService: IFileService,
@@ -139,6 +141,8 @@ export class EditSessionsContribution extends Disposable implements IWorkbenchCo
139141
this.continueEditSessionOptions = continueEditSessionOptions;
140142
});
141143

144+
this.shouldShowViewsContext = EDIT_SESSIONS_SHOW_VIEW.bindTo(this.contextKeyService);
145+
142146
textModelResolverService.registerTextModelContentProvider(EDIT_SESSIONS_SCHEME, instantiationService.createInstance(EditSessionsContentProvider));
143147
}
144148

@@ -171,9 +175,32 @@ export class EditSessionsContribution extends Disposable implements IWorkbenchCo
171175

172176
this.registerContinueInLocalFolderAction();
173177

178+
this.registerShowEditSessionViewAction();
179+
174180
this.registered = true;
175181
}
176182

183+
private registerShowEditSessionViewAction() {
184+
const that = this;
185+
this._register(registerAction2(class ShowEditSessionView extends Action2 {
186+
constructor() {
187+
super({
188+
id: 'workbench.editSessions.actions.showEditSessions',
189+
title: { value: localize('show edit session', "Show Edit Sessions"), original: 'Show Edit Sessions' },
190+
category: EDIT_SESSION_SYNC_CATEGORY,
191+
f1: true,
192+
precondition: EDIT_SESSIONS_SIGNED_IN
193+
});
194+
}
195+
196+
async run(accessor: ServicesAccessor) {
197+
that.shouldShowViewsContext.set(true);
198+
const viewsService = accessor.get(IViewsService);
199+
await viewsService.openViewContainer(EDIT_SESSIONS_CONTAINER_ID);
200+
}
201+
}));
202+
}
203+
177204
private registerContinueEditSessionAction() {
178205
const that = this;
179206
this._register(registerAction2(class ContinueEditSessionAction extends Action2 {

src/vs/workbench/contrib/editSessions/browser/editSessionsViews.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiati
1010
import { Registry } from 'vs/platform/registry/common/platform';
1111
import { TreeView, TreeViewPane } from 'vs/workbench/browser/parts/views/treeView';
1212
import { Extensions, ITreeItem, ITreeViewDataProvider, ITreeViewDescriptor, IViewsRegistry, TreeItemCollapsibleState, TreeViewItemHandleArg, ViewContainer } from 'vs/workbench/common/views';
13-
import { EDIT_SESSIONS_SCHEME, EDIT_SESSIONS_TITLE, IEditSessionsWorkbenchService } from 'vs/workbench/contrib/editSessions/common/editSessions';
13+
import { EDIT_SESSIONS_SCHEME, EDIT_SESSIONS_SHOW_VIEW, EDIT_SESSIONS_SIGNED_IN, EDIT_SESSIONS_TITLE, IEditSessionsWorkbenchService } from 'vs/workbench/contrib/editSessions/common/editSessions';
1414
import { URI } from 'vs/base/common/uri';
1515
import { fromNow } from 'vs/base/common/date';
1616
import { Codicon } from 'vs/base/common/codicons';
@@ -49,6 +49,7 @@ export class EditSessionsDataViews extends Disposable {
4949
canMoveView: false,
5050
treeView,
5151
collapsed: false,
52+
when: ContextKeyExpr.and(EDIT_SESSIONS_SIGNED_IN, EDIT_SESSIONS_SHOW_VIEW),
5253
order: 100,
5354
hideByDefault: true,
5455
}], container);

src/vs/workbench/contrib/editSessions/common/editSessions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,6 @@ export const EDIT_SESSIONS_TITLE = localize('edit sessions', 'Edit Sessions');
7575

7676
export const EDIT_SESSIONS_VIEW_ICON = registerIcon('edit-sessions-view-icon', Codicon.cloudDownload, localize('editSessionViewIcon', 'View icon of the edit sessions view.'));
7777

78+
export const EDIT_SESSIONS_SHOW_VIEW = new RawContextKey<boolean>('editSessionsShowView', false);
79+
7880
export const EDIT_SESSIONS_SCHEME = 'vscode-edit-sessions';

0 commit comments

Comments
 (0)