Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.ts
5252 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 { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';
7
import { Registry } from '../../../../platform/registry/common/platform.js';
8
import { IQuickAccessRegistry, Extensions } from '../../../../platform/quickinput/common/quickAccess.js';
9
import { ICodeEditorService } from '../../../browser/services/codeEditorService.js';
10
import { GoToLineNLS } from '../../../common/standaloneStrings.js';
11
import { Event } from '../../../../base/common/event.js';
12
import { EditorAction, registerEditorAction, ServicesAccessor } from '../../../browser/editorExtensions.js';
13
import { EditorContextKeys } from '../../../common/editorContextKeys.js';
14
import { KeyMod, KeyCode } from '../../../../base/common/keyCodes.js';
15
import { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
16
import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
17
import { IStorageService } from '../../../../platform/storage/common/storage.js';
18
19
export class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {
20
21
protected readonly onDidActiveTextEditorControlChange = Event.None;
22
23
constructor(
24
@ICodeEditorService private readonly editorService: ICodeEditorService,
25
@IStorageService protected override readonly storageService: IStorageService
26
) {
27
super();
28
}
29
30
protected get activeTextEditorControl() {
31
return this.editorService.getFocusedCodeEditor() ?? undefined;
32
}
33
}
34
35
export class GotoLineAction extends EditorAction {
36
37
static readonly ID = 'editor.action.gotoLine';
38
39
constructor() {
40
super({
41
id: GotoLineAction.ID,
42
label: GoToLineNLS.gotoLineActionLabel,
43
alias: 'Go to Line/Column...',
44
precondition: undefined,
45
kbOpts: {
46
kbExpr: EditorContextKeys.focus,
47
primary: KeyMod.CtrlCmd | KeyCode.KeyG,
48
mac: { primary: KeyMod.WinCtrl | KeyCode.KeyG },
49
weight: KeybindingWeight.EditorContrib
50
}
51
});
52
}
53
54
run(accessor: ServicesAccessor): void {
55
accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX);
56
}
57
}
58
59
registerEditorAction(GotoLineAction);
60
61
Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({
62
ctor: StandaloneGotoLineQuickAccessProvider,
63
prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_LINE_PREFIX,
64
helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]
65
});
66
67
class GotoOffsetAction extends EditorAction {
68
69
static readonly ID = 'editor.action.gotoOffset';
70
71
constructor() {
72
super({
73
id: GotoOffsetAction.ID,
74
label: GoToLineNLS.gotoOffsetActionLabel,
75
alias: 'Go to Offset...',
76
precondition: undefined,
77
});
78
}
79
80
run(accessor: ServicesAccessor): void {
81
accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX);
82
}
83
}
84
85
registerEditorAction(GotoOffsetAction);
86
87
Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess).registerQuickAccessProvider({
88
ctor: StandaloneGotoLineQuickAccessProvider,
89
prefix: StandaloneGotoLineQuickAccessProvider.GO_TO_OFFSET_PREFIX,
90
helpEntries: [{ description: GoToLineNLS.gotoOffsetActionLabel, commandId: GotoOffsetAction.ID }]
91
});
92
93
94