diff --git a/src/vs/sessions/contrib/sessions/browser/sessionsActions.ts b/src/vs/sessions/contrib/sessions/browser/sessionsActions.ts index eb07462e50a69..ee20fe86f6a49 100644 --- a/src/vs/sessions/contrib/sessions/browser/sessionsActions.ts +++ b/src/vs/sessions/contrib/sessions/browser/sessionsActions.ts @@ -1620,12 +1620,17 @@ registerAction2(class TogglePinSessionAction extends Action2 { icon: Codicon.pinned, title: localize('chatCompositeBar.unpin', "Unpin"), }, - menu: { + menu: [{ + id: Menus.SessionBarToolbar, + group: 'navigation', + order: 10, + when: ContextKeyExpr.and(SessionIsCreatedContext, SessionIsStickyContext, SessionIsArchivedContext.negate()), + }, { id: Menus.SessionBarToolbar, group: 'secondary/4_pin', order: 10, when: ContextKeyExpr.and(SessionIsCreatedContext, SessionIsArchivedContext.negate()), - }, + }], }); } diff --git a/src/vs/sessions/contrib/sessions/test/browser/sessionsActions.test.ts b/src/vs/sessions/contrib/sessions/test/browser/sessionsActions.test.ts index 094ec49a36448..4845a7e2af89d 100644 --- a/src/vs/sessions/contrib/sessions/test/browser/sessionsActions.test.ts +++ b/src/vs/sessions/contrib/sessions/test/browser/sessionsActions.test.ts @@ -75,6 +75,7 @@ suite('Sessions - Actions', () => { .map(item => ({ id: item.command.id, group: item.group })); assert.deepStrictEqual(actions, [ + { id: 'sessions.chatCompositeBar.togglePin', group: 'navigation' }, { id: 'sessions.sessionHeader.rename', group: 'secondary/1_session' }, { id: 'sessions.chatCompositeBar.addChat', group: 'secondary/3_newChat' }, { id: 'sessions.chatCompositeBar.togglePin', group: 'secondary/4_pin' }, @@ -107,12 +108,29 @@ suite('Sessions - Actions', () => { }); }); - test('uses a concise pin title in the session toolbar', () => { - const pin = MenuRegistry.getMenuItems(Menus.SessionBarToolbar) + test('shows pinned sessions in the session toolbar navigation group', () => { + const pinItems = MenuRegistry.getMenuItems(Menus.SessionBarToolbar) .filter(isIMenuItem) - .find(item => item.command.id === 'sessions.chatCompositeBar.togglePin'); + .filter(item => item.command.id === 'sessions.chatCompositeBar.togglePin') + .sort((a, b) => (a.group ?? '').localeCompare(b.group ?? '')) + .map(item => ({ + title: typeof item.command.title === 'string' ? item.command.title : item.command.title.value, + group: item.group, + order: item.order, + when: item.when?.serialize(), + })); - assert.strictEqual(pin && (typeof pin.command.title === 'string' ? pin.command.title : pin.command.title.value), 'Pin'); + assert.deepStrictEqual(pinItems, [{ + title: 'Pin', + group: 'navigation', + order: 10, + when: 'sessionIsCreated && sessionIsSticky && !sessionIsArchived', + }, { + title: 'Pin', + group: 'secondary/4_pin', + order: 10, + when: 'sessionIsCreated && !sessionIsArchived', + }]); }); test('keeps the Command Palette delete action explicit', () => { @@ -198,6 +216,7 @@ suite('Sessions - Actions', () => { })); assert.deepStrictEqual(actions, [ + { title: 'Pin', group: 'navigation' }, { title: 'Pin', group: 'secondary/4_pin' }, { title: 'Maximize', group: 'secondary/4_pin' }, { title: 'Close', group: 'secondary/4_pin' },