Path: blob/main/src/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Registry } from '../../../../platform/registry/common/platform.js';6import { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';7import { QuickCommandNLS } from '../../../common/standaloneStrings.js';8import { ICommandQuickPick } from '../../../../platform/quickinput/browser/commandsQuickAccess.js';9import { ICodeEditorService } from '../../../browser/services/codeEditorService.js';10import { AbstractEditorCommandsQuickAccessProvider } from '../../../contrib/quickAccess/browser/commandsQuickAccess.js';11import { IEditor } from '../../../common/editorCommon.js';12import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';13import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';14import { ICommandService } from '../../../../platform/commands/common/commands.js';15import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';16import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';17import { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';18import { EditorContextKeys } from '../../../common/editorContextKeys.js';19import { KeyCode } from '../../../../base/common/keyCodes.js';20import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';21import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';2223export class StandaloneCommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {2425protected get activeTextEditorControl(): IEditor | undefined { return this.codeEditorService.getFocusedCodeEditor() ?? undefined; }2627constructor(28@IInstantiationService instantiationService: IInstantiationService,29@ICodeEditorService private readonly codeEditorService: ICodeEditorService,30@IKeybindingService keybindingService: IKeybindingService,31@ICommandService commandService: ICommandService,32@ITelemetryService telemetryService: ITelemetryService,33@IDialogService dialogService: IDialogService34) {35super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);36}3738protected async getCommandPicks(): Promise<Array<ICommandQuickPick>> {39return this.getCodeEditorCommandPicks();40}4142protected hasAdditionalCommandPicks(): boolean {43return false;44}4546protected async getAdditionalCommandPicks(): Promise<ICommandQuickPick[]> {47return [];48}49}5051export class GotoLineAction extends EditorAction {5253static readonly ID = 'editor.action.quickCommand';5455constructor() {56super({57id: GotoLineAction.ID,58label: QuickCommandNLS.quickCommandActionLabel,59alias: 'Command Palette',60precondition: undefined,61kbOpts: {62kbExpr: EditorContextKeys.focus,63primary: KeyCode.F1,64weight: KeybindingWeight.EditorContrib65},66contextMenuOpts: {67group: 'z_commands',68order: 169}70});71}7273run(accessor: ServicesAccessor): void {74accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);75}76}7778registerEditorAction(GotoLineAction);7980Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({81ctor: StandaloneCommandsQuickAccessProvider,82prefix: StandaloneCommandsQuickAccessProvider.PREFIX,83helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction.ID }]84});858687