@codingame/monaco-vscode-keybindings-service-override 19.1.4 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -8
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +3 -3
- package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +4 -4
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +150 -152
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -24
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-keybindings-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - keybindings service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-
|
|
19
|
-
"@codingame/monaco-vscode-
|
|
20
|
-
"@codingame/monaco-vscode-
|
|
21
|
-
"@codingame/monaco-vscode-
|
|
22
|
-
"@codingame/monaco-vscode-api": "
|
|
23
|
-
"@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "
|
|
24
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-2a22c7b4-b906-5914-8cd1-3ed912fb738f-common": "20.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-40cada32-7e9c-528a-81fc-766e4da54147-common": "20.0.0",
|
|
20
|
+
"@codingame/monaco-vscode-a3eaa464-944c-5b8f-8886-213068ba4897-common": "20.0.0",
|
|
21
|
+
"@codingame/monaco-vscode-acd79e2c-c7e3-5594-873a-427e3006b3d8-common": "20.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-api": "20.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-d609a7d3-bf87-551a-884f-550a8b327ec5-common": "20.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-files-service-override": "20.0.0"
|
|
25
25
|
},
|
|
26
26
|
"main": "index.js",
|
|
27
27
|
"module": "index.js",
|
|
@@ -20,7 +20,7 @@ const keyboardConfiguration = {
|
|
|
20
20
|
'id': 'keyboard',
|
|
21
21
|
'order': 15,
|
|
22
22
|
'type': 'object',
|
|
23
|
-
'title': ( localize(
|
|
23
|
+
'title': ( localize(1918, "Keyboard")),
|
|
24
24
|
'properties': {
|
|
25
25
|
'keyboard.dispatch': {
|
|
26
26
|
scope: ConfigurationScope.APPLICATION,
|
|
@@ -28,7 +28,7 @@ const keyboardConfiguration = {
|
|
|
28
28
|
enum: ['code', 'keyCode'],
|
|
29
29
|
default: 'code',
|
|
30
30
|
markdownDescription: ( localize(
|
|
31
|
-
|
|
31
|
+
1919,
|
|
32
32
|
"Controls the dispatching logic for key presses to use either `code` (recommended) or `keyCode`."
|
|
33
33
|
)),
|
|
34
34
|
included: OS === OperatingSystem.Macintosh || OS === OperatingSystem.Linux
|
|
@@ -37,7 +37,7 @@ const keyboardConfiguration = {
|
|
|
37
37
|
scope: ConfigurationScope.APPLICATION,
|
|
38
38
|
type: 'boolean',
|
|
39
39
|
default: false,
|
|
40
|
-
markdownDescription: ( localize(
|
|
40
|
+
markdownDescription: ( localize(1920, "Controls if the AltGraph+ modifier should be treated as Ctrl+Alt+.")),
|
|
41
41
|
included: OS === OperatingSystem.Windows
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -10,10 +10,10 @@ class RunCommands extends Action2 {
|
|
|
10
10
|
constructor() {
|
|
11
11
|
super({
|
|
12
12
|
id: 'runCommands',
|
|
13
|
-
title: ( localize2(
|
|
13
|
+
title: ( localize2(5653, "Run Commands")),
|
|
14
14
|
f1: false,
|
|
15
15
|
metadata: {
|
|
16
|
-
description: ( localize(
|
|
16
|
+
description: ( localize(5654, "Run several commands")),
|
|
17
17
|
args: [
|
|
18
18
|
{
|
|
19
19
|
name: 'args',
|
|
@@ -23,7 +23,7 @@ class RunCommands extends Action2 {
|
|
|
23
23
|
properties: {
|
|
24
24
|
commands: {
|
|
25
25
|
type: 'array',
|
|
26
|
-
description: ( localize(
|
|
26
|
+
description: ( localize(5655, "Commands to run")),
|
|
27
27
|
items: {
|
|
28
28
|
anyOf: [
|
|
29
29
|
{
|
|
@@ -63,14 +63,14 @@ class RunCommands extends Action2 {
|
|
|
63
63
|
const notificationService = accessor.get(INotificationService);
|
|
64
64
|
if (!this._isCommandArgs(args)) {
|
|
65
65
|
notificationService.error(( localize(
|
|
66
|
-
|
|
66
|
+
5656,
|
|
67
67
|
"'runCommands' has received an argument with incorrect type. Please, review the argument passed to the command."
|
|
68
68
|
)));
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
if (args.commands.length === 0) {
|
|
72
72
|
notificationService.warn(( localize(
|
|
73
|
-
|
|
73
|
+
5657,
|
|
74
74
|
"'runCommands' has not received commands to run. Did you forget to pass commands in the 'runCommands' argument?"
|
|
75
75
|
)));
|
|
76
76
|
return;
|
|
@@ -16,7 +16,7 @@ class ToggleKeybindingsLogAction extends Action2 {
|
|
|
16
16
|
constructor() {
|
|
17
17
|
super({
|
|
18
18
|
id: 'workbench.action.toggleKeybindingsLog',
|
|
19
|
-
title: ( localize2(
|
|
19
|
+
title: ( localize2(7842, "Toggle Keyboard Shortcuts Troubleshooting")),
|
|
20
20
|
category: Categories.Developer,
|
|
21
21
|
f1: true
|
|
22
22
|
});
|
package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js
CHANGED
|
@@ -20,11 +20,11 @@ import { KeybindingParser } from '@codingame/monaco-vscode-2a22c7b4-b906-5914-8c
|
|
|
20
20
|
import { assertReturnsDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
21
21
|
import { isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
22
22
|
import { IUserDataProfileService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
23
|
-
import { DEFINE_KEYBINDING_EDITOR_CONTRIB_ID } from '@codingame/monaco-vscode-
|
|
23
|
+
import { DEFINE_KEYBINDING_EDITOR_CONTRIB_ID } from '@codingame/monaco-vscode-acd79e2c-c7e3-5594-873a-427e3006b3d8-common/vscode/vs/workbench/services/preferences/common/preferences';
|
|
24
24
|
|
|
25
25
|
var KeybindingEditorDecorationsRenderer_1;
|
|
26
26
|
const NLS_KB_LAYOUT_ERROR_MESSAGE = ( localize(
|
|
27
|
-
|
|
27
|
+
9183,
|
|
28
28
|
"You won't be able to produce this key combination under your current keyboard layout."
|
|
29
29
|
));
|
|
30
30
|
let DefineKeybindingEditorContribution = class DefineKeybindingEditorContribution extends Disposable {
|
|
@@ -182,14 +182,14 @@ let KeybindingEditorDecorationsRenderer = KeybindingEditorDecorationsRenderer_1
|
|
|
182
182
|
else {
|
|
183
183
|
if (usLabel && uiLabel !== usLabel) {
|
|
184
184
|
msg = ( new MarkdownString(( localize(
|
|
185
|
-
|
|
185
|
+
9184,
|
|
186
186
|
"**{0}** for your current keyboard layout (**{1}** for US standard).",
|
|
187
187
|
uiLabel,
|
|
188
188
|
usLabel
|
|
189
189
|
))));
|
|
190
190
|
}
|
|
191
191
|
else {
|
|
192
|
-
msg = ( new MarkdownString(( localize(
|
|
192
|
+
msg = ( new MarkdownString(( localize(9185, "**{0}** for your current keyboard layout.", uiLabel))));
|
|
193
193
|
}
|
|
194
194
|
className = 'keybindingInfo';
|
|
195
195
|
overviewRulerColor = themeColorFromId(overviewRulerInfo);
|
|
@@ -21,215 +21,220 @@ const apiMenus = [
|
|
|
21
21
|
{
|
|
22
22
|
key: 'commandPalette',
|
|
23
23
|
id: MenuId.CommandPalette,
|
|
24
|
-
description: ( localize(
|
|
24
|
+
description: ( localize(12720, "The Command Palette")),
|
|
25
25
|
supportsSubmenus: false
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
key: 'touchBar',
|
|
29
29
|
id: MenuId.TouchBarContext,
|
|
30
|
-
description: ( localize(
|
|
30
|
+
description: ( localize(12721, "The touch bar (macOS only)")),
|
|
31
31
|
supportsSubmenus: false
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
key: 'editor/title',
|
|
35
35
|
id: MenuId.EditorTitle,
|
|
36
|
-
description: ( localize(
|
|
36
|
+
description: ( localize(12722, "The editor title menu"))
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
key: 'editor/title/run',
|
|
40
40
|
id: MenuId.EditorTitleRun,
|
|
41
|
-
description: ( localize(
|
|
41
|
+
description: ( localize(12723, "Run submenu inside the editor title menu"))
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
key: 'editor/context',
|
|
45
45
|
id: MenuId.EditorContext,
|
|
46
|
-
description: ( localize(
|
|
46
|
+
description: ( localize(12724, "The editor context menu"))
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
key: 'editor/context/copy',
|
|
50
50
|
id: MenuId.EditorContextCopy,
|
|
51
|
-
description: ( localize(
|
|
51
|
+
description: ( localize(12725, "'Copy as' submenu in the editor context menu"))
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
key: 'editor/context/share',
|
|
55
55
|
id: MenuId.EditorContextShare,
|
|
56
|
-
description: ( localize(
|
|
56
|
+
description: ( localize(12726, "'Share' submenu in the editor context menu")),
|
|
57
57
|
proposed: 'contribShareMenu'
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
key: 'explorer/context',
|
|
61
61
|
id: MenuId.ExplorerContext,
|
|
62
|
-
description: ( localize(
|
|
62
|
+
description: ( localize(12727, "The file explorer context menu"))
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
key: 'explorer/context/share',
|
|
66
66
|
id: MenuId.ExplorerContextShare,
|
|
67
|
-
description: ( localize(
|
|
67
|
+
description: ( localize(12728, "'Share' submenu in the file explorer context menu")),
|
|
68
68
|
proposed: 'contribShareMenu'
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
key: 'editor/title/context',
|
|
72
72
|
id: MenuId.EditorTitleContext,
|
|
73
|
-
description: ( localize(
|
|
73
|
+
description: ( localize(12729, "The editor tabs context menu"))
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
key: 'editor/title/context/share',
|
|
77
77
|
id: MenuId.EditorTitleContextShare,
|
|
78
|
-
description: ( localize(
|
|
78
|
+
description: ( localize(12730, "'Share' submenu inside the editor title context menu")),
|
|
79
79
|
proposed: 'contribShareMenu'
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
key: 'debug/callstack/context',
|
|
83
83
|
id: MenuId.DebugCallStackContext,
|
|
84
|
-
description: ( localize(
|
|
84
|
+
description: ( localize(12731, "The debug callstack view context menu"))
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
key: 'debug/variables/context',
|
|
88
88
|
id: MenuId.DebugVariablesContext,
|
|
89
|
-
description: ( localize(
|
|
89
|
+
description: ( localize(12732, "The debug variables view context menu"))
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
key: 'debug/watch/context',
|
|
93
|
+
id: MenuId.DebugWatchContext,
|
|
94
|
+
description: ( localize(12733, "The debug watch view context menu"))
|
|
90
95
|
},
|
|
91
96
|
{
|
|
92
97
|
key: 'debug/toolBar',
|
|
93
98
|
id: MenuId.DebugToolBar,
|
|
94
|
-
description: ( localize(
|
|
99
|
+
description: ( localize(12734, "The debug toolbar menu"))
|
|
95
100
|
},
|
|
96
101
|
{
|
|
97
102
|
key: 'debug/createConfiguration',
|
|
98
103
|
id: MenuId.DebugCreateConfiguration,
|
|
99
104
|
proposed: 'contribDebugCreateConfiguration',
|
|
100
|
-
description: ( localize(
|
|
105
|
+
description: ( localize(12735, "The debug create configuration menu"))
|
|
101
106
|
},
|
|
102
107
|
{
|
|
103
108
|
key: 'notebook/variables/context',
|
|
104
109
|
id: MenuId.NotebookVariablesContext,
|
|
105
|
-
description: ( localize(
|
|
110
|
+
description: ( localize(12736, "The notebook variables view context menu"))
|
|
106
111
|
},
|
|
107
112
|
{
|
|
108
113
|
key: 'menuBar/home',
|
|
109
114
|
id: MenuId.MenubarHomeMenu,
|
|
110
|
-
description: ( localize(
|
|
115
|
+
description: ( localize(12737, "The home indicator context menu (web only)")),
|
|
111
116
|
proposed: 'contribMenuBarHome',
|
|
112
117
|
supportsSubmenus: false
|
|
113
118
|
},
|
|
114
119
|
{
|
|
115
120
|
key: 'menuBar/edit/copy',
|
|
116
121
|
id: MenuId.MenubarCopy,
|
|
117
|
-
description: ( localize(
|
|
122
|
+
description: ( localize(12738, "'Copy as' submenu in the top level Edit menu"))
|
|
118
123
|
},
|
|
119
124
|
{
|
|
120
125
|
key: 'scm/title',
|
|
121
126
|
id: MenuId.SCMTitle,
|
|
122
|
-
description: ( localize(
|
|
127
|
+
description: ( localize(12739, "The Source Control title menu"))
|
|
123
128
|
},
|
|
124
129
|
{
|
|
125
130
|
key: 'scm/sourceControl',
|
|
126
131
|
id: MenuId.SCMSourceControl,
|
|
127
|
-
description: ( localize(
|
|
132
|
+
description: ( localize(12740, "The Source Control menu"))
|
|
128
133
|
},
|
|
129
134
|
{
|
|
130
135
|
key: 'scm/sourceControl/title',
|
|
131
136
|
id: MenuId.SCMSourceControlTitle,
|
|
132
|
-
description: ( localize(
|
|
137
|
+
description: ( localize(12741, "The Source Control title menu")),
|
|
133
138
|
proposed: 'contribSourceControlTitleMenu'
|
|
134
139
|
},
|
|
135
140
|
{
|
|
136
141
|
key: 'scm/resourceState/context',
|
|
137
142
|
id: MenuId.SCMResourceContext,
|
|
138
|
-
description: ( localize(
|
|
143
|
+
description: ( localize(12742, "The Source Control resource state context menu"))
|
|
139
144
|
},
|
|
140
145
|
{
|
|
141
146
|
key: 'scm/resourceFolder/context',
|
|
142
147
|
id: MenuId.SCMResourceFolderContext,
|
|
143
|
-
description: ( localize(
|
|
148
|
+
description: ( localize(12743, "The Source Control resource folder context menu"))
|
|
144
149
|
},
|
|
145
150
|
{
|
|
146
151
|
key: 'scm/resourceGroup/context',
|
|
147
152
|
id: MenuId.SCMResourceGroupContext,
|
|
148
|
-
description: ( localize(
|
|
153
|
+
description: ( localize(12744, "The Source Control resource group context menu"))
|
|
149
154
|
},
|
|
150
155
|
{
|
|
151
156
|
key: 'scm/change/title',
|
|
152
157
|
id: MenuId.SCMChangeContext,
|
|
153
|
-
description: ( localize(
|
|
158
|
+
description: ( localize(12745, "The Source Control inline change menu"))
|
|
154
159
|
},
|
|
155
160
|
{
|
|
156
161
|
key: 'scm/inputBox',
|
|
157
162
|
id: MenuId.SCMInputBox,
|
|
158
|
-
description: ( localize(
|
|
163
|
+
description: ( localize(12746, "The Source Control input box menu")),
|
|
159
164
|
proposed: 'contribSourceControlInputBoxMenu'
|
|
160
165
|
},
|
|
161
166
|
{
|
|
162
167
|
key: 'scm/history/title',
|
|
163
168
|
id: MenuId.SCMHistoryTitle,
|
|
164
|
-
description: ( localize(
|
|
169
|
+
description: ( localize(12747, "The Source Control History title menu")),
|
|
165
170
|
proposed: 'contribSourceControlHistoryTitleMenu'
|
|
166
171
|
},
|
|
167
172
|
{
|
|
168
173
|
key: 'scm/historyItem/context',
|
|
169
174
|
id: MenuId.SCMHistoryItemContext,
|
|
170
|
-
description: ( localize(
|
|
175
|
+
description: ( localize(12748, "The Source Control history item context menu")),
|
|
171
176
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
172
177
|
},
|
|
173
178
|
{
|
|
174
179
|
key: 'scm/historyItem/hover',
|
|
175
180
|
id: MenuId.SCMHistoryItemHover,
|
|
176
|
-
description: ( localize(
|
|
181
|
+
description: ( localize(12749, "The Source Control history item hover menu")),
|
|
177
182
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
178
183
|
},
|
|
179
184
|
{
|
|
180
185
|
key: 'scm/historyItemRef/context',
|
|
181
186
|
id: MenuId.SCMHistoryItemRefContext,
|
|
182
|
-
description: ( localize(
|
|
187
|
+
description: ( localize(12750, "The Source Control history item reference context menu")),
|
|
183
188
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
184
189
|
},
|
|
185
190
|
{
|
|
186
191
|
key: 'statusBar/remoteIndicator',
|
|
187
192
|
id: MenuId.StatusBarRemoteIndicatorMenu,
|
|
188
|
-
description: ( localize(
|
|
193
|
+
description: ( localize(12751, "The remote indicator menu in the status bar")),
|
|
189
194
|
supportsSubmenus: false
|
|
190
195
|
},
|
|
191
196
|
{
|
|
192
197
|
key: 'terminal/context',
|
|
193
198
|
id: MenuId.TerminalInstanceContext,
|
|
194
|
-
description: ( localize(
|
|
199
|
+
description: ( localize(12752, "The terminal context menu"))
|
|
195
200
|
},
|
|
196
201
|
{
|
|
197
202
|
key: 'terminal/title/context',
|
|
198
203
|
id: MenuId.TerminalTabContext,
|
|
199
|
-
description: ( localize(
|
|
204
|
+
description: ( localize(12753, "The terminal tabs context menu"))
|
|
200
205
|
},
|
|
201
206
|
{
|
|
202
207
|
key: 'view/title',
|
|
203
208
|
id: MenuId.ViewTitle,
|
|
204
|
-
description: ( localize(
|
|
209
|
+
description: ( localize(12754, "The contributed view title menu"))
|
|
205
210
|
},
|
|
206
211
|
{
|
|
207
212
|
key: 'viewContainer/title',
|
|
208
213
|
id: MenuId.ViewContainerTitle,
|
|
209
|
-
description: ( localize(
|
|
214
|
+
description: ( localize(12755, "The contributed view container title menu")),
|
|
210
215
|
proposed: 'contribViewContainerTitle'
|
|
211
216
|
},
|
|
212
217
|
{
|
|
213
218
|
key: 'view/item/context',
|
|
214
219
|
id: MenuId.ViewItemContext,
|
|
215
|
-
description: ( localize(
|
|
220
|
+
description: ( localize(12756, "The contributed view item context menu"))
|
|
216
221
|
},
|
|
217
222
|
{
|
|
218
223
|
key: 'comments/comment/editorActions',
|
|
219
224
|
id: MenuId.CommentEditorActions,
|
|
220
|
-
description: ( localize(
|
|
225
|
+
description: ( localize(12757, "The contributed comment editor actions")),
|
|
221
226
|
proposed: 'contribCommentEditorActionsMenu'
|
|
222
227
|
},
|
|
223
228
|
{
|
|
224
229
|
key: 'comments/commentThread/title',
|
|
225
230
|
id: MenuId.CommentThreadTitle,
|
|
226
|
-
description: ( localize(
|
|
231
|
+
description: ( localize(12758, "The contributed comment thread title menu"))
|
|
227
232
|
},
|
|
228
233
|
{
|
|
229
234
|
key: 'comments/commentThread/context',
|
|
230
235
|
id: MenuId.CommentThreadActions,
|
|
231
236
|
description: ( localize(
|
|
232
|
-
|
|
237
|
+
12759,
|
|
233
238
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
234
239
|
)),
|
|
235
240
|
supportsSubmenus: false
|
|
@@ -238,7 +243,7 @@ const apiMenus = [
|
|
|
238
243
|
key: 'comments/commentThread/additionalActions',
|
|
239
244
|
id: MenuId.CommentThreadAdditionalActions,
|
|
240
245
|
description: ( localize(
|
|
241
|
-
|
|
246
|
+
12759,
|
|
242
247
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
243
248
|
)),
|
|
244
249
|
supportsSubmenus: true,
|
|
@@ -248,7 +253,7 @@ const apiMenus = [
|
|
|
248
253
|
key: 'comments/commentThread/title/context',
|
|
249
254
|
id: MenuId.CommentThreadTitleContext,
|
|
250
255
|
description: ( localize(
|
|
251
|
-
|
|
256
|
+
12760,
|
|
252
257
|
"The contributed comment thread title's peek context menu, rendered as a right click menu on the comment thread's peek title."
|
|
253
258
|
)),
|
|
254
259
|
proposed: 'contribCommentPeekContext'
|
|
@@ -256,13 +261,13 @@ const apiMenus = [
|
|
|
256
261
|
{
|
|
257
262
|
key: 'comments/comment/title',
|
|
258
263
|
id: MenuId.CommentTitle,
|
|
259
|
-
description: ( localize(
|
|
264
|
+
description: ( localize(12761, "The contributed comment title menu"))
|
|
260
265
|
},
|
|
261
266
|
{
|
|
262
267
|
key: 'comments/comment/context',
|
|
263
268
|
id: MenuId.CommentActions,
|
|
264
269
|
description: ( localize(
|
|
265
|
-
|
|
270
|
+
12762,
|
|
266
271
|
"The contributed comment context menu, rendered as buttons below the comment editor"
|
|
267
272
|
)),
|
|
268
273
|
supportsSubmenus: false
|
|
@@ -271,7 +276,7 @@ const apiMenus = [
|
|
|
271
276
|
key: 'comments/commentThread/comment/context',
|
|
272
277
|
id: MenuId.CommentThreadCommentContext,
|
|
273
278
|
description: ( localize(
|
|
274
|
-
|
|
279
|
+
12763,
|
|
275
280
|
"The contributed comment context menu, rendered as a right click menu on the an individual comment in the comment thread's peek view."
|
|
276
281
|
)),
|
|
277
282
|
proposed: 'contribCommentPeekContext'
|
|
@@ -279,113 +284,113 @@ const apiMenus = [
|
|
|
279
284
|
{
|
|
280
285
|
key: 'commentsView/commentThread/context',
|
|
281
286
|
id: MenuId.CommentsViewThreadActions,
|
|
282
|
-
description: ( localize(
|
|
287
|
+
description: ( localize(12764, "The contributed comment thread context menu in the comments view")),
|
|
283
288
|
proposed: 'contribCommentsViewThreadMenus'
|
|
284
289
|
},
|
|
285
290
|
{
|
|
286
291
|
key: 'notebook/toolbar',
|
|
287
292
|
id: MenuId.NotebookToolbar,
|
|
288
|
-
description: ( localize(
|
|
293
|
+
description: ( localize(12765, "The contributed notebook toolbar menu"))
|
|
289
294
|
},
|
|
290
295
|
{
|
|
291
296
|
key: 'notebook/kernelSource',
|
|
292
297
|
id: MenuId.NotebookKernelSource,
|
|
293
|
-
description: ( localize(
|
|
298
|
+
description: ( localize(12766, "The contributed notebook kernel sources menu")),
|
|
294
299
|
proposed: 'notebookKernelSource'
|
|
295
300
|
},
|
|
296
301
|
{
|
|
297
302
|
key: 'notebook/cell/title',
|
|
298
303
|
id: MenuId.NotebookCellTitle,
|
|
299
|
-
description: ( localize(
|
|
304
|
+
description: ( localize(12767, "The contributed notebook cell title menu"))
|
|
300
305
|
},
|
|
301
306
|
{
|
|
302
307
|
key: 'notebook/cell/execute',
|
|
303
308
|
id: MenuId.NotebookCellExecute,
|
|
304
|
-
description: ( localize(
|
|
309
|
+
description: ( localize(12768, "The contributed notebook cell execution menu"))
|
|
305
310
|
},
|
|
306
311
|
{
|
|
307
312
|
key: 'interactive/toolbar',
|
|
308
313
|
id: MenuId.InteractiveToolbar,
|
|
309
|
-
description: ( localize(
|
|
314
|
+
description: ( localize(12769, "The contributed interactive toolbar menu")),
|
|
310
315
|
},
|
|
311
316
|
{
|
|
312
317
|
key: 'interactive/cell/title',
|
|
313
318
|
id: MenuId.InteractiveCellTitle,
|
|
314
|
-
description: ( localize(
|
|
319
|
+
description: ( localize(12770, "The contributed interactive cell title menu")),
|
|
315
320
|
},
|
|
316
321
|
{
|
|
317
322
|
key: 'issue/reporter',
|
|
318
323
|
id: MenuId.IssueReporter,
|
|
319
|
-
description: ( localize(
|
|
324
|
+
description: ( localize(12771, "The contributed issue reporter menu"))
|
|
320
325
|
},
|
|
321
326
|
{
|
|
322
327
|
key: 'testing/item/context',
|
|
323
328
|
id: MenuId.TestItem,
|
|
324
|
-
description: ( localize(
|
|
329
|
+
description: ( localize(12772, "The contributed test item menu")),
|
|
325
330
|
},
|
|
326
331
|
{
|
|
327
332
|
key: 'testing/item/gutter',
|
|
328
333
|
id: MenuId.TestItemGutter,
|
|
329
|
-
description: ( localize(
|
|
334
|
+
description: ( localize(12773, "The menu for a gutter decoration for a test item")),
|
|
330
335
|
},
|
|
331
336
|
{
|
|
332
337
|
key: 'testing/profiles/context',
|
|
333
338
|
id: MenuId.TestProfilesContext,
|
|
334
|
-
description: ( localize(
|
|
339
|
+
description: ( localize(12774, "The menu for configuring testing profiles.")),
|
|
335
340
|
},
|
|
336
341
|
{
|
|
337
342
|
key: 'testing/item/result',
|
|
338
343
|
id: MenuId.TestPeekElement,
|
|
339
|
-
description: ( localize(
|
|
344
|
+
description: ( localize(12775, "The menu for an item in the Test Results view or peek.")),
|
|
340
345
|
},
|
|
341
346
|
{
|
|
342
347
|
key: 'testing/message/context',
|
|
343
348
|
id: MenuId.TestMessageContext,
|
|
344
349
|
description: ( localize(
|
|
345
|
-
|
|
350
|
+
12776,
|
|
346
351
|
"A prominent button overlaying editor content where the message is displayed"
|
|
347
352
|
)),
|
|
348
353
|
},
|
|
349
354
|
{
|
|
350
355
|
key: 'testing/message/content',
|
|
351
356
|
id: MenuId.TestMessageContent,
|
|
352
|
-
description: ( localize(
|
|
357
|
+
description: ( localize(12777, "Context menu for the message in the results tree")),
|
|
353
358
|
},
|
|
354
359
|
{
|
|
355
360
|
key: 'extension/context',
|
|
356
361
|
id: MenuId.ExtensionContext,
|
|
357
|
-
description: ( localize(
|
|
362
|
+
description: ( localize(12778, "The extension context menu"))
|
|
358
363
|
},
|
|
359
364
|
{
|
|
360
365
|
key: 'timeline/title',
|
|
361
366
|
id: MenuId.TimelineTitle,
|
|
362
|
-
description: ( localize(
|
|
367
|
+
description: ( localize(12779, "The Timeline view title menu"))
|
|
363
368
|
},
|
|
364
369
|
{
|
|
365
370
|
key: 'timeline/item/context',
|
|
366
371
|
id: MenuId.TimelineItemContext,
|
|
367
|
-
description: ( localize(
|
|
372
|
+
description: ( localize(12780, "The Timeline view item context menu"))
|
|
368
373
|
},
|
|
369
374
|
{
|
|
370
375
|
key: 'ports/item/context',
|
|
371
376
|
id: MenuId.TunnelContext,
|
|
372
|
-
description: ( localize(
|
|
377
|
+
description: ( localize(12781, "The Ports view item context menu"))
|
|
373
378
|
},
|
|
374
379
|
{
|
|
375
380
|
key: 'ports/item/origin/inline',
|
|
376
381
|
id: MenuId.TunnelOriginInline,
|
|
377
|
-
description: ( localize(
|
|
382
|
+
description: ( localize(12782, "The Ports view item origin inline menu"))
|
|
378
383
|
},
|
|
379
384
|
{
|
|
380
385
|
key: 'ports/item/port/inline',
|
|
381
386
|
id: MenuId.TunnelPortInline,
|
|
382
|
-
description: ( localize(
|
|
387
|
+
description: ( localize(12783, "The Ports view item port inline menu"))
|
|
383
388
|
},
|
|
384
389
|
{
|
|
385
390
|
key: 'file/newFile',
|
|
386
391
|
id: MenuId.NewFile,
|
|
387
392
|
description: ( localize(
|
|
388
|
-
|
|
393
|
+
12784,
|
|
389
394
|
"The 'New File...' quick pick, shown on welcome page and File menu."
|
|
390
395
|
)),
|
|
391
396
|
supportsSubmenus: false,
|
|
@@ -393,92 +398,85 @@ const apiMenus = [
|
|
|
393
398
|
{
|
|
394
399
|
key: 'webview/context',
|
|
395
400
|
id: MenuId.WebviewContext,
|
|
396
|
-
description: ( localize(
|
|
401
|
+
description: ( localize(12785, "The webview context menu"))
|
|
397
402
|
},
|
|
398
403
|
{
|
|
399
404
|
key: 'file/share',
|
|
400
405
|
id: MenuId.MenubarShare,
|
|
401
|
-
description: ( localize(
|
|
406
|
+
description: ( localize(12786, "Share submenu shown in the top level File menu.")),
|
|
402
407
|
proposed: 'contribShareMenu'
|
|
403
408
|
},
|
|
404
409
|
{
|
|
405
410
|
key: 'editor/inlineCompletions/actions',
|
|
406
411
|
id: MenuId.InlineCompletionsActions,
|
|
407
|
-
description: ( localize(
|
|
412
|
+
description: ( localize(12787, "The actions shown when hovering on an inline completion")),
|
|
408
413
|
supportsSubmenus: false,
|
|
409
414
|
proposed: 'inlineCompletionsAdditions'
|
|
410
415
|
},
|
|
411
416
|
{
|
|
412
417
|
key: 'editor/content',
|
|
413
418
|
id: MenuId.EditorContent,
|
|
414
|
-
description: ( localize(
|
|
419
|
+
description: ( localize(12788, "The prominent button in an editor, overlays its content")),
|
|
415
420
|
proposed: 'contribEditorContentMenu'
|
|
416
421
|
},
|
|
417
422
|
{
|
|
418
423
|
key: 'editor/lineNumber/context',
|
|
419
424
|
id: MenuId.EditorLineNumberContext,
|
|
420
|
-
description: ( localize(
|
|
425
|
+
description: ( localize(12789, "The contributed editor line number context menu"))
|
|
421
426
|
},
|
|
422
427
|
{
|
|
423
428
|
key: 'mergeEditor/result/title',
|
|
424
429
|
id: MenuId.MergeInputResultToolbar,
|
|
425
|
-
description: ( localize(
|
|
430
|
+
description: ( localize(12790, "The result toolbar of the merge editor")),
|
|
426
431
|
proposed: 'contribMergeEditorMenus'
|
|
427
432
|
},
|
|
428
433
|
{
|
|
429
434
|
key: 'multiDiffEditor/resource/title',
|
|
430
435
|
id: MenuId.MultiDiffEditorFileToolbar,
|
|
431
|
-
description: ( localize(
|
|
436
|
+
description: ( localize(12791, "The resource toolbar in the multi diff editor")),
|
|
432
437
|
proposed: 'contribMultiDiffEditorMenus'
|
|
433
438
|
},
|
|
434
439
|
{
|
|
435
440
|
key: 'diffEditor/gutter/hunk',
|
|
436
441
|
id: MenuId.DiffEditorHunkToolbar,
|
|
437
|
-
description: ( localize(
|
|
442
|
+
description: ( localize(12792, "The gutter toolbar in the diff editor")),
|
|
438
443
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
439
444
|
},
|
|
440
445
|
{
|
|
441
446
|
key: 'diffEditor/gutter/selection',
|
|
442
447
|
id: MenuId.DiffEditorSelectionToolbar,
|
|
443
|
-
description: ( localize(
|
|
448
|
+
description: ( localize(12792, "The gutter toolbar in the diff editor")),
|
|
444
449
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
445
450
|
},
|
|
446
451
|
{
|
|
447
452
|
key: 'searchPanel/aiResults/commands',
|
|
448
453
|
id: MenuId.SearchActionMenu,
|
|
449
454
|
description: ( localize(
|
|
450
|
-
|
|
455
|
+
12793,
|
|
451
456
|
"The commands that will contribute to the menu rendered as buttons next to the AI search title"
|
|
452
457
|
)),
|
|
453
458
|
},
|
|
454
|
-
{
|
|
455
|
-
key: 'chat/modelPicker',
|
|
456
|
-
id: MenuId.ChatModelPicker,
|
|
457
|
-
description: ( localize(12543, "The chat model picker dropdown menu")),
|
|
458
|
-
supportsSubmenus: false,
|
|
459
|
-
proposed: 'chatParticipantPrivate'
|
|
460
|
-
},
|
|
461
|
-
{
|
|
462
|
-
key: 'explorer/context/chat',
|
|
463
|
-
id: MenuId.ChatExplorerMenu,
|
|
464
|
-
description: ( localize(12544, "The Chat submenu in the explorer context menu.")),
|
|
465
|
-
supportsSubmenus: false,
|
|
466
|
-
proposed: 'chatParticipantPrivate'
|
|
467
|
-
},
|
|
468
459
|
{
|
|
469
460
|
key: 'editor/context/chat',
|
|
470
461
|
id: MenuId.ChatTextEditorMenu,
|
|
471
|
-
description: ( localize(
|
|
462
|
+
description: ( localize(12794, "The Chat submenu in the text editor context menu.")),
|
|
472
463
|
supportsSubmenus: false,
|
|
473
464
|
proposed: 'chatParticipantPrivate'
|
|
474
465
|
},
|
|
475
466
|
{
|
|
476
467
|
key: 'terminal/context/chat',
|
|
477
468
|
id: MenuId.ChatTerminalMenu,
|
|
478
|
-
description: ( localize(
|
|
469
|
+
description: ( localize(12795, "The Chat submenu in the terminal context menu.")),
|
|
479
470
|
supportsSubmenus: false,
|
|
480
471
|
proposed: 'chatParticipantPrivate'
|
|
481
|
-
}
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
key: 'chat/chatSessions',
|
|
475
|
+
id: MenuId.ChatSessionsMenu,
|
|
476
|
+
description: ( localize(12796, "The Chat Sessions menu.")),
|
|
477
|
+
supportsSubmenus: false,
|
|
478
|
+
proposed: 'chatSessionsProvider'
|
|
479
|
+
},
|
|
482
480
|
];
|
|
483
481
|
var schema;
|
|
484
482
|
(function (schema) {
|
|
@@ -489,23 +487,23 @@ var schema;
|
|
|
489
487
|
function isValidMenuItem(item, collector) {
|
|
490
488
|
if (typeof item.command !== 'string') {
|
|
491
489
|
collector.error(( localize(
|
|
492
|
-
|
|
490
|
+
12797,
|
|
493
491
|
"property `{0}` is mandatory and must be of type `string`",
|
|
494
492
|
'command'
|
|
495
493
|
)));
|
|
496
494
|
return false;
|
|
497
495
|
}
|
|
498
496
|
if (item.alt && typeof item.alt !== 'string') {
|
|
499
|
-
collector.error(( localize(
|
|
497
|
+
collector.error(( localize(12798, "property `{0}` can be omitted or must be of type `string`", 'alt')));
|
|
500
498
|
return false;
|
|
501
499
|
}
|
|
502
500
|
if (item.when && typeof item.when !== 'string') {
|
|
503
|
-
collector.error(( localize(
|
|
501
|
+
collector.error(( localize(12798, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
504
502
|
return false;
|
|
505
503
|
}
|
|
506
504
|
if (item.group && typeof item.group !== 'string') {
|
|
507
505
|
collector.error(( localize(
|
|
508
|
-
|
|
506
|
+
12798,
|
|
509
507
|
"property `{0}` can be omitted or must be of type `string`",
|
|
510
508
|
'group'
|
|
511
509
|
)));
|
|
@@ -517,19 +515,19 @@ var schema;
|
|
|
517
515
|
function isValidSubmenuItem(item, collector) {
|
|
518
516
|
if (typeof item.submenu !== 'string') {
|
|
519
517
|
collector.error(( localize(
|
|
520
|
-
|
|
518
|
+
12797,
|
|
521
519
|
"property `{0}` is mandatory and must be of type `string`",
|
|
522
520
|
'submenu'
|
|
523
521
|
)));
|
|
524
522
|
return false;
|
|
525
523
|
}
|
|
526
524
|
if (item.when && typeof item.when !== 'string') {
|
|
527
|
-
collector.error(( localize(
|
|
525
|
+
collector.error(( localize(12798, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
528
526
|
return false;
|
|
529
527
|
}
|
|
530
528
|
if (item.group && typeof item.group !== 'string') {
|
|
531
529
|
collector.error(( localize(
|
|
532
|
-
|
|
530
|
+
12798,
|
|
533
531
|
"property `{0}` can be omitted or must be of type `string`",
|
|
534
532
|
'group'
|
|
535
533
|
)));
|
|
@@ -540,7 +538,7 @@ var schema;
|
|
|
540
538
|
schema.isValidSubmenuItem = isValidSubmenuItem;
|
|
541
539
|
function isValidItems(items, collector) {
|
|
542
540
|
if (!Array.isArray(items)) {
|
|
543
|
-
collector.error(( localize(
|
|
541
|
+
collector.error(( localize(12799, "submenu items must be an array")));
|
|
544
542
|
return false;
|
|
545
543
|
}
|
|
546
544
|
for (const item of items) {
|
|
@@ -560,15 +558,15 @@ var schema;
|
|
|
560
558
|
schema.isValidItems = isValidItems;
|
|
561
559
|
function isValidSubmenu(submenu, collector) {
|
|
562
560
|
if (typeof submenu !== 'object') {
|
|
563
|
-
collector.error(( localize(
|
|
561
|
+
collector.error(( localize(12800, "submenu items must be an object")));
|
|
564
562
|
return false;
|
|
565
563
|
}
|
|
566
564
|
if (typeof submenu.id !== 'string') {
|
|
567
|
-
collector.error(( localize(
|
|
565
|
+
collector.error(( localize(12797, "property `{0}` is mandatory and must be of type `string`", 'id')));
|
|
568
566
|
return false;
|
|
569
567
|
}
|
|
570
568
|
if (typeof submenu.label !== 'string') {
|
|
571
|
-
collector.error(( localize(
|
|
569
|
+
collector.error(( localize(12797, "property `{0}` is mandatory and must be of type `string`", 'label')));
|
|
572
570
|
return false;
|
|
573
571
|
}
|
|
574
572
|
return true;
|
|
@@ -580,24 +578,24 @@ var schema;
|
|
|
580
578
|
properties: {
|
|
581
579
|
command: {
|
|
582
580
|
description: ( localize(
|
|
583
|
-
|
|
581
|
+
12801,
|
|
584
582
|
'Identifier of the command to execute. The command must be declared in the \'commands\'-section'
|
|
585
583
|
)),
|
|
586
584
|
type: 'string'
|
|
587
585
|
},
|
|
588
586
|
alt: {
|
|
589
587
|
description: ( localize(
|
|
590
|
-
|
|
588
|
+
12802,
|
|
591
589
|
'Identifier of an alternative command to execute. The command must be declared in the \'commands\'-section'
|
|
592
590
|
)),
|
|
593
591
|
type: 'string'
|
|
594
592
|
},
|
|
595
593
|
when: {
|
|
596
|
-
description: ( localize(
|
|
594
|
+
description: ( localize(12803, 'Condition which must be true to show this item')),
|
|
597
595
|
type: 'string'
|
|
598
596
|
},
|
|
599
597
|
group: {
|
|
600
|
-
description: ( localize(
|
|
598
|
+
description: ( localize(12804, 'Group into which this item belongs')),
|
|
601
599
|
type: 'string'
|
|
602
600
|
}
|
|
603
601
|
}
|
|
@@ -607,15 +605,15 @@ var schema;
|
|
|
607
605
|
required: ['submenu'],
|
|
608
606
|
properties: {
|
|
609
607
|
submenu: {
|
|
610
|
-
description: ( localize(
|
|
608
|
+
description: ( localize(12805, 'Identifier of the submenu to display in this item.')),
|
|
611
609
|
type: 'string'
|
|
612
610
|
},
|
|
613
611
|
when: {
|
|
614
|
-
description: ( localize(
|
|
612
|
+
description: ( localize(12803, 'Condition which must be true to show this item')),
|
|
615
613
|
type: 'string'
|
|
616
614
|
},
|
|
617
615
|
group: {
|
|
618
|
-
description: ( localize(
|
|
616
|
+
description: ( localize(12804, 'Group into which this item belongs')),
|
|
619
617
|
type: 'string'
|
|
620
618
|
}
|
|
621
619
|
}
|
|
@@ -625,16 +623,16 @@ var schema;
|
|
|
625
623
|
required: ['id', 'label'],
|
|
626
624
|
properties: {
|
|
627
625
|
id: {
|
|
628
|
-
description: ( localize(
|
|
626
|
+
description: ( localize(12806, 'Identifier of the menu to display as a submenu.')),
|
|
629
627
|
type: 'string'
|
|
630
628
|
},
|
|
631
629
|
label: {
|
|
632
|
-
description: ( localize(
|
|
630
|
+
description: ( localize(12807, 'The label of the menu item which leads to this submenu.')),
|
|
633
631
|
type: 'string'
|
|
634
632
|
},
|
|
635
633
|
icon: {
|
|
636
634
|
description: ( localize(
|
|
637
|
-
|
|
635
|
+
12808,
|
|
638
636
|
'(Optional) Icon which is used to represent the submenu in the UI. Either a file path, an object with file paths for dark and light themes, or a theme icon references, like `\\$(zap)`'
|
|
639
637
|
)),
|
|
640
638
|
anyOf: [{
|
|
@@ -644,11 +642,11 @@ var schema;
|
|
|
644
642
|
type: 'object',
|
|
645
643
|
properties: {
|
|
646
644
|
light: {
|
|
647
|
-
description: ( localize(
|
|
645
|
+
description: ( localize(12809, 'Icon path when a light theme is used')),
|
|
648
646
|
type: 'string'
|
|
649
647
|
},
|
|
650
648
|
dark: {
|
|
651
|
-
description: ( localize(
|
|
649
|
+
description: ( localize(12810, 'Icon path when a dark theme is used')),
|
|
652
650
|
type: 'string'
|
|
653
651
|
}
|
|
654
652
|
}
|
|
@@ -657,11 +655,11 @@ var schema;
|
|
|
657
655
|
}
|
|
658
656
|
};
|
|
659
657
|
schema.menusContribution = {
|
|
660
|
-
description: ( localize(
|
|
658
|
+
description: ( localize(12811, "Contributes menu items to the editor")),
|
|
661
659
|
type: 'object',
|
|
662
660
|
properties: index(apiMenus, menu => menu.key, menu => ({
|
|
663
661
|
markdownDescription: menu.proposed ? ( localize(
|
|
664
|
-
|
|
662
|
+
12812,
|
|
665
663
|
"Proposed API, requires `enabledApiProposal: [\"{0}\"]` - {1}",
|
|
666
664
|
menu.proposed,
|
|
667
665
|
menu.description
|
|
@@ -676,18 +674,18 @@ var schema;
|
|
|
676
674
|
}
|
|
677
675
|
};
|
|
678
676
|
schema.submenusContribution = {
|
|
679
|
-
description: ( localize(
|
|
677
|
+
description: ( localize(12813, "Contributes submenu items to the editor")),
|
|
680
678
|
type: 'array',
|
|
681
679
|
items: submenu
|
|
682
680
|
};
|
|
683
681
|
function isValidCommand(command, collector) {
|
|
684
682
|
if (!command) {
|
|
685
|
-
collector.error(( localize(
|
|
683
|
+
collector.error(( localize(12814, "expected non-empty value.")));
|
|
686
684
|
return false;
|
|
687
685
|
}
|
|
688
686
|
if (isFalsyOrWhitespace(command.command)) {
|
|
689
687
|
collector.error(( localize(
|
|
690
|
-
|
|
688
|
+
12797,
|
|
691
689
|
"property `{0}` is mandatory and must be of type `string`",
|
|
692
690
|
'command'
|
|
693
691
|
)));
|
|
@@ -701,7 +699,7 @@ var schema;
|
|
|
701
699
|
}
|
|
702
700
|
if (command.enablement && typeof command.enablement !== 'string') {
|
|
703
701
|
collector.error(( localize(
|
|
704
|
-
|
|
702
|
+
12798,
|
|
705
703
|
"property `{0}` can be omitted or must be of type `string`",
|
|
706
704
|
'precondition'
|
|
707
705
|
)));
|
|
@@ -727,7 +725,7 @@ var schema;
|
|
|
727
725
|
return true;
|
|
728
726
|
}
|
|
729
727
|
collector.error(( localize(
|
|
730
|
-
|
|
728
|
+
12815,
|
|
731
729
|
"property `icon` can be omitted or must be either a string or a literal like `{dark, light}`"
|
|
732
730
|
)));
|
|
733
731
|
return false;
|
|
@@ -735,7 +733,7 @@ var schema;
|
|
|
735
733
|
function isValidLocalizedString(localized, collector, propertyName) {
|
|
736
734
|
if (typeof localized === 'undefined') {
|
|
737
735
|
collector.error(( localize(
|
|
738
|
-
|
|
736
|
+
12816,
|
|
739
737
|
"property `{0}` is mandatory and must be of type `string` or `object`",
|
|
740
738
|
propertyName
|
|
741
739
|
)));
|
|
@@ -743,7 +741,7 @@ var schema;
|
|
|
743
741
|
}
|
|
744
742
|
else if (typeof localized === 'string' && isFalsyOrWhitespace(localized)) {
|
|
745
743
|
collector.error(( localize(
|
|
746
|
-
|
|
744
|
+
12797,
|
|
747
745
|
"property `{0}` is mandatory and must be of type `string`",
|
|
748
746
|
propertyName
|
|
749
747
|
)));
|
|
@@ -751,7 +749,7 @@ var schema;
|
|
|
751
749
|
}
|
|
752
750
|
else if (typeof localized !== 'string' && (isFalsyOrWhitespace(localized.original) || isFalsyOrWhitespace(localized.value))) {
|
|
753
751
|
collector.error(( localize(
|
|
754
|
-
|
|
752
|
+
12817,
|
|
755
753
|
"properties `{0}` and `{1}` are mandatory and must be of type `string`",
|
|
756
754
|
`${propertyName}.value`,
|
|
757
755
|
`${propertyName}.original`
|
|
@@ -765,37 +763,37 @@ var schema;
|
|
|
765
763
|
required: ['command', 'title'],
|
|
766
764
|
properties: {
|
|
767
765
|
command: {
|
|
768
|
-
description: ( localize(
|
|
766
|
+
description: ( localize(12818, 'Identifier of the command to execute')),
|
|
769
767
|
type: 'string'
|
|
770
768
|
},
|
|
771
769
|
title: {
|
|
772
|
-
description: ( localize(
|
|
770
|
+
description: ( localize(12819, 'Title by which the command is represented in the UI')),
|
|
773
771
|
type: 'string'
|
|
774
772
|
},
|
|
775
773
|
shortTitle: {
|
|
776
774
|
markdownDescription: ( localize(
|
|
777
|
-
|
|
775
|
+
12820,
|
|
778
776
|
'(Optional) Short title by which the command is represented in the UI. Menus pick either `title` or `shortTitle` depending on the context in which they show commands.'
|
|
779
777
|
)),
|
|
780
778
|
type: 'string'
|
|
781
779
|
},
|
|
782
780
|
category: {
|
|
783
781
|
description: ( localize(
|
|
784
|
-
|
|
782
|
+
12821,
|
|
785
783
|
'(Optional) Category string by which the command is grouped in the UI'
|
|
786
784
|
)),
|
|
787
785
|
type: 'string'
|
|
788
786
|
},
|
|
789
787
|
enablement: {
|
|
790
788
|
description: ( localize(
|
|
791
|
-
|
|
789
|
+
12822,
|
|
792
790
|
'(Optional) Condition which must be true to enable the command in the UI (menu and keybindings). Does not prevent executing the command by other means, like the `executeCommand`-api.'
|
|
793
791
|
)),
|
|
794
792
|
type: 'string'
|
|
795
793
|
},
|
|
796
794
|
icon: {
|
|
797
795
|
description: ( localize(
|
|
798
|
-
|
|
796
|
+
12823,
|
|
799
797
|
'(Optional) Icon which is used to represent the command in the UI. Either a file path, an object with file paths for dark and light themes, or a theme icon references, like `\\$(zap)`'
|
|
800
798
|
)),
|
|
801
799
|
anyOf: [{
|
|
@@ -805,11 +803,11 @@ var schema;
|
|
|
805
803
|
type: 'object',
|
|
806
804
|
properties: {
|
|
807
805
|
light: {
|
|
808
|
-
description: ( localize(
|
|
806
|
+
description: ( localize(12824, 'Icon path when a light theme is used')),
|
|
809
807
|
type: 'string'
|
|
810
808
|
},
|
|
811
809
|
dark: {
|
|
812
|
-
description: ( localize(
|
|
810
|
+
description: ( localize(12825, 'Icon path when a dark theme is used')),
|
|
813
811
|
type: 'string'
|
|
814
812
|
}
|
|
815
813
|
}
|
|
@@ -818,7 +816,7 @@ var schema;
|
|
|
818
816
|
}
|
|
819
817
|
};
|
|
820
818
|
schema.commandsContribution = {
|
|
821
|
-
description: ( localize(
|
|
819
|
+
description: ( localize(12826, "Contributes commands to the command palette.")),
|
|
822
820
|
oneOf: [
|
|
823
821
|
commandType,
|
|
824
822
|
{
|
|
@@ -862,7 +860,7 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
862
860
|
if (existingCmd) {
|
|
863
861
|
if (existingCmd.source) {
|
|
864
862
|
extension.collector.info(( localize(
|
|
865
|
-
|
|
863
|
+
12827,
|
|
866
864
|
"Command `{0}` already registered by {1} ({2})",
|
|
867
865
|
userFriendlyCommand.command,
|
|
868
866
|
existingCmd.source.title,
|
|
@@ -870,7 +868,7 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
870
868
|
)));
|
|
871
869
|
}
|
|
872
870
|
else {
|
|
873
|
-
extension.collector.info(( localize(
|
|
871
|
+
extension.collector.info(( localize(12828, "Command `{0}` already registered", userFriendlyCommand.command)));
|
|
874
872
|
}
|
|
875
873
|
}
|
|
876
874
|
_commandRegistrations.add(MenuRegistry.addCommand({
|
|
@@ -911,19 +909,19 @@ submenusExtensionPoint.setHandler(extensions => {
|
|
|
911
909
|
continue;
|
|
912
910
|
}
|
|
913
911
|
if (!submenuInfo.id) {
|
|
914
|
-
collector.warn(( localize(
|
|
912
|
+
collector.warn(( localize(12829, "`{0}` is not a valid submenu identifier", submenuInfo.id)));
|
|
915
913
|
continue;
|
|
916
914
|
}
|
|
917
915
|
if (( _submenus.has(submenuInfo.id))) {
|
|
918
916
|
collector.info(( localize(
|
|
919
|
-
|
|
917
|
+
12830,
|
|
920
918
|
"The `{0}` submenu was already previously registered.",
|
|
921
919
|
submenuInfo.id
|
|
922
920
|
)));
|
|
923
921
|
continue;
|
|
924
922
|
}
|
|
925
923
|
if (!submenuInfo.label) {
|
|
926
|
-
collector.warn(( localize(
|
|
924
|
+
collector.warn(( localize(12831, "`{0}` is not a valid submenu label", submenuInfo.label)));
|
|
927
925
|
continue;
|
|
928
926
|
}
|
|
929
927
|
let absoluteIcon;
|
|
@@ -980,7 +978,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
980
978
|
}
|
|
981
979
|
if (menu.proposed && !isProposedApiEnabled(extension.description, menu.proposed)) {
|
|
982
980
|
collector.error(( localize(
|
|
983
|
-
|
|
981
|
+
12832,
|
|
984
982
|
"{0} is a proposed menu identifier. It requires 'package.json#enabledApiProposals: [\"{1}\"]' and is only available when running out of dev or with the following command line switch: --enable-proposed-api {2}",
|
|
985
983
|
entry[0],
|
|
986
984
|
menu.proposed,
|
|
@@ -995,7 +993,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
995
993
|
const alt = menuItem.alt && MenuRegistry.getCommand(menuItem.alt) || undefined;
|
|
996
994
|
if (!command) {
|
|
997
995
|
collector.error(( localize(
|
|
998
|
-
|
|
996
|
+
12833,
|
|
999
997
|
"Menu item references a command `{0}` which is not defined in the 'commands' section.",
|
|
1000
998
|
menuItem.command
|
|
1001
999
|
)));
|
|
@@ -1003,20 +1001,20 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1003
1001
|
}
|
|
1004
1002
|
if (menuItem.alt && !alt) {
|
|
1005
1003
|
collector.warn(( localize(
|
|
1006
|
-
|
|
1004
|
+
12834,
|
|
1007
1005
|
"Menu item references an alt-command `{0}` which is not defined in the 'commands' section.",
|
|
1008
1006
|
menuItem.alt
|
|
1009
1007
|
)));
|
|
1010
1008
|
}
|
|
1011
1009
|
if (menuItem.command === menuItem.alt) {
|
|
1012
|
-
collector.info(( localize(
|
|
1010
|
+
collector.info(( localize(12835, "Menu item references the same command as default and alt-command")));
|
|
1013
1011
|
}
|
|
1014
1012
|
item = { command, alt, group: undefined, order: undefined, when: undefined };
|
|
1015
1013
|
}
|
|
1016
1014
|
else {
|
|
1017
1015
|
if (menu.supportsSubmenus === false) {
|
|
1018
1016
|
collector.error(( localize(
|
|
1019
|
-
|
|
1017
|
+
12836,
|
|
1020
1018
|
"Menu item references a submenu for a menu which doesn't have submenu support."
|
|
1021
1019
|
)));
|
|
1022
1020
|
continue;
|
|
@@ -1024,7 +1022,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1024
1022
|
const submenu = _submenus.get(menuItem.submenu);
|
|
1025
1023
|
if (!submenu) {
|
|
1026
1024
|
collector.error(( localize(
|
|
1027
|
-
|
|
1025
|
+
12837,
|
|
1028
1026
|
"Menu item references a submenu `{0}` which is not defined in the 'submenus' section.",
|
|
1029
1027
|
menuItem.submenu
|
|
1030
1028
|
)));
|
|
@@ -1037,7 +1035,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1037
1035
|
}
|
|
1038
1036
|
if (( submenuRegistrations.has(submenu.id.id))) {
|
|
1039
1037
|
collector.warn(( localize(
|
|
1040
|
-
|
|
1038
|
+
12838,
|
|
1041
1039
|
"The `{0}` submenu was already contributed to the `{1}` menu.",
|
|
1042
1040
|
menuItem.submenu,
|
|
1043
1041
|
entry[0]
|
|
@@ -1059,7 +1057,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1059
1057
|
}
|
|
1060
1058
|
if (menu.id === MenuId.ViewContainerTitle && !menuItem.when?.includes('viewContainer == workbench.view.debug')) {
|
|
1061
1059
|
collector.error(( localize(
|
|
1062
|
-
|
|
1060
|
+
12839,
|
|
1063
1061
|
"The {0} menu contribution must check {1} in its {2} clause.",
|
|
1064
1062
|
'`viewContainer/title`',
|
|
1065
1063
|
'`viewContainer == workbench.view.debug`',
|
|
@@ -1146,10 +1144,10 @@ let CommandsTableRenderer = class CommandsTableRenderer extends Disposable {
|
|
|
1146
1144
|
return { data: { headers: [], rows: [] }, dispose: () => { } };
|
|
1147
1145
|
}
|
|
1148
1146
|
const headers = [
|
|
1149
|
-
( localize(
|
|
1150
|
-
( localize(
|
|
1151
|
-
( localize(
|
|
1152
|
-
( localize(
|
|
1147
|
+
( localize(12840, "ID")),
|
|
1148
|
+
( localize(12841, "Title")),
|
|
1149
|
+
( localize(12842, "Keyboard Shortcuts")),
|
|
1150
|
+
( localize(12843, "Menu Contexts"))
|
|
1153
1151
|
];
|
|
1154
1152
|
const rows = ( commands.sort((a, b) => a.id.localeCompare(b.id))
|
|
1155
1153
|
.map(command => {
|
|
@@ -1189,7 +1187,7 @@ CommandsTableRenderer = ( __decorate([
|
|
|
1189
1187
|
], CommandsTableRenderer));
|
|
1190
1188
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
1191
1189
|
id: 'commands',
|
|
1192
|
-
label: ( localize(
|
|
1190
|
+
label: ( localize(12844, "Commands")),
|
|
1193
1191
|
access: {
|
|
1194
1192
|
canToggle: false,
|
|
1195
1193
|
},
|
|
@@ -50,39 +50,39 @@ import { getAllUnboundCommands } from '@codingame/monaco-vscode-d609a7d3-bf87-55
|
|
|
50
50
|
var WorkbenchKeybindingService_1;
|
|
51
51
|
function isValidContributedKeyBinding(keyBinding, rejects) {
|
|
52
52
|
if (!keyBinding) {
|
|
53
|
-
rejects.push(( localize(
|
|
53
|
+
rejects.push(( localize(13235, "expected non-empty value.")));
|
|
54
54
|
return false;
|
|
55
55
|
}
|
|
56
56
|
if (typeof keyBinding.command !== 'string') {
|
|
57
57
|
rejects.push(( localize(
|
|
58
|
-
|
|
58
|
+
13236,
|
|
59
59
|
"property `{0}` is mandatory and must be of type `string`",
|
|
60
60
|
'command'
|
|
61
61
|
)));
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
64
|
if (keyBinding.key && typeof keyBinding.key !== 'string') {
|
|
65
|
-
rejects.push(( localize(
|
|
65
|
+
rejects.push(( localize(13237, "property `{0}` can be omitted or must be of type `string`", 'key')));
|
|
66
66
|
return false;
|
|
67
67
|
}
|
|
68
68
|
if (keyBinding.when && typeof keyBinding.when !== 'string') {
|
|
69
|
-
rejects.push(( localize(
|
|
69
|
+
rejects.push(( localize(13237, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
70
70
|
return false;
|
|
71
71
|
}
|
|
72
72
|
if (keyBinding.mac && typeof keyBinding.mac !== 'string') {
|
|
73
|
-
rejects.push(( localize(
|
|
73
|
+
rejects.push(( localize(13237, "property `{0}` can be omitted or must be of type `string`", 'mac')));
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
if (keyBinding.linux && typeof keyBinding.linux !== 'string') {
|
|
77
77
|
rejects.push(( localize(
|
|
78
|
-
|
|
78
|
+
13237,
|
|
79
79
|
"property `{0}` can be omitted or must be of type `string`",
|
|
80
80
|
'linux'
|
|
81
81
|
)));
|
|
82
82
|
return false;
|
|
83
83
|
}
|
|
84
84
|
if (keyBinding.win && typeof keyBinding.win !== 'string') {
|
|
85
|
-
rejects.push(( localize(
|
|
85
|
+
rejects.push(( localize(13237, "property `{0}` can be omitted or must be of type `string`", 'win')));
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
88
|
return true;
|
|
@@ -92,33 +92,33 @@ const keybindingType = {
|
|
|
92
92
|
default: { command: '', key: '' },
|
|
93
93
|
properties: {
|
|
94
94
|
command: {
|
|
95
|
-
description: ( localize(
|
|
95
|
+
description: ( localize(13238, 'Identifier of the command to run when keybinding is triggered.')),
|
|
96
96
|
type: 'string'
|
|
97
97
|
},
|
|
98
98
|
args: {
|
|
99
|
-
description: ( localize(
|
|
99
|
+
description: ( localize(13239, "Arguments to pass to the command to execute."))
|
|
100
100
|
},
|
|
101
101
|
key: {
|
|
102
102
|
description: ( localize(
|
|
103
|
-
|
|
103
|
+
13240,
|
|
104
104
|
'Key or key sequence (separate keys with plus-sign and sequences with space, e.g. Ctrl+O and Ctrl+L L for a chord).'
|
|
105
105
|
)),
|
|
106
106
|
type: 'string'
|
|
107
107
|
},
|
|
108
108
|
mac: {
|
|
109
|
-
description: ( localize(
|
|
109
|
+
description: ( localize(13241, 'Mac specific key or key sequence.')),
|
|
110
110
|
type: 'string'
|
|
111
111
|
},
|
|
112
112
|
linux: {
|
|
113
|
-
description: ( localize(
|
|
113
|
+
description: ( localize(13242, 'Linux specific key or key sequence.')),
|
|
114
114
|
type: 'string'
|
|
115
115
|
},
|
|
116
116
|
win: {
|
|
117
|
-
description: ( localize(
|
|
117
|
+
description: ( localize(13243, 'Windows specific key or key sequence.')),
|
|
118
118
|
type: 'string'
|
|
119
119
|
},
|
|
120
120
|
when: {
|
|
121
|
-
description: ( localize(
|
|
121
|
+
description: ( localize(13244, 'Condition when the key is active.')),
|
|
122
122
|
type: 'string'
|
|
123
123
|
},
|
|
124
124
|
}
|
|
@@ -127,7 +127,7 @@ const keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
127
127
|
extensionPoint: 'keybindings',
|
|
128
128
|
deps: [commandsExtensionPoint],
|
|
129
129
|
jsonSchema: {
|
|
130
|
-
description: ( localize(
|
|
130
|
+
description: ( localize(13245, "Contributes keybindings.")),
|
|
131
131
|
oneOf: [
|
|
132
132
|
keybindingType,
|
|
133
133
|
{
|
|
@@ -515,7 +515,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
515
515
|
}
|
|
516
516
|
if (rejects.length > 0) {
|
|
517
517
|
collector.error(( localize(
|
|
518
|
-
|
|
518
|
+
13246,
|
|
519
519
|
"Invalid `contributes.{0}`: {1}",
|
|
520
520
|
keybindingsExtPoint.name,
|
|
521
521
|
rejects.join('\n')
|
|
@@ -603,7 +603,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
603
603
|
static _getAllCommandsAsComment(boundCommands) {
|
|
604
604
|
const unboundCommands = getAllUnboundCommands(boundCommands);
|
|
605
605
|
const pretty = unboundCommands.sort().join('\n// - ');
|
|
606
|
-
return '// ' + ( localize(
|
|
606
|
+
return '// ' + ( localize(13247, "Here are other available commands: ")) + '\n// - ' + pretty;
|
|
607
607
|
}
|
|
608
608
|
mightProducePrintableCharacter(event) {
|
|
609
609
|
if (event.ctrlKey || event.metaKey || event.altKey) {
|
|
@@ -728,7 +728,7 @@ class KeybindingsJsonSchema {
|
|
|
728
728
|
this.schema = {
|
|
729
729
|
id: KeybindingsJsonSchema.schemaId,
|
|
730
730
|
type: 'array',
|
|
731
|
-
title: ( localize(
|
|
731
|
+
title: ( localize(13248, "Keybindings configuration")),
|
|
732
732
|
allowTrailingCommas: true,
|
|
733
733
|
allowComments: true,
|
|
734
734
|
definitions: {
|
|
@@ -752,7 +752,7 @@ class KeybindingsJsonSchema {
|
|
|
752
752
|
'type': 'string',
|
|
753
753
|
'enum': this.commandsEnum,
|
|
754
754
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
755
|
-
'description': ( localize(
|
|
755
|
+
'description': ( localize(13249, "Name of the command to execute")),
|
|
756
756
|
},
|
|
757
757
|
'commandType': {
|
|
758
758
|
'anyOf': [
|
|
@@ -763,7 +763,7 @@ class KeybindingsJsonSchema {
|
|
|
763
763
|
'type': 'string',
|
|
764
764
|
'enum': this.removalCommandsEnum,
|
|
765
765
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
766
|
-
'description': ( localize(
|
|
766
|
+
'description': ( localize(13250, "Name of the command to remove keyboard shortcut for")),
|
|
767
767
|
},
|
|
768
768
|
{
|
|
769
769
|
'type': 'string'
|
|
@@ -781,7 +781,7 @@ class KeybindingsJsonSchema {
|
|
|
781
781
|
'properties': {
|
|
782
782
|
'key': {
|
|
783
783
|
'type': 'string',
|
|
784
|
-
'description': ( localize(
|
|
784
|
+
'description': ( localize(13251, "Key or key sequence (separated by space)")),
|
|
785
785
|
},
|
|
786
786
|
'command': {
|
|
787
787
|
'anyOf': [
|
|
@@ -794,7 +794,7 @@ class KeybindingsJsonSchema {
|
|
|
794
794
|
'type': 'array'
|
|
795
795
|
},
|
|
796
796
|
'errorMessage': ( localize(
|
|
797
|
-
|
|
797
|
+
13252,
|
|
798
798
|
"Incorrect type. Expected \"{0}\". The field 'command' does not support running multiple commands. Use command 'runCommands' to pass it multiple commands to run.",
|
|
799
799
|
'string'
|
|
800
800
|
))
|
|
@@ -810,10 +810,10 @@ class KeybindingsJsonSchema {
|
|
|
810
810
|
},
|
|
811
811
|
'when': {
|
|
812
812
|
'type': 'string',
|
|
813
|
-
'description': ( localize(
|
|
813
|
+
'description': ( localize(13253, "Condition when the key is active."))
|
|
814
814
|
},
|
|
815
815
|
'args': {
|
|
816
|
-
'description': ( localize(
|
|
816
|
+
'description': ( localize(13254, "Arguments to pass to the command to execute."))
|
|
817
817
|
}
|
|
818
818
|
},
|
|
819
819
|
'$ref': '#/definitions/commandsSchemas'
|
|
@@ -483,12 +483,12 @@ const keyboardConfiguration = {
|
|
|
483
483
|
'id': 'keyboard',
|
|
484
484
|
'order': 15,
|
|
485
485
|
'type': 'object',
|
|
486
|
-
'title': ( localize(
|
|
486
|
+
'title': ( localize(13255, "Keyboard")),
|
|
487
487
|
'properties': {
|
|
488
488
|
'keyboard.layout': {
|
|
489
489
|
'type': 'string',
|
|
490
490
|
'default': 'autodetect',
|
|
491
|
-
'description': ( localize(
|
|
491
|
+
'description': ( localize(13256, "Control the keyboard layout used in web."))
|
|
492
492
|
}
|
|
493
493
|
}
|
|
494
494
|
};
|