mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-26 01:38:40 +01:00
Move remaining terminal menu registrations to terminalMenus
Fixes #123473
This commit is contained in:
@@ -15,10 +15,10 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
|
||||
import { EndOfLinePreference } from 'vs/editor/common/model';
|
||||
import { localize } from 'vs/nls';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { Action2, ICommandActionTitle, ILocalizedString, MenuId, registerAction2 } from 'vs/platform/actions/common/actions';
|
||||
import { Action2, ICommandActionTitle, ILocalizedString, registerAction2 } from 'vs/platform/actions/common/actions';
|
||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ContextKeyAndExpr, ContextKeyEqualsExpr, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
|
||||
import { ILabelService } from 'vs/platform/label/common/label';
|
||||
@@ -32,7 +32,7 @@ import { PICK_WORKSPACE_FOLDER_COMMAND_ID } from 'vs/workbench/browser/actions/w
|
||||
import { FindInFilesCommand, IFindInFilesArgs } from 'vs/workbench/contrib/search/browser/searchActions';
|
||||
import { Direction, IRemoteTerminalService, ITerminalInstance, ITerminalInstanceService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
import { TerminalQuickAccessProvider } from 'vs/workbench/contrib/terminal/browser/terminalQuickAccess';
|
||||
import { IRemoteTerminalAttachTarget, ITerminalConfigHelper, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS, KEYBINDING_CONTEXT_TERMINAL_ALT_BUFFER_ACTIVE, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED, KEYBINDING_CONTEXT_TERMINAL_TABS_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TABS_SINGULAR_SELECTION, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, TERMINAL_ACTION_CATEGORY, TerminalCommandId, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { IRemoteTerminalAttachTarget, ITerminalConfigHelper, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS, KEYBINDING_CONTEXT_TERMINAL_ALT_BUFFER_ACTIVE, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED, KEYBINDING_CONTEXT_TERMINAL_TABS_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TABS_SINGULAR_SELECTION, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, TERMINAL_ACTION_CATEGORY, TerminalCommandId } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { ITerminalContributionService } from 'vs/workbench/contrib/terminal/common/terminalExtensionPoints';
|
||||
import { terminalStrings } from 'vs/workbench/contrib/terminal/common/terminalStrings';
|
||||
import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver';
|
||||
@@ -343,38 +343,10 @@ export function registerTerminalActions() {
|
||||
constructor() {
|
||||
super({
|
||||
id: TerminalCommandId.Focus,
|
||||
title: { value: localize('workbench.action.terminal.focus', "Focus Terminal"), original: 'Focus Terminal' },
|
||||
title: terminalStrings.focus,
|
||||
f1: true,
|
||||
category,
|
||||
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED,
|
||||
// This command is used to show instead of tabs when there is only a single terminal
|
||||
menu: {
|
||||
id: MenuId.ViewTitle,
|
||||
group: 'navigation',
|
||||
order: 0,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.has(`config.${TerminalSettingId.TabsEnabled}`),
|
||||
ContextKeyExpr.or(
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleTerminal'),
|
||||
ContextKeyExpr.equals('terminalCount', 1)
|
||||
),
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleTerminalOrNarrow'),
|
||||
ContextKeyExpr.or(
|
||||
ContextKeyExpr.equals('terminalCount', 1),
|
||||
ContextKeyExpr.has('isTerminalTabsNarrow')
|
||||
)
|
||||
),
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleGroup'),
|
||||
ContextKeyExpr.equals('terminalGroupCount', 1)
|
||||
),
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'always')
|
||||
)
|
||||
]),
|
||||
}
|
||||
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED
|
||||
});
|
||||
}
|
||||
async run(accessor: ServicesAccessor) {
|
||||
@@ -1362,15 +1334,6 @@ export function registerTerminalActions() {
|
||||
type: 'object'
|
||||
}
|
||||
}]
|
||||
},
|
||||
menu: {
|
||||
id: MenuId.ViewTitle,
|
||||
group: 'navigation',
|
||||
order: 2,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.not(`config.${TerminalSettingId.TabsEnabled}`)
|
||||
])
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1579,16 +1542,7 @@ export function registerTerminalActions() {
|
||||
f1: true,
|
||||
category,
|
||||
precondition: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN),
|
||||
icon: Codicon.trash,
|
||||
menu: {
|
||||
id: MenuId.ViewTitle,
|
||||
group: 'navigation',
|
||||
order: 3,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.not(`config.${TerminalSettingId.TabsEnabled}`)
|
||||
])
|
||||
}
|
||||
icon: Codicon.trash
|
||||
});
|
||||
}
|
||||
async run(accessor: ServicesAccessor) {
|
||||
@@ -1683,15 +1637,7 @@ export function registerTerminalActions() {
|
||||
title: TerminalCommandId.CreateWithProfileButton,
|
||||
f1: false,
|
||||
category,
|
||||
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED,
|
||||
menu: [{
|
||||
id: MenuId.ViewTitle,
|
||||
group: 'navigation',
|
||||
order: 0,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID)
|
||||
]),
|
||||
}]
|
||||
precondition: KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED
|
||||
});
|
||||
}
|
||||
async run(accessor: ServicesAccessor) {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { localize } from 'vs/nls';
|
||||
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
|
||||
import { ContextKeyAndExpr, ContextKeyEqualsExpr, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
@@ -240,6 +241,86 @@ export function setupTerminalMenus(): void {
|
||||
ContextKeyExpr.not(`config.${TerminalSettingId.TabsEnabled}`)
|
||||
]),
|
||||
}
|
||||
},
|
||||
{
|
||||
// This is used to show instead of tabs when there is only a single terminal
|
||||
id: MenuId.ViewTitle,
|
||||
item: {
|
||||
command: {
|
||||
id: TerminalCommandId.Focus,
|
||||
title: terminalStrings.focus
|
||||
},
|
||||
group: 'navigation',
|
||||
order: 0,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.has(`config.${TerminalSettingId.TabsEnabled}`),
|
||||
ContextKeyExpr.or(
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleTerminal'),
|
||||
ContextKeyExpr.equals('terminalCount', 1)
|
||||
),
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleTerminalOrNarrow'),
|
||||
ContextKeyExpr.or(
|
||||
ContextKeyExpr.equals('terminalCount', 1),
|
||||
ContextKeyExpr.has('isTerminalTabsNarrow')
|
||||
)
|
||||
),
|
||||
ContextKeyExpr.and(
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'singleGroup'),
|
||||
ContextKeyExpr.equals('terminalGroupCount', 1)
|
||||
),
|
||||
ContextKeyExpr.equals(`config.${TerminalSettingId.TabsShowActiveTerminal}`, 'always')
|
||||
)
|
||||
]),
|
||||
}
|
||||
},
|
||||
{
|
||||
id: MenuId.ViewTitle,
|
||||
item: {
|
||||
command: {
|
||||
id: TerminalCommandId.Split,
|
||||
title: terminalStrings.split,
|
||||
icon: Codicon.splitHorizontal
|
||||
},
|
||||
group: 'navigation',
|
||||
order: 2,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.not(`config.${TerminalSettingId.TabsEnabled}`)
|
||||
])
|
||||
}
|
||||
},
|
||||
{
|
||||
id: MenuId.ViewTitle,
|
||||
item: {
|
||||
command: {
|
||||
id: TerminalCommandId.Kill,
|
||||
title: terminalStrings.kill,
|
||||
icon: Codicon.trash
|
||||
},
|
||||
group: 'navigation',
|
||||
order: 3,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID),
|
||||
ContextKeyExpr.not(`config.${TerminalSettingId.TabsEnabled}`)
|
||||
])
|
||||
}
|
||||
},
|
||||
{
|
||||
id: MenuId.ViewTitle,
|
||||
item: {
|
||||
command: {
|
||||
id: TerminalCommandId.CreateWithProfileButton,
|
||||
title: TerminalCommandId.CreateWithProfileButton
|
||||
},
|
||||
group: 'navigation',
|
||||
order: 0,
|
||||
when: ContextKeyAndExpr.create([
|
||||
ContextKeyEqualsExpr.create('view', TERMINAL_VIEW_ID)
|
||||
])
|
||||
}
|
||||
}
|
||||
]
|
||||
);
|
||||
|
||||
@@ -17,6 +17,10 @@ export function formatMessageForTerminal(message: string, excludeLeadingNewLine:
|
||||
* An object holding strings shared by multiple parts of the terminal
|
||||
*/
|
||||
export const terminalStrings = {
|
||||
focus: {
|
||||
value: localize('workbench.action.terminal.focus', "Focus Terminal"),
|
||||
original: 'Focus Terminal'
|
||||
},
|
||||
kill: {
|
||||
value: localize('killTerminal', "Kill Terminal"),
|
||||
original: 'Kill Terminal',
|
||||
|
||||
Reference in New Issue
Block a user