Path: blob/main/src/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts
5252 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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';6import { Registry } from '../../../../platform/registry/common/platform.js';7import { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';8import { ICodeEditorService } from '../../../browser/services/codeEditorService.js';9import { GoToLineNLS } from '../../../common/standaloneStrings.js';10import { Event } from '../../../../base/common/event.js';11import { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';12import { EditorContextKeys } from '../../../common/editorContextKeys.js';13import { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';14import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';15import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';16import { IStorageService } from '../../../../platform/storage/common/storage.js';1718export class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {1920protected readonly onDidActiveTextEditorControlChange = Event.None;2122constructor(23@ICodeEditorService private readonly editorService: ICodeEditorService,24@IStorageService protected override readonly storageService: IStorageService25) {26super();27}2829protected get activeTextEditorControl() {30return this.editorService.getFocusedCodeEditor() ?? undefined;31}32}3334export class GotoLineAction extends EditorAction {3536static readonly ID = 'editor.action.gotoLine';3738constructor() {39super({40id: GotoLineAction.ID,41label: GoToLineNLS.gotoLineActionLabel,42alias: 'Go to Line/Column...',43precondition: undefined,44kbOpts: {45kbExpr: EditorContextKeys.focus,46primary: KeyMod.CtrlCmd | KeyCode.KeyG,47mac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },48weight: KeybindingWeight.EditorContrib49}50});51}5253run(accessor: ServicesAccessor): void {54accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX);55}56}5758registerEditorAction(GotoLineAction);5960Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({61ctor: StandaloneGotoLineQuickAccessProvider,62prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX,63helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]64});6566class GotoOffsetAction extends EditorAction {6768static readonly ID = 'editor.action.gotoOffset';6970constructor() {71super({72id: GotoOffsetAction.ID,73label: GoToLineNLS.gotoOffsetActionLabel,74alias: 'Go to Offset...',75precondition: undefined,76});77}7879run(accessor: ServicesAccessor): void {80accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX);81}82}8384registerEditorAction(GotoOffsetAction);8586Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({87ctor: StandaloneGotoLineQuickAccessProvider,88prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX,89helpEntries: [{ description: GoToLineNLS.gotoOffsetActionLabel, commandId: GotoOffsetAction.ID }]90});91929394