mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-15 07:28:05 +00:00
Merge pull request #230127 from microsoft/tyriar/230126
Move terminal quick access into terminalContrib/
This commit is contained in:
@@ -13,19 +13,16 @@ import './media/widgets.css';
|
||||
import './media/xterm.css';
|
||||
import * as nls from '../../../../nls.js';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';
|
||||
import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';
|
||||
import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
|
||||
import { Extensions as DragAndDropExtensions, IDragAndDropContributionRegistry, IDraggedResourceEditorInput } from '../../../../platform/dnd/browser/dnd.js';
|
||||
import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js';
|
||||
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
|
||||
import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from '../../../../platform/quickinput/common/quickAccess.js';
|
||||
import { Registry } from '../../../../platform/registry/common/platform.js';
|
||||
import { GeneralShellType, ITerminalLogService, WindowsShellType } from '../../../../platform/terminal/common/terminal.js';
|
||||
import { TerminalLogService } from '../../../../platform/terminal/common/terminalLogService.js';
|
||||
import { registerTerminalPlatformConfiguration } from '../../../../platform/terminal/common/terminalPlatformConfiguration.js';
|
||||
import { EditorPaneDescriptor, IEditorPaneRegistry } from '../../../browser/editor.js';
|
||||
import { ViewPaneContainer } from '../../../browser/parts/views/viewPaneContainer.js';
|
||||
import { getQuickNavigateHandler } from '../../../browser/quickaccess.js';
|
||||
import { WorkbenchPhase, registerWorkbenchContribution2 } from '../../../common/contributions.js';
|
||||
import { EditorExtensions, IEditorFactoryRegistry } from '../../../common/editor.js';
|
||||
import { IViewContainersRegistry, IViewsRegistry, Extensions as ViewContainerExtensions, ViewContainerLocation } from '../../../common/views.js';
|
||||
@@ -44,7 +41,6 @@ import { TerminalInstanceService } from './terminalInstanceService.js';
|
||||
import { TerminalMainContribution } from './terminalMainContribution.js';
|
||||
import { setupTerminalMenus } from './terminalMenus.js';
|
||||
import { TerminalProfileService } from './terminalProfileService.js';
|
||||
import { TerminalQuickAccessProvider } from './terminalQuickAccess.js';
|
||||
import { TerminalService } from './terminalService.js';
|
||||
import { TerminalViewPane } from './terminalView.js';
|
||||
import { TerminalWslRecommendationContribution } from './terminalWslRecommendationContribution.js';
|
||||
@@ -64,21 +60,6 @@ registerSingleton(ITerminalGroupService, TerminalGroupService, InstantiationType
|
||||
registerSingleton(ITerminalInstanceService, TerminalInstanceService, InstantiationType.Delayed);
|
||||
registerSingleton(ITerminalProfileService, TerminalProfileService, InstantiationType.Delayed);
|
||||
|
||||
// Register quick accesses
|
||||
const quickAccessRegistry = (Registry.as<IQuickAccessRegistry>(QuickAccessExtensions.Quickaccess));
|
||||
const inTerminalsPicker = 'inTerminalPicker';
|
||||
quickAccessRegistry.registerQuickAccessProvider({
|
||||
ctor: TerminalQuickAccessProvider,
|
||||
prefix: TerminalQuickAccessProvider.PREFIX,
|
||||
contextKey: inTerminalsPicker,
|
||||
placeholder: nls.localize('tasksQuickAccessPlaceholder', "Type the name of a terminal to open."),
|
||||
helpEntries: [{ description: nls.localize('tasksQuickAccessHelp', "Show All Opened Terminals"), commandId: TerminalCommandId.QuickOpenTerm }]
|
||||
});
|
||||
const quickAccessNavigateNextInTerminalPickerId = 'workbench.action.quickOpenNavigateNextInTerminalPicker';
|
||||
CommandsRegistry.registerCommand({ id: quickAccessNavigateNextInTerminalPickerId, handler: getQuickNavigateHandler(quickAccessNavigateNextInTerminalPickerId, true) });
|
||||
const quickAccessNavigatePreviousInTerminalPickerId = 'workbench.action.quickOpenNavigatePreviousInTerminalPicker';
|
||||
CommandsRegistry.registerCommand({ id: quickAccessNavigatePreviousInTerminalPickerId, handler: getQuickNavigateHandler(quickAccessNavigatePreviousInTerminalPickerId, false) });
|
||||
|
||||
// Register workbench contributions
|
||||
// This contribution blocks startup as it's critical to enable the web embedder window.createTerminal API
|
||||
registerWorkbenchContribution2(TerminalMainContribution.ID, TerminalMainContribution, WorkbenchPhase.BlockStartup);
|
||||
|
||||
@@ -32,7 +32,6 @@ import { IWorkspaceContextService, IWorkspaceFolder } from '../../../../platform
|
||||
import { PICK_WORKSPACE_FOLDER_COMMAND_ID } from '../../../browser/actions/workspaceCommands.js';
|
||||
import { CLOSE_EDITOR_COMMAND_ID } from '../../../browser/parts/editor/editorCommands.js';
|
||||
import { Direction, ICreateTerminalOptions, IDetachedTerminalInstance, ITerminalConfigurationService, ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService, IXtermTerminal } from './terminal.js';
|
||||
import { TerminalQuickAccessProvider } from './terminalQuickAccess.js';
|
||||
import { IRemoteTerminalAttachTarget, ITerminalProfileResolverService, ITerminalProfileService, TERMINAL_VIEW_ID, TerminalCommandId } from '../common/terminal.js';
|
||||
import { TerminalContextKeys } from '../common/terminalContextKey.js';
|
||||
import { createProfileSchemaEnums } from '../../../../platform/terminal/common/terminalProfiles.js';
|
||||
@@ -969,13 +968,6 @@ export function registerTerminalActions() {
|
||||
}
|
||||
});
|
||||
|
||||
registerTerminalAction({
|
||||
id: TerminalCommandId.QuickOpenTerm,
|
||||
title: localize2('quickAccessTerminal', 'Switch Active Terminal'),
|
||||
precondition: sharedWhenClause.terminalAvailable,
|
||||
run: (c, accessor) => accessor.get(IQuickInputService).quickAccess.show(TerminalQuickAccessProvider.PREFIX)
|
||||
});
|
||||
|
||||
registerActiveInstanceAction({
|
||||
id: TerminalCommandId.ScrollToPreviousCommand,
|
||||
title: terminalStrings.scrollToPreviousCommand,
|
||||
|
||||
@@ -458,7 +458,6 @@ export const enum TerminalCommandId {
|
||||
Rename = 'workbench.action.terminal.rename',
|
||||
RenameActiveTab = 'workbench.action.terminal.renameActiveTab',
|
||||
RenameWithArgs = 'workbench.action.terminal.renameWithArg',
|
||||
QuickOpenTerm = 'workbench.action.quickOpenTerm',
|
||||
ScrollToPreviousCommand = 'workbench.action.terminal.scrollToPreviousCommand',
|
||||
ScrollToNextCommand = 'workbench.action.terminal.scrollToNextCommand',
|
||||
SelectToPreviousCommand = 'workbench.action.terminal.selectToPreviousCommand',
|
||||
|
||||
@@ -23,6 +23,7 @@ import '../terminalContrib/commandGuide/browser/terminal.commandGuide.contributi
|
||||
import '../terminalContrib/links/browser/terminal.links.contribution.js';
|
||||
import '../terminalContrib/zoom/browser/terminal.zoom.contribution.js';
|
||||
import '../terminalContrib/stickyScroll/browser/terminal.stickyScroll.contribution.js';
|
||||
import '../terminalContrib/quickAccess/browser/terminal.quickAccess.contribution.js';
|
||||
import '../terminalContrib/quickFix/browser/terminal.quickFix.contribution.js';
|
||||
import '../terminalContrib/typeAhead/browser/terminal.typeAhead.contribution.js';
|
||||
import '../terminalContrib/suggest/browser/terminal.suggest.contribution.js';
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as nls from '../../../../../nls.js';
|
||||
import { CommandsRegistry } from '../../../../../platform/commands/common/commands.js';
|
||||
import { ContextKeyExpr } from '../../../../../platform/contextkey/common/contextkey.js';
|
||||
import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from '../../../../../platform/quickinput/common/quickAccess.js';
|
||||
import { IQuickInputService } from '../../../../../platform/quickinput/common/quickInput.js';
|
||||
import { Registry } from '../../../../../platform/registry/common/platform.js';
|
||||
import { getQuickNavigateHandler } from '../../../../browser/quickaccess.js';
|
||||
import { registerTerminalAction } from '../../../terminal/browser/terminalActions.js';
|
||||
import { TerminalContextKeys } from '../../../terminal/common/terminalContextKey.js';
|
||||
import { TerminalQuickAccessProvider } from '../../../terminalContrib/quickAccess/browser/terminalQuickAccess.js';
|
||||
|
||||
const enum TerminalQuickAccessCommandId {
|
||||
QuickOpenTerm = 'workbench.action.quickOpenTerm',
|
||||
}
|
||||
|
||||
const quickAccessRegistry = (Registry.as<IQuickAccessRegistry>(QuickAccessExtensions.Quickaccess));
|
||||
const inTerminalsPicker = 'inTerminalPicker';
|
||||
quickAccessRegistry.registerQuickAccessProvider({
|
||||
ctor: TerminalQuickAccessProvider,
|
||||
prefix: TerminalQuickAccessProvider.PREFIX,
|
||||
contextKey: inTerminalsPicker,
|
||||
placeholder: nls.localize('tasksQuickAccessPlaceholder', "Type the name of a terminal to open."),
|
||||
helpEntries: [{ description: nls.localize('tasksQuickAccessHelp', "Show All Opened Terminals"), commandId: TerminalQuickAccessCommandId.QuickOpenTerm }]
|
||||
});
|
||||
const quickAccessNavigateNextInTerminalPickerId = 'workbench.action.quickOpenNavigateNextInTerminalPicker';
|
||||
CommandsRegistry.registerCommand({ id: quickAccessNavigateNextInTerminalPickerId, handler: getQuickNavigateHandler(quickAccessNavigateNextInTerminalPickerId, true) });
|
||||
const quickAccessNavigatePreviousInTerminalPickerId = 'workbench.action.quickOpenNavigatePreviousInTerminalPicker';
|
||||
CommandsRegistry.registerCommand({ id: quickAccessNavigatePreviousInTerminalPickerId, handler: getQuickNavigateHandler(quickAccessNavigatePreviousInTerminalPickerId, false) });
|
||||
|
||||
registerTerminalAction({
|
||||
id: TerminalQuickAccessCommandId.QuickOpenTerm,
|
||||
title: nls.localize2('quickAccessTerminal', 'Switch Active Terminal'),
|
||||
precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),
|
||||
run: (c, accessor) => accessor.get(IQuickInputService).quickAccess.show(TerminalQuickAccessProvider.PREFIX)
|
||||
});
|
||||
@@ -3,21 +3,21 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { IQuickPickSeparator } from '../../../../platform/quickinput/common/quickInput.js';
|
||||
import { IPickerQuickAccessItem, PickerQuickAccessProvider, TriggerAction } from '../../../../platform/quickinput/browser/pickerQuickAccess.js';
|
||||
import { matchesFuzzy } from '../../../../base/common/filters.js';
|
||||
import { ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalService } from './terminal.js';
|
||||
import { ICommandService } from '../../../../platform/commands/common/commands.js';
|
||||
import { TerminalCommandId } from '../common/terminal.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { ThemeIcon } from '../../../../base/common/themables.js';
|
||||
import { killTerminalIcon, renameTerminalIcon } from './terminalIcons.js';
|
||||
import { getColorClass, getIconId, getUriClasses } from './terminalIcon.js';
|
||||
import { terminalStrings } from '../common/terminalStrings.js';
|
||||
import { TerminalLocation } from '../../../../platform/terminal/common/terminal.js';
|
||||
import { IEditorService } from '../../../services/editor/common/editorService.js';
|
||||
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
|
||||
import { localize } from '../../../../../nls.js';
|
||||
import { IQuickPickSeparator } from '../../../../../platform/quickinput/common/quickInput.js';
|
||||
import { IPickerQuickAccessItem, PickerQuickAccessProvider, TriggerAction } from '../../../../../platform/quickinput/browser/pickerQuickAccess.js';
|
||||
import { matchesFuzzy } from '../../../../../base/common/filters.js';
|
||||
import { ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalService } from '../../../terminal/browser/terminal.js';
|
||||
import { ICommandService } from '../../../../../platform/commands/common/commands.js';
|
||||
import { TerminalCommandId } from '../../../terminal/common/terminal.js';
|
||||
import { IThemeService } from '../../../../../platform/theme/common/themeService.js';
|
||||
import { ThemeIcon } from '../../../../../base/common/themables.js';
|
||||
import { killTerminalIcon, renameTerminalIcon } from '../../../terminal/browser/terminalIcons.js';
|
||||
import { getColorClass, getIconId, getUriClasses } from '../../../terminal/browser/terminalIcon.js';
|
||||
import { terminalStrings } from '../../../terminal/common/terminalStrings.js';
|
||||
import { TerminalLocation } from '../../../../../platform/terminal/common/terminal.js';
|
||||
import { IEditorService } from '../../../../services/editor/common/editorService.js';
|
||||
import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
|
||||
let terminalPicks: Array<IPickerQuickAccessItem | IQuickPickSeparator> = [];
|
||||
|
||||
export class TerminalQuickAccessProvider extends PickerQuickAccessProvider<IPickerQuickAccessItem> {
|
||||
Reference in New Issue
Block a user