Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { Registry } from '../../../../platform/registry/common/platform.js';
7
import { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';
8
import { QuickCommandNLS } from '../../../common/standaloneStrings.js';
9
import { ICommandQuickPick } from '../../../../platform/quickinput/browser/commandsQuickAccess.js';
10
import { ICodeEditorService } from '../../../browser/services/codeEditorService.js';
11
import { AbstractEditorCommandsQuickAccessProvider } from '../../../contrib/quickAccess/browser/commandsQuickAccess.js';
12
import { IEditor } from '../../../common/editorCommon.js';
13
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
14
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
15
import { ICommandService } from '../../../../platform/commands/common/commands.js';
16
import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';
17
import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
18
import { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';
19
import { EditorContextKeys } from '../../../common/editorContextKeys.js';
20
import { KeyCode } from '../../../../base/common/keyCodes.js';
21
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
22
import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
23
24
export class StandaloneCommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {
25
26
protected get activeTextEditorControl(): IEditor | undefined { return this.codeEditorService.getFocusedCodeEditor() ?? undefined; }
27
28
constructor(
29
@IInstantiationService instantiationService: IInstantiationService,
30
@ICodeEditorService private readonly codeEditorService: ICodeEditorService,
31
@IKeybindingService keybindingService: IKeybindingService,
32
@ICommandService commandService: ICommandService,
33
@ITelemetryService telemetryService: ITelemetryService,
34
@IDialogService dialogService: IDialogService
35
) {
36
super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);
37
}
38
39
protected async getCommandPicks(): Promise<Array<ICommandQuickPick>> {
40
return this.getCodeEditorCommandPicks();
41
}
42
43
protected hasAdditionalCommandPicks(): boolean {
44
return false;
45
}
46
47
protected async getAdditionalCommandPicks(): Promise<ICommandQuickPick[]> {
48
return [];
49
}
50
}
51
52
export class GotoLineAction extends EditorAction {
53
54
static readonly ID = 'editor.action.quickCommand';
55
56
constructor() {
57
super({
58
id: GotoLineAction.ID,
59
label: QuickCommandNLS.quickCommandActionLabel,
60
alias: 'Command Palette',
61
precondition: undefined,
62
kbOpts: {
63
kbExpr: EditorContextKeys.focus,
64
primary: KeyCode.F1,
65
weight: KeybindingWeight.EditorContrib
66
},
67
contextMenuOpts: {
68
group: 'z_commands',
69
order: 1
70
}
71
});
72
}
73
74
run(accessor: ServicesAccessor): void {
75
accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);
76
}
77
}
78
79
registerEditorAction(GotoLineAction);
80
81
Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({
82
ctor: StandaloneCommandsQuickAccessProvider,
83
prefix: StandaloneCommandsQuickAccessProvider.PREFIX,
84
helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction.ID }]
85
});
86
87