@codingame/monaco-vscode-keybindings-service-override 7.1.0 → 8.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 +3 -3
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +5 -11
- package/vscode/src/vs/workbench/browser/contextkeys.js +10 -10
- package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +8 -11
- package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +2 -3
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +6 -9
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +183 -257
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +29 -63
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +3 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { isFalsyOrWhitespace } from 'vscode/vscode/vs/base/common/strings';
|
|
4
4
|
import { joinPath } from 'vscode/vscode/vs/base/common/resources';
|
|
5
5
|
import { ExtensionsRegistry } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
|
|
@@ -16,241 +16,243 @@ import { platform } from 'vscode/vscode/vs/base/common/process';
|
|
|
16
16
|
import { MarkdownString } from 'vscode/vscode/vs/base/common/htmlContent';
|
|
17
17
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
18
18
|
|
|
19
|
-
const _moduleId = "vs/workbench/services/actions/common/menusExtensionPoint";
|
|
20
19
|
const apiMenus = [
|
|
21
20
|
{
|
|
22
21
|
key: 'commandPalette',
|
|
23
22
|
id: MenuId.CommandPalette,
|
|
24
|
-
description: (
|
|
23
|
+
description: ( localize(8504, "The Command Palette")),
|
|
25
24
|
supportsSubmenus: false
|
|
26
25
|
},
|
|
27
26
|
{
|
|
28
27
|
key: 'touchBar',
|
|
29
28
|
id: MenuId.TouchBarContext,
|
|
30
|
-
description: (
|
|
29
|
+
description: ( localize(8505, "The touch bar (macOS only)")),
|
|
31
30
|
supportsSubmenus: false
|
|
32
31
|
},
|
|
33
32
|
{
|
|
34
33
|
key: 'editor/title',
|
|
35
34
|
id: MenuId.EditorTitle,
|
|
36
|
-
description: (
|
|
35
|
+
description: ( localize(8506, "The editor title menu"))
|
|
37
36
|
},
|
|
38
37
|
{
|
|
39
38
|
key: 'editor/title/run',
|
|
40
39
|
id: MenuId.EditorTitleRun,
|
|
41
|
-
description: (
|
|
40
|
+
description: ( localize(8507, "Run submenu inside the editor title menu"))
|
|
42
41
|
},
|
|
43
42
|
{
|
|
44
43
|
key: 'editor/context',
|
|
45
44
|
id: MenuId.EditorContext,
|
|
46
|
-
description: (
|
|
45
|
+
description: ( localize(8508, "The editor context menu"))
|
|
47
46
|
},
|
|
48
47
|
{
|
|
49
48
|
key: 'editor/context/copy',
|
|
50
49
|
id: MenuId.EditorContextCopy,
|
|
51
|
-
description: (
|
|
50
|
+
description: ( localize(8509, "'Copy as' submenu in the editor context menu"))
|
|
52
51
|
},
|
|
53
52
|
{
|
|
54
53
|
key: 'editor/context/share',
|
|
55
54
|
id: MenuId.EditorContextShare,
|
|
56
|
-
description: (
|
|
55
|
+
description: ( localize(8510, "'Share' submenu in the editor context menu")),
|
|
57
56
|
proposed: 'contribShareMenu'
|
|
58
57
|
},
|
|
59
58
|
{
|
|
60
59
|
key: 'explorer/context',
|
|
61
60
|
id: MenuId.ExplorerContext,
|
|
62
|
-
description: (
|
|
61
|
+
description: ( localize(8511, "The file explorer context menu"))
|
|
63
62
|
},
|
|
64
63
|
{
|
|
65
64
|
key: 'explorer/context/share',
|
|
66
65
|
id: MenuId.ExplorerContextShare,
|
|
67
|
-
description: (
|
|
66
|
+
description: ( localize(8512, "'Share' submenu in the file explorer context menu")),
|
|
68
67
|
proposed: 'contribShareMenu'
|
|
69
68
|
},
|
|
70
69
|
{
|
|
71
70
|
key: 'editor/title/context',
|
|
72
71
|
id: MenuId.EditorTitleContext,
|
|
73
|
-
description: (
|
|
72
|
+
description: ( localize(8513, "The editor tabs context menu"))
|
|
74
73
|
},
|
|
75
74
|
{
|
|
76
75
|
key: 'editor/title/context/share',
|
|
77
76
|
id: MenuId.EditorTitleContextShare,
|
|
78
|
-
description: (
|
|
77
|
+
description: ( localize(8514, "'Share' submenu inside the editor title context menu")),
|
|
79
78
|
proposed: 'contribShareMenu'
|
|
80
79
|
},
|
|
81
80
|
{
|
|
82
81
|
key: 'debug/callstack/context',
|
|
83
82
|
id: MenuId.DebugCallStackContext,
|
|
84
|
-
description: (
|
|
83
|
+
description: ( localize(8515, "The debug callstack view context menu"))
|
|
85
84
|
},
|
|
86
85
|
{
|
|
87
86
|
key: 'debug/variables/context',
|
|
88
87
|
id: MenuId.DebugVariablesContext,
|
|
89
|
-
description: (
|
|
88
|
+
description: ( localize(8516, "The debug variables view context menu"))
|
|
90
89
|
},
|
|
91
90
|
{
|
|
92
91
|
key: 'debug/toolBar',
|
|
93
92
|
id: MenuId.DebugToolBar,
|
|
94
|
-
description: (
|
|
93
|
+
description: ( localize(8517, "The debug toolbar menu"))
|
|
95
94
|
},
|
|
96
95
|
{
|
|
97
96
|
key: 'notebook/variables/context',
|
|
98
97
|
id: MenuId.NotebookVariablesContext,
|
|
99
|
-
description: (
|
|
98
|
+
description: ( localize(8518, "The notebook variables view context menu"))
|
|
100
99
|
},
|
|
101
100
|
{
|
|
102
101
|
key: 'menuBar/home',
|
|
103
102
|
id: MenuId.MenubarHomeMenu,
|
|
104
|
-
description: (
|
|
103
|
+
description: ( localize(8519, "The home indicator context menu (web only)")),
|
|
105
104
|
proposed: 'contribMenuBarHome',
|
|
106
105
|
supportsSubmenus: false
|
|
107
106
|
},
|
|
108
107
|
{
|
|
109
108
|
key: 'menuBar/edit/copy',
|
|
110
109
|
id: MenuId.MenubarCopy,
|
|
111
|
-
description: (
|
|
110
|
+
description: ( localize(8520, "'Copy as' submenu in the top level Edit menu"))
|
|
112
111
|
},
|
|
113
112
|
{
|
|
114
113
|
key: 'scm/title',
|
|
115
114
|
id: MenuId.SCMTitle,
|
|
116
|
-
description: (
|
|
115
|
+
description: ( localize(8521, "The Source Control title menu"))
|
|
117
116
|
},
|
|
118
117
|
{
|
|
119
118
|
key: 'scm/sourceControl',
|
|
120
119
|
id: MenuId.SCMSourceControl,
|
|
121
|
-
description: (
|
|
120
|
+
description: ( localize(8522, "The Source Control menu"))
|
|
122
121
|
},
|
|
123
122
|
{
|
|
124
123
|
key: 'scm/sourceControl/title',
|
|
125
124
|
id: MenuId.SCMSourceControlTitle,
|
|
126
|
-
description: (
|
|
125
|
+
description: ( localize(8523, "The Source Control title menu")),
|
|
127
126
|
proposed: 'contribSourceControlTitleMenu'
|
|
128
127
|
},
|
|
129
128
|
{
|
|
130
129
|
key: 'scm/resourceState/context',
|
|
131
130
|
id: MenuId.SCMResourceContext,
|
|
132
|
-
description: (
|
|
131
|
+
description: ( localize(8524, "The Source Control resource state context menu"))
|
|
133
132
|
},
|
|
134
133
|
{
|
|
135
134
|
key: 'scm/resourceFolder/context',
|
|
136
135
|
id: MenuId.SCMResourceFolderContext,
|
|
137
|
-
description: (
|
|
136
|
+
description: ( localize(8525, "The Source Control resource folder context menu"))
|
|
138
137
|
},
|
|
139
138
|
{
|
|
140
139
|
key: 'scm/resourceGroup/context',
|
|
141
140
|
id: MenuId.SCMResourceGroupContext,
|
|
142
|
-
description: (
|
|
141
|
+
description: ( localize(8526, "The Source Control resource group context menu"))
|
|
143
142
|
},
|
|
144
143
|
{
|
|
145
144
|
key: 'scm/change/title',
|
|
146
145
|
id: MenuId.SCMChangeContext,
|
|
147
|
-
description: (
|
|
146
|
+
description: ( localize(8527, "The Source Control inline change menu"))
|
|
148
147
|
},
|
|
149
148
|
{
|
|
150
149
|
key: 'scm/inputBox',
|
|
151
150
|
id: MenuId.SCMInputBox,
|
|
152
|
-
description: (
|
|
151
|
+
description: ( localize(8528, "The Source Control input box menu")),
|
|
153
152
|
proposed: 'contribSourceControlInputBoxMenu'
|
|
154
153
|
},
|
|
154
|
+
{
|
|
155
|
+
key: 'scm/historyItemChanges/title',
|
|
156
|
+
id: MenuId.SCMChangesSeparator,
|
|
157
|
+
description: ( localize(8529, "The Source Control incoming/outgoing changes title menu")),
|
|
158
|
+
proposed: 'contribSourceControlHistoryItemChangesMenu'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
key: 'scm/historyItem/context',
|
|
162
|
+
id: MenuId.SCMChangesContext,
|
|
163
|
+
description: ( localize(8530, "The Source Control history item context menu")),
|
|
164
|
+
proposed: 'contribSourceControlHistoryItemChangesMenu'
|
|
165
|
+
},
|
|
155
166
|
{
|
|
156
167
|
key: 'scm/incomingChanges',
|
|
157
168
|
id: MenuId.SCMIncomingChanges,
|
|
158
|
-
description: (
|
|
169
|
+
description: ( localize(8531, "The Source Control incoming changes menu")),
|
|
159
170
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
160
171
|
},
|
|
161
172
|
{
|
|
162
173
|
key: 'scm/incomingChanges/context',
|
|
163
174
|
id: MenuId.SCMIncomingChangesContext,
|
|
164
|
-
description: (
|
|
175
|
+
description: ( localize(8532, "The Source Control incoming changes context menu")),
|
|
165
176
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
166
177
|
},
|
|
167
178
|
{
|
|
168
179
|
key: 'scm/outgoingChanges',
|
|
169
180
|
id: MenuId.SCMOutgoingChanges,
|
|
170
|
-
description: (
|
|
181
|
+
description: ( localize(8533, "The Source Control outgoing changes menu")),
|
|
171
182
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
172
183
|
},
|
|
173
184
|
{
|
|
174
185
|
key: 'scm/outgoingChanges/context',
|
|
175
186
|
id: MenuId.SCMOutgoingChangesContext,
|
|
176
|
-
description: (
|
|
187
|
+
description: ( localize(8534, "The Source Control outgoing changes context menu")),
|
|
177
188
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
178
189
|
},
|
|
179
190
|
{
|
|
180
191
|
key: 'scm/incomingChanges/allChanges/context',
|
|
181
192
|
id: MenuId.SCMIncomingChangesAllChangesContext,
|
|
182
|
-
description: (
|
|
193
|
+
description: ( localize(8535, "The Source Control all incoming changes context menu")),
|
|
183
194
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
184
195
|
},
|
|
185
196
|
{
|
|
186
197
|
key: 'scm/incomingChanges/historyItem/context',
|
|
187
198
|
id: MenuId.SCMIncomingChangesHistoryItemContext,
|
|
188
|
-
description: (
|
|
189
|
-
_moduleId,
|
|
190
|
-
30,
|
|
191
|
-
"The Source Control incoming changes history item context menu"
|
|
192
|
-
)),
|
|
199
|
+
description: ( localize(8536, "The Source Control incoming changes history item context menu")),
|
|
193
200
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
194
201
|
},
|
|
195
202
|
{
|
|
196
203
|
key: 'scm/outgoingChanges/allChanges/context',
|
|
197
204
|
id: MenuId.SCMOutgoingChangesAllChangesContext,
|
|
198
|
-
description: (
|
|
205
|
+
description: ( localize(8537, "The Source Control all outgoing changes context menu")),
|
|
199
206
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
200
207
|
},
|
|
201
208
|
{
|
|
202
209
|
key: 'scm/outgoingChanges/historyItem/context',
|
|
203
210
|
id: MenuId.SCMOutgoingChangesHistoryItemContext,
|
|
204
|
-
description: (
|
|
205
|
-
_moduleId,
|
|
206
|
-
32,
|
|
207
|
-
"The Source Control outgoing changes history item context menu"
|
|
208
|
-
)),
|
|
211
|
+
description: ( localize(8538, "The Source Control outgoing changes history item context menu")),
|
|
209
212
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
210
213
|
},
|
|
211
214
|
{
|
|
212
215
|
key: 'statusBar/remoteIndicator',
|
|
213
216
|
id: MenuId.StatusBarRemoteIndicatorMenu,
|
|
214
|
-
description: (
|
|
217
|
+
description: ( localize(8539, "The remote indicator menu in the status bar")),
|
|
215
218
|
supportsSubmenus: false
|
|
216
219
|
},
|
|
217
220
|
{
|
|
218
221
|
key: 'terminal/context',
|
|
219
222
|
id: MenuId.TerminalInstanceContext,
|
|
220
|
-
description: (
|
|
223
|
+
description: ( localize(8540, "The terminal context menu"))
|
|
221
224
|
},
|
|
222
225
|
{
|
|
223
226
|
key: 'terminal/title/context',
|
|
224
227
|
id: MenuId.TerminalTabContext,
|
|
225
|
-
description: (
|
|
228
|
+
description: ( localize(8541, "The terminal tabs context menu"))
|
|
226
229
|
},
|
|
227
230
|
{
|
|
228
231
|
key: 'view/title',
|
|
229
232
|
id: MenuId.ViewTitle,
|
|
230
|
-
description: (
|
|
233
|
+
description: ( localize(8542, "The contributed view title menu"))
|
|
231
234
|
},
|
|
232
235
|
{
|
|
233
236
|
key: 'view/item/context',
|
|
234
237
|
id: MenuId.ViewItemContext,
|
|
235
|
-
description: (
|
|
238
|
+
description: ( localize(8543, "The contributed view item context menu"))
|
|
236
239
|
},
|
|
237
240
|
{
|
|
238
241
|
key: 'comments/comment/editorActions',
|
|
239
242
|
id: MenuId.CommentEditorActions,
|
|
240
|
-
description: (
|
|
243
|
+
description: ( localize(8544, "The contributed comment editor actions")),
|
|
241
244
|
proposed: 'contribCommentEditorActionsMenu'
|
|
242
245
|
},
|
|
243
246
|
{
|
|
244
247
|
key: 'comments/commentThread/title',
|
|
245
248
|
id: MenuId.CommentThreadTitle,
|
|
246
|
-
description: (
|
|
249
|
+
description: ( localize(8545, "The contributed comment thread title menu"))
|
|
247
250
|
},
|
|
248
251
|
{
|
|
249
252
|
key: 'comments/commentThread/context',
|
|
250
253
|
id: MenuId.CommentThreadActions,
|
|
251
|
-
description: (
|
|
252
|
-
|
|
253
|
-
40,
|
|
254
|
+
description: ( localize(
|
|
255
|
+
8546,
|
|
254
256
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
255
257
|
)),
|
|
256
258
|
supportsSubmenus: false
|
|
@@ -258,9 +260,8 @@ const apiMenus = [
|
|
|
258
260
|
{
|
|
259
261
|
key: 'comments/commentThread/additionalActions',
|
|
260
262
|
id: MenuId.CommentThreadAdditionalActions,
|
|
261
|
-
description: (
|
|
262
|
-
|
|
263
|
-
40,
|
|
263
|
+
description: ( localize(
|
|
264
|
+
8546,
|
|
264
265
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
265
266
|
)),
|
|
266
267
|
supportsSubmenus: false,
|
|
@@ -269,9 +270,8 @@ const apiMenus = [
|
|
|
269
270
|
{
|
|
270
271
|
key: 'comments/commentThread/title/context',
|
|
271
272
|
id: MenuId.CommentThreadTitleContext,
|
|
272
|
-
description: (
|
|
273
|
-
|
|
274
|
-
41,
|
|
273
|
+
description: ( localize(
|
|
274
|
+
8547,
|
|
275
275
|
"The contributed comment thread title's peek context menu, rendered as a right click menu on the comment thread's peek title."
|
|
276
276
|
)),
|
|
277
277
|
proposed: 'contribCommentPeekContext'
|
|
@@ -279,14 +279,13 @@ const apiMenus = [
|
|
|
279
279
|
{
|
|
280
280
|
key: 'comments/comment/title',
|
|
281
281
|
id: MenuId.CommentTitle,
|
|
282
|
-
description: (
|
|
282
|
+
description: ( localize(8548, "The contributed comment title menu"))
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
285
|
key: 'comments/comment/context',
|
|
286
286
|
id: MenuId.CommentActions,
|
|
287
|
-
description: (
|
|
288
|
-
|
|
289
|
-
43,
|
|
287
|
+
description: ( localize(
|
|
288
|
+
8549,
|
|
290
289
|
"The contributed comment context menu, rendered as buttons below the comment editor"
|
|
291
290
|
)),
|
|
292
291
|
supportsSubmenus: false
|
|
@@ -294,9 +293,8 @@ const apiMenus = [
|
|
|
294
293
|
{
|
|
295
294
|
key: 'comments/commentThread/comment/context',
|
|
296
295
|
id: MenuId.CommentThreadCommentContext,
|
|
297
|
-
description: (
|
|
298
|
-
|
|
299
|
-
44,
|
|
296
|
+
description: ( localize(
|
|
297
|
+
8550,
|
|
300
298
|
"The contributed comment context menu, rendered as a right click menu on the an individual comment in the comment thread's peek view."
|
|
301
299
|
)),
|
|
302
300
|
proposed: 'contribCommentPeekContext'
|
|
@@ -304,177 +302,173 @@ const apiMenus = [
|
|
|
304
302
|
{
|
|
305
303
|
key: 'commentsView/commentThread/context',
|
|
306
304
|
id: MenuId.CommentsViewThreadActions,
|
|
307
|
-
description: (
|
|
308
|
-
_moduleId,
|
|
309
|
-
45,
|
|
310
|
-
"The contributed comment thread context menu in the comments view"
|
|
311
|
-
)),
|
|
305
|
+
description: ( localize(8551, "The contributed comment thread context menu in the comments view")),
|
|
312
306
|
proposed: 'contribCommentsViewThreadMenus'
|
|
313
307
|
},
|
|
314
308
|
{
|
|
315
309
|
key: 'notebook/toolbar',
|
|
316
310
|
id: MenuId.NotebookToolbar,
|
|
317
|
-
description: (
|
|
311
|
+
description: ( localize(8552, "The contributed notebook toolbar menu"))
|
|
318
312
|
},
|
|
319
313
|
{
|
|
320
314
|
key: 'notebook/kernelSource',
|
|
321
315
|
id: MenuId.NotebookKernelSource,
|
|
322
|
-
description: (
|
|
316
|
+
description: ( localize(8553, "The contributed notebook kernel sources menu")),
|
|
323
317
|
proposed: 'notebookKernelSource'
|
|
324
318
|
},
|
|
325
319
|
{
|
|
326
320
|
key: 'notebook/cell/title',
|
|
327
321
|
id: MenuId.NotebookCellTitle,
|
|
328
|
-
description: (
|
|
322
|
+
description: ( localize(8554, "The contributed notebook cell title menu"))
|
|
329
323
|
},
|
|
330
324
|
{
|
|
331
325
|
key: 'notebook/cell/execute',
|
|
332
326
|
id: MenuId.NotebookCellExecute,
|
|
333
|
-
description: (
|
|
327
|
+
description: ( localize(8555, "The contributed notebook cell execution menu"))
|
|
334
328
|
},
|
|
335
329
|
{
|
|
336
330
|
key: 'interactive/toolbar',
|
|
337
331
|
id: MenuId.InteractiveToolbar,
|
|
338
|
-
description: (
|
|
332
|
+
description: ( localize(8556, "The contributed interactive toolbar menu")),
|
|
339
333
|
},
|
|
340
334
|
{
|
|
341
335
|
key: 'interactive/cell/title',
|
|
342
336
|
id: MenuId.InteractiveCellTitle,
|
|
343
|
-
description: (
|
|
337
|
+
description: ( localize(8557, "The contributed interactive cell title menu")),
|
|
344
338
|
},
|
|
345
339
|
{
|
|
346
340
|
key: 'issue/reporter',
|
|
347
341
|
id: MenuId.IssueReporter,
|
|
348
|
-
description: (
|
|
342
|
+
description: ( localize(8558, "The contributed issue reporter menu")),
|
|
349
343
|
proposed: 'contribIssueReporter'
|
|
350
344
|
},
|
|
351
345
|
{
|
|
352
346
|
key: 'testing/item/context',
|
|
353
347
|
id: MenuId.TestItem,
|
|
354
|
-
description: (
|
|
348
|
+
description: ( localize(8559, "The contributed test item menu")),
|
|
355
349
|
},
|
|
356
350
|
{
|
|
357
351
|
key: 'testing/item/gutter',
|
|
358
352
|
id: MenuId.TestItemGutter,
|
|
359
|
-
description: (
|
|
353
|
+
description: ( localize(8560, "The menu for a gutter decoration for a test item")),
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
key: 'testing/profiles/context',
|
|
357
|
+
id: MenuId.TestProfilesContext,
|
|
358
|
+
description: ( localize(8561, "The menu for configuring testing profiles.")),
|
|
360
359
|
},
|
|
361
360
|
{
|
|
362
361
|
key: 'testing/item/result',
|
|
363
362
|
id: MenuId.TestPeekElement,
|
|
364
|
-
description: (
|
|
363
|
+
description: ( localize(8562, "The menu for an item in the Test Results view or peek.")),
|
|
365
364
|
},
|
|
366
365
|
{
|
|
367
366
|
key: 'testing/message/context',
|
|
368
367
|
id: MenuId.TestMessageContext,
|
|
369
|
-
description: (
|
|
370
|
-
|
|
371
|
-
56,
|
|
368
|
+
description: ( localize(
|
|
369
|
+
8563,
|
|
372
370
|
"A prominent button overlaying editor content where the message is displayed"
|
|
373
371
|
)),
|
|
374
372
|
},
|
|
375
373
|
{
|
|
376
374
|
key: 'testing/message/content',
|
|
377
375
|
id: MenuId.TestMessageContent,
|
|
378
|
-
description: (
|
|
376
|
+
description: ( localize(8564, "Context menu for the message in the results tree")),
|
|
379
377
|
},
|
|
380
378
|
{
|
|
381
379
|
key: 'extension/context',
|
|
382
380
|
id: MenuId.ExtensionContext,
|
|
383
|
-
description: (
|
|
381
|
+
description: ( localize(8565, "The extension context menu"))
|
|
384
382
|
},
|
|
385
383
|
{
|
|
386
384
|
key: 'timeline/title',
|
|
387
385
|
id: MenuId.TimelineTitle,
|
|
388
|
-
description: (
|
|
386
|
+
description: ( localize(8566, "The Timeline view title menu"))
|
|
389
387
|
},
|
|
390
388
|
{
|
|
391
389
|
key: 'timeline/item/context',
|
|
392
390
|
id: MenuId.TimelineItemContext,
|
|
393
|
-
description: (
|
|
391
|
+
description: ( localize(8567, "The Timeline view item context menu"))
|
|
394
392
|
},
|
|
395
393
|
{
|
|
396
394
|
key: 'ports/item/context',
|
|
397
395
|
id: MenuId.TunnelContext,
|
|
398
|
-
description: (
|
|
396
|
+
description: ( localize(8568, "The Ports view item context menu"))
|
|
399
397
|
},
|
|
400
398
|
{
|
|
401
399
|
key: 'ports/item/origin/inline',
|
|
402
400
|
id: MenuId.TunnelOriginInline,
|
|
403
|
-
description: (
|
|
401
|
+
description: ( localize(8569, "The Ports view item origin inline menu"))
|
|
404
402
|
},
|
|
405
403
|
{
|
|
406
404
|
key: 'ports/item/port/inline',
|
|
407
405
|
id: MenuId.TunnelPortInline,
|
|
408
|
-
description: (
|
|
406
|
+
description: ( localize(8570, "The Ports view item port inline menu"))
|
|
409
407
|
},
|
|
410
408
|
{
|
|
411
409
|
key: 'file/newFile',
|
|
412
410
|
id: MenuId.NewFile,
|
|
413
|
-
description: (
|
|
414
|
-
_moduleId,
|
|
415
|
-
64,
|
|
416
|
-
"The 'New File...' quick pick, shown on welcome page and File menu."
|
|
417
|
-
)),
|
|
411
|
+
description: ( localize(8571, "The 'New File...' quick pick, shown on welcome page and File menu.")),
|
|
418
412
|
supportsSubmenus: false,
|
|
419
413
|
},
|
|
420
414
|
{
|
|
421
415
|
key: 'webview/context',
|
|
422
416
|
id: MenuId.WebviewContext,
|
|
423
|
-
description: (
|
|
417
|
+
description: ( localize(8572, "The webview context menu"))
|
|
424
418
|
},
|
|
425
419
|
{
|
|
426
420
|
key: 'file/share',
|
|
427
421
|
id: MenuId.MenubarShare,
|
|
428
|
-
description: (
|
|
422
|
+
description: ( localize(8573, "Share submenu shown in the top level File menu.")),
|
|
429
423
|
proposed: 'contribShareMenu'
|
|
430
424
|
},
|
|
431
425
|
{
|
|
432
426
|
key: 'editor/inlineCompletions/actions',
|
|
433
427
|
id: MenuId.InlineCompletionsActions,
|
|
434
|
-
description: (
|
|
428
|
+
description: ( localize(8574, "The actions shown when hovering on an inline completion")),
|
|
435
429
|
supportsSubmenus: false,
|
|
436
430
|
proposed: 'inlineCompletionsAdditions'
|
|
437
431
|
},
|
|
438
432
|
{
|
|
439
433
|
key: 'editor/inlineEdit/actions',
|
|
440
434
|
id: MenuId.InlineEditActions,
|
|
441
|
-
description: (
|
|
435
|
+
description: ( localize(8575, "The actions shown when hovering on an inline edit")),
|
|
442
436
|
supportsSubmenus: false,
|
|
443
437
|
proposed: 'inlineEdit'
|
|
444
438
|
},
|
|
445
439
|
{
|
|
446
440
|
key: 'editor/content',
|
|
447
441
|
id: MenuId.EditorContent,
|
|
448
|
-
description: (
|
|
442
|
+
description: ( localize(8576, "The prominent button in an editor, overlays its content")),
|
|
449
443
|
proposed: 'contribEditorContentMenu'
|
|
450
444
|
},
|
|
451
445
|
{
|
|
452
446
|
key: 'editor/lineNumber/context',
|
|
453
447
|
id: MenuId.EditorLineNumberContext,
|
|
454
|
-
description: (
|
|
448
|
+
description: ( localize(8577, "The contributed editor line number context menu"))
|
|
455
449
|
},
|
|
456
450
|
{
|
|
457
451
|
key: 'mergeEditor/result/title',
|
|
458
452
|
id: MenuId.MergeInputResultToolbar,
|
|
459
|
-
description: (
|
|
453
|
+
description: ( localize(8578, "The result toolbar of the merge editor")),
|
|
460
454
|
proposed: 'contribMergeEditorMenus'
|
|
461
455
|
},
|
|
462
456
|
{
|
|
463
457
|
key: 'multiDiffEditor/resource/title',
|
|
464
458
|
id: MenuId.MultiDiffEditorFileToolbar,
|
|
465
|
-
description: (
|
|
459
|
+
description: ( localize(8579, "The resource toolbar in the multi diff editor")),
|
|
466
460
|
proposed: 'contribMultiDiffEditorMenus'
|
|
467
461
|
},
|
|
468
462
|
{
|
|
469
463
|
key: 'diffEditor/gutter/hunk',
|
|
470
464
|
id: MenuId.DiffEditorHunkToolbar,
|
|
471
|
-
description: (
|
|
465
|
+
description: ( localize(8580, "The gutter toolbar in the diff editor")),
|
|
472
466
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
473
467
|
},
|
|
474
468
|
{
|
|
475
469
|
key: 'diffEditor/gutter/selection',
|
|
476
470
|
id: MenuId.DiffEditorSelectionToolbar,
|
|
477
|
-
description: (
|
|
471
|
+
description: ( localize(8580, "The gutter toolbar in the diff editor")),
|
|
478
472
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
479
473
|
}
|
|
480
474
|
];
|
|
@@ -486,39 +480,23 @@ var schema;
|
|
|
486
480
|
schema.isMenuItem = isMenuItem;
|
|
487
481
|
function isValidMenuItem(item, collector) {
|
|
488
482
|
if (typeof item.command !== 'string') {
|
|
489
|
-
collector.error((
|
|
490
|
-
|
|
491
|
-
74,
|
|
483
|
+
collector.error(( localize(
|
|
484
|
+
8581,
|
|
492
485
|
"property `{0}` is mandatory and must be of type `string`",
|
|
493
486
|
'command'
|
|
494
487
|
)));
|
|
495
488
|
return false;
|
|
496
489
|
}
|
|
497
490
|
if (item.alt && typeof item.alt !== 'string') {
|
|
498
|
-
collector.error((
|
|
499
|
-
_moduleId,
|
|
500
|
-
75,
|
|
501
|
-
"property `{0}` can be omitted or must be of type `string`",
|
|
502
|
-
'alt'
|
|
503
|
-
)));
|
|
491
|
+
collector.error(( localize(8582, "property `{0}` can be omitted or must be of type `string`", 'alt')));
|
|
504
492
|
return false;
|
|
505
493
|
}
|
|
506
494
|
if (item.when && typeof item.when !== 'string') {
|
|
507
|
-
collector.error((
|
|
508
|
-
_moduleId,
|
|
509
|
-
75,
|
|
510
|
-
"property `{0}` can be omitted or must be of type `string`",
|
|
511
|
-
'when'
|
|
512
|
-
)));
|
|
495
|
+
collector.error(( localize(8582, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
513
496
|
return false;
|
|
514
497
|
}
|
|
515
498
|
if (item.group && typeof item.group !== 'string') {
|
|
516
|
-
collector.error((
|
|
517
|
-
_moduleId,
|
|
518
|
-
75,
|
|
519
|
-
"property `{0}` can be omitted or must be of type `string`",
|
|
520
|
-
'group'
|
|
521
|
-
)));
|
|
499
|
+
collector.error(( localize(8582, "property `{0}` can be omitted or must be of type `string`", 'group')));
|
|
522
500
|
return false;
|
|
523
501
|
}
|
|
524
502
|
return true;
|
|
@@ -526,30 +504,19 @@ var schema;
|
|
|
526
504
|
schema.isValidMenuItem = isValidMenuItem;
|
|
527
505
|
function isValidSubmenuItem(item, collector) {
|
|
528
506
|
if (typeof item.submenu !== 'string') {
|
|
529
|
-
collector.error((
|
|
530
|
-
|
|
531
|
-
74,
|
|
507
|
+
collector.error(( localize(
|
|
508
|
+
8582,
|
|
532
509
|
"property `{0}` is mandatory and must be of type `string`",
|
|
533
510
|
'submenu'
|
|
534
511
|
)));
|
|
535
512
|
return false;
|
|
536
513
|
}
|
|
537
514
|
if (item.when && typeof item.when !== 'string') {
|
|
538
|
-
collector.error((
|
|
539
|
-
_moduleId,
|
|
540
|
-
75,
|
|
541
|
-
"property `{0}` can be omitted or must be of type `string`",
|
|
542
|
-
'when'
|
|
543
|
-
)));
|
|
515
|
+
collector.error(( localize(8582, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
544
516
|
return false;
|
|
545
517
|
}
|
|
546
518
|
if (item.group && typeof item.group !== 'string') {
|
|
547
|
-
collector.error((
|
|
548
|
-
_moduleId,
|
|
549
|
-
75,
|
|
550
|
-
"property `{0}` can be omitted or must be of type `string`",
|
|
551
|
-
'group'
|
|
552
|
-
)));
|
|
519
|
+
collector.error(( localize(8582, "property `{0}` can be omitted or must be of type `string`", 'group')));
|
|
553
520
|
return false;
|
|
554
521
|
}
|
|
555
522
|
return true;
|
|
@@ -557,7 +524,7 @@ var schema;
|
|
|
557
524
|
schema.isValidSubmenuItem = isValidSubmenuItem;
|
|
558
525
|
function isValidItems(items, collector) {
|
|
559
526
|
if (!Array.isArray(items)) {
|
|
560
|
-
collector.error((
|
|
527
|
+
collector.error(( localize(8583, "submenu items must be an array")));
|
|
561
528
|
return false;
|
|
562
529
|
}
|
|
563
530
|
for (const item of items) {
|
|
@@ -577,25 +544,15 @@ var schema;
|
|
|
577
544
|
schema.isValidItems = isValidItems;
|
|
578
545
|
function isValidSubmenu(submenu, collector) {
|
|
579
546
|
if (typeof submenu !== 'object') {
|
|
580
|
-
collector.error((
|
|
547
|
+
collector.error(( localize(8584, "submenu items must be an object")));
|
|
581
548
|
return false;
|
|
582
549
|
}
|
|
583
550
|
if (typeof submenu.id !== 'string') {
|
|
584
|
-
collector.error((
|
|
585
|
-
_moduleId,
|
|
586
|
-
74,
|
|
587
|
-
"property `{0}` is mandatory and must be of type `string`",
|
|
588
|
-
'id'
|
|
589
|
-
)));
|
|
551
|
+
collector.error(( localize(8584, "property `{0}` is mandatory and must be of type `string`", 'id')));
|
|
590
552
|
return false;
|
|
591
553
|
}
|
|
592
554
|
if (typeof submenu.label !== 'string') {
|
|
593
|
-
collector.error((
|
|
594
|
-
_moduleId,
|
|
595
|
-
74,
|
|
596
|
-
"property `{0}` is mandatory and must be of type `string`",
|
|
597
|
-
'label'
|
|
598
|
-
)));
|
|
555
|
+
collector.error(( localize(8584, "property `{0}` is mandatory and must be of type `string`", 'label')));
|
|
599
556
|
return false;
|
|
600
557
|
}
|
|
601
558
|
return true;
|
|
@@ -606,27 +563,25 @@ var schema;
|
|
|
606
563
|
required: ['command'],
|
|
607
564
|
properties: {
|
|
608
565
|
command: {
|
|
609
|
-
description: (
|
|
610
|
-
|
|
611
|
-
78,
|
|
566
|
+
description: ( localize(
|
|
567
|
+
8585,
|
|
612
568
|
'Identifier of the command to execute. The command must be declared in the \'commands\'-section'
|
|
613
569
|
)),
|
|
614
570
|
type: 'string'
|
|
615
571
|
},
|
|
616
572
|
alt: {
|
|
617
|
-
description: (
|
|
618
|
-
|
|
619
|
-
79,
|
|
573
|
+
description: ( localize(
|
|
574
|
+
8586,
|
|
620
575
|
'Identifier of an alternative command to execute. The command must be declared in the \'commands\'-section'
|
|
621
576
|
)),
|
|
622
577
|
type: 'string'
|
|
623
578
|
},
|
|
624
579
|
when: {
|
|
625
|
-
description: (
|
|
580
|
+
description: ( localize(8587, 'Condition which must be true to show this item')),
|
|
626
581
|
type: 'string'
|
|
627
582
|
},
|
|
628
583
|
group: {
|
|
629
|
-
description: (
|
|
584
|
+
description: ( localize(8588, 'Group into which this item belongs')),
|
|
630
585
|
type: 'string'
|
|
631
586
|
}
|
|
632
587
|
}
|
|
@@ -636,15 +591,15 @@ var schema;
|
|
|
636
591
|
required: ['submenu'],
|
|
637
592
|
properties: {
|
|
638
593
|
submenu: {
|
|
639
|
-
description: (
|
|
594
|
+
description: ( localize(8589, 'Identifier of the submenu to display in this item.')),
|
|
640
595
|
type: 'string'
|
|
641
596
|
},
|
|
642
597
|
when: {
|
|
643
|
-
description: (
|
|
598
|
+
description: ( localize(8589, 'Condition which must be true to show this item')),
|
|
644
599
|
type: 'string'
|
|
645
600
|
},
|
|
646
601
|
group: {
|
|
647
|
-
description: (
|
|
602
|
+
description: ( localize(8589, 'Group into which this item belongs')),
|
|
648
603
|
type: 'string'
|
|
649
604
|
}
|
|
650
605
|
}
|
|
@@ -654,17 +609,16 @@ var schema;
|
|
|
654
609
|
required: ['id', 'label'],
|
|
655
610
|
properties: {
|
|
656
611
|
id: {
|
|
657
|
-
description: (
|
|
612
|
+
description: ( localize(8590, 'Identifier of the menu to display as a submenu.')),
|
|
658
613
|
type: 'string'
|
|
659
614
|
},
|
|
660
615
|
label: {
|
|
661
|
-
description: (
|
|
616
|
+
description: ( localize(8591, 'The label of the menu item which leads to this submenu.')),
|
|
662
617
|
type: 'string'
|
|
663
618
|
},
|
|
664
619
|
icon: {
|
|
665
|
-
description: (
|
|
666
|
-
|
|
667
|
-
85,
|
|
620
|
+
description: ( localize(
|
|
621
|
+
8592,
|
|
668
622
|
'(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)`'
|
|
669
623
|
)),
|
|
670
624
|
anyOf: [{
|
|
@@ -674,11 +628,11 @@ var schema;
|
|
|
674
628
|
type: 'object',
|
|
675
629
|
properties: {
|
|
676
630
|
light: {
|
|
677
|
-
description: (
|
|
631
|
+
description: ( localize(8593, 'Icon path when a light theme is used')),
|
|
678
632
|
type: 'string'
|
|
679
633
|
},
|
|
680
634
|
dark: {
|
|
681
|
-
description: (
|
|
635
|
+
description: ( localize(8594, 'Icon path when a dark theme is used')),
|
|
682
636
|
type: 'string'
|
|
683
637
|
}
|
|
684
638
|
}
|
|
@@ -687,12 +641,11 @@ var schema;
|
|
|
687
641
|
}
|
|
688
642
|
};
|
|
689
643
|
schema.menusContribution = {
|
|
690
|
-
description: (
|
|
644
|
+
description: ( localize(8595, "Contributes menu items to the editor")),
|
|
691
645
|
type: 'object',
|
|
692
646
|
properties: index(apiMenus, menu => menu.key, menu => ({
|
|
693
|
-
markdownDescription: menu.proposed ? (
|
|
694
|
-
|
|
695
|
-
89,
|
|
647
|
+
markdownDescription: menu.proposed ? ( localize(
|
|
648
|
+
8596,
|
|
696
649
|
"Proposed API, requires `enabledApiProposal: [\"{0}\"]` - {1}",
|
|
697
650
|
menu.proposed,
|
|
698
651
|
menu.description
|
|
@@ -707,19 +660,18 @@ var schema;
|
|
|
707
660
|
}
|
|
708
661
|
};
|
|
709
662
|
schema.submenusContribution = {
|
|
710
|
-
description: (
|
|
663
|
+
description: ( localize(8597, "Contributes submenu items to the editor")),
|
|
711
664
|
type: 'array',
|
|
712
665
|
items: submenu
|
|
713
666
|
};
|
|
714
667
|
function isValidCommand(command, collector) {
|
|
715
668
|
if (!command) {
|
|
716
|
-
collector.error((
|
|
669
|
+
collector.error(( localize(8598, "expected non-empty value.")));
|
|
717
670
|
return false;
|
|
718
671
|
}
|
|
719
672
|
if (isFalsyOrWhitespace(command.command)) {
|
|
720
|
-
collector.error((
|
|
721
|
-
|
|
722
|
-
74,
|
|
673
|
+
collector.error(( localize(
|
|
674
|
+
8598,
|
|
723
675
|
"property `{0}` is mandatory and must be of type `string`",
|
|
724
676
|
'command'
|
|
725
677
|
)));
|
|
@@ -732,9 +684,8 @@ var schema;
|
|
|
732
684
|
return false;
|
|
733
685
|
}
|
|
734
686
|
if (command.enablement && typeof command.enablement !== 'string') {
|
|
735
|
-
collector.error((
|
|
736
|
-
|
|
737
|
-
75,
|
|
687
|
+
collector.error(( localize(
|
|
688
|
+
8598,
|
|
738
689
|
"property `{0}` can be omitted or must be of type `string`",
|
|
739
690
|
'precondition'
|
|
740
691
|
)));
|
|
@@ -759,36 +710,32 @@ var schema;
|
|
|
759
710
|
else if (typeof icon.dark === 'string' && typeof icon.light === 'string') {
|
|
760
711
|
return true;
|
|
761
712
|
}
|
|
762
|
-
collector.error((
|
|
763
|
-
|
|
764
|
-
92,
|
|
713
|
+
collector.error(( localize(
|
|
714
|
+
8599,
|
|
765
715
|
"property `icon` can be omitted or must be either a string or a literal like `{dark, light}`"
|
|
766
716
|
)));
|
|
767
717
|
return false;
|
|
768
718
|
}
|
|
769
719
|
function isValidLocalizedString(localized, collector, propertyName) {
|
|
770
720
|
if (typeof localized === 'undefined') {
|
|
771
|
-
collector.error((
|
|
772
|
-
|
|
773
|
-
93,
|
|
721
|
+
collector.error(( localize(
|
|
722
|
+
8600,
|
|
774
723
|
"property `{0}` is mandatory and must be of type `string` or `object`",
|
|
775
724
|
propertyName
|
|
776
725
|
)));
|
|
777
726
|
return false;
|
|
778
727
|
}
|
|
779
728
|
else if (typeof localized === 'string' && isFalsyOrWhitespace(localized)) {
|
|
780
|
-
collector.error((
|
|
781
|
-
|
|
782
|
-
74,
|
|
729
|
+
collector.error(( localize(
|
|
730
|
+
8600,
|
|
783
731
|
"property `{0}` is mandatory and must be of type `string`",
|
|
784
732
|
propertyName
|
|
785
733
|
)));
|
|
786
734
|
return false;
|
|
787
735
|
}
|
|
788
736
|
else if (typeof localized !== 'string' && (isFalsyOrWhitespace(localized.original) || isFalsyOrWhitespace(localized.value))) {
|
|
789
|
-
collector.error((
|
|
790
|
-
|
|
791
|
-
94,
|
|
737
|
+
collector.error(( localize(
|
|
738
|
+
8601,
|
|
792
739
|
"properties `{0}` and `{1}` are mandatory and must be of type `string`",
|
|
793
740
|
`${propertyName}.value`,
|
|
794
741
|
`${propertyName}.original`
|
|
@@ -802,41 +749,37 @@ var schema;
|
|
|
802
749
|
required: ['command', 'title'],
|
|
803
750
|
properties: {
|
|
804
751
|
command: {
|
|
805
|
-
description: (
|
|
752
|
+
description: ( localize(8602, 'Identifier of the command to execute')),
|
|
806
753
|
type: 'string'
|
|
807
754
|
},
|
|
808
755
|
title: {
|
|
809
|
-
description: (
|
|
756
|
+
description: ( localize(8603, 'Title by which the command is represented in the UI')),
|
|
810
757
|
type: 'string'
|
|
811
758
|
},
|
|
812
759
|
shortTitle: {
|
|
813
|
-
markdownDescription: (
|
|
814
|
-
|
|
815
|
-
97,
|
|
760
|
+
markdownDescription: ( localize(
|
|
761
|
+
8604,
|
|
816
762
|
'(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.'
|
|
817
763
|
)),
|
|
818
764
|
type: 'string'
|
|
819
765
|
},
|
|
820
766
|
category: {
|
|
821
|
-
description: (
|
|
822
|
-
|
|
823
|
-
98,
|
|
767
|
+
description: ( localize(
|
|
768
|
+
8605,
|
|
824
769
|
'(Optional) Category string by which the command is grouped in the UI'
|
|
825
770
|
)),
|
|
826
771
|
type: 'string'
|
|
827
772
|
},
|
|
828
773
|
enablement: {
|
|
829
|
-
description: (
|
|
830
|
-
|
|
831
|
-
99,
|
|
774
|
+
description: ( localize(
|
|
775
|
+
8606,
|
|
832
776
|
'(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.'
|
|
833
777
|
)),
|
|
834
778
|
type: 'string'
|
|
835
779
|
},
|
|
836
780
|
icon: {
|
|
837
|
-
description: (
|
|
838
|
-
|
|
839
|
-
100,
|
|
781
|
+
description: ( localize(
|
|
782
|
+
8607,
|
|
840
783
|
'(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)`'
|
|
841
784
|
)),
|
|
842
785
|
anyOf: [{
|
|
@@ -846,11 +789,11 @@ var schema;
|
|
|
846
789
|
type: 'object',
|
|
847
790
|
properties: {
|
|
848
791
|
light: {
|
|
849
|
-
description: (
|
|
792
|
+
description: ( localize(8608, 'Icon path when a light theme is used')),
|
|
850
793
|
type: 'string'
|
|
851
794
|
},
|
|
852
795
|
dark: {
|
|
853
|
-
description: (
|
|
796
|
+
description: ( localize(8609, 'Icon path when a dark theme is used')),
|
|
854
797
|
type: 'string'
|
|
855
798
|
}
|
|
856
799
|
}
|
|
@@ -859,7 +802,7 @@ var schema;
|
|
|
859
802
|
}
|
|
860
803
|
};
|
|
861
804
|
schema.commandsContribution = {
|
|
862
|
-
description: (
|
|
805
|
+
description: ( localize(8610, "Contributes commands to the command palette.")),
|
|
863
806
|
oneOf: [
|
|
864
807
|
commandType,
|
|
865
808
|
{
|
|
@@ -902,9 +845,8 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
902
845
|
const existingCmd = MenuRegistry.getCommand(command);
|
|
903
846
|
if (existingCmd) {
|
|
904
847
|
if (existingCmd.source) {
|
|
905
|
-
extension.collector.info((
|
|
906
|
-
|
|
907
|
-
104,
|
|
848
|
+
extension.collector.info(( localize(
|
|
849
|
+
8611,
|
|
908
850
|
"Command `{0}` already registered by {1} ({2})",
|
|
909
851
|
userFriendlyCommand.command,
|
|
910
852
|
existingCmd.source.title,
|
|
@@ -912,12 +854,7 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
912
854
|
)));
|
|
913
855
|
}
|
|
914
856
|
else {
|
|
915
|
-
extension.collector.info((
|
|
916
|
-
_moduleId,
|
|
917
|
-
105,
|
|
918
|
-
"Command `{0}` already registered",
|
|
919
|
-
userFriendlyCommand.command
|
|
920
|
-
)));
|
|
857
|
+
extension.collector.info(( localize(8612, "Command `{0}` already registered", userFriendlyCommand.command)));
|
|
921
858
|
}
|
|
922
859
|
}
|
|
923
860
|
_commandRegistrations.add(MenuRegistry.addCommand({
|
|
@@ -958,20 +895,19 @@ submenusExtensionPoint.setHandler(extensions => {
|
|
|
958
895
|
continue;
|
|
959
896
|
}
|
|
960
897
|
if (!submenuInfo.id) {
|
|
961
|
-
collector.warn((
|
|
898
|
+
collector.warn(( localize(8613, "`{0}` is not a valid submenu identifier", submenuInfo.id)));
|
|
962
899
|
continue;
|
|
963
900
|
}
|
|
964
901
|
if (( (_submenus.has(submenuInfo.id)))) {
|
|
965
|
-
collector.info((
|
|
966
|
-
|
|
967
|
-
107,
|
|
902
|
+
collector.info(( localize(
|
|
903
|
+
8614,
|
|
968
904
|
"The `{0}` submenu was already previously registered.",
|
|
969
905
|
submenuInfo.id
|
|
970
906
|
)));
|
|
971
907
|
continue;
|
|
972
908
|
}
|
|
973
909
|
if (!submenuInfo.label) {
|
|
974
|
-
collector.warn((
|
|
910
|
+
collector.warn(( localize(8615, "`{0}` is not a valid submenu label", submenuInfo.label)));
|
|
975
911
|
continue;
|
|
976
912
|
}
|
|
977
913
|
let absoluteIcon;
|
|
@@ -1027,9 +963,8 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1027
963
|
continue;
|
|
1028
964
|
}
|
|
1029
965
|
if (menu.proposed && !isProposedApiEnabled(extension.description, menu.proposed)) {
|
|
1030
|
-
collector.error((
|
|
1031
|
-
|
|
1032
|
-
109,
|
|
966
|
+
collector.error(( localize(
|
|
967
|
+
8616,
|
|
1033
968
|
"{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}",
|
|
1034
969
|
entry[0],
|
|
1035
970
|
menu.proposed,
|
|
@@ -1043,45 +978,37 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1043
978
|
const command = MenuRegistry.getCommand(menuItem.command);
|
|
1044
979
|
const alt = menuItem.alt && MenuRegistry.getCommand(menuItem.alt) || undefined;
|
|
1045
980
|
if (!command) {
|
|
1046
|
-
collector.error((
|
|
1047
|
-
|
|
1048
|
-
110,
|
|
981
|
+
collector.error(( localize(
|
|
982
|
+
8617,
|
|
1049
983
|
"Menu item references a command `{0}` which is not defined in the 'commands' section.",
|
|
1050
984
|
menuItem.command
|
|
1051
985
|
)));
|
|
1052
986
|
continue;
|
|
1053
987
|
}
|
|
1054
988
|
if (menuItem.alt && !alt) {
|
|
1055
|
-
collector.warn((
|
|
1056
|
-
|
|
1057
|
-
111,
|
|
989
|
+
collector.warn(( localize(
|
|
990
|
+
8618,
|
|
1058
991
|
"Menu item references an alt-command `{0}` which is not defined in the 'commands' section.",
|
|
1059
992
|
menuItem.alt
|
|
1060
993
|
)));
|
|
1061
994
|
}
|
|
1062
995
|
if (menuItem.command === menuItem.alt) {
|
|
1063
|
-
collector.info((
|
|
1064
|
-
_moduleId,
|
|
1065
|
-
112,
|
|
1066
|
-
"Menu item references the same command as default and alt-command"
|
|
1067
|
-
)));
|
|
996
|
+
collector.info(( localize(8619, "Menu item references the same command as default and alt-command")));
|
|
1068
997
|
}
|
|
1069
998
|
item = { command, alt, group: undefined, order: undefined, when: undefined };
|
|
1070
999
|
}
|
|
1071
1000
|
else {
|
|
1072
1001
|
if (menu.supportsSubmenus === false) {
|
|
1073
|
-
collector.error((
|
|
1074
|
-
|
|
1075
|
-
113,
|
|
1002
|
+
collector.error(( localize(
|
|
1003
|
+
8620,
|
|
1076
1004
|
"Menu item references a submenu for a menu which doesn't have submenu support."
|
|
1077
1005
|
)));
|
|
1078
1006
|
continue;
|
|
1079
1007
|
}
|
|
1080
1008
|
const submenu = _submenus.get(menuItem.submenu);
|
|
1081
1009
|
if (!submenu) {
|
|
1082
|
-
collector.error((
|
|
1083
|
-
|
|
1084
|
-
114,
|
|
1010
|
+
collector.error(( localize(
|
|
1011
|
+
8621,
|
|
1085
1012
|
"Menu item references a submenu `{0}` which is not defined in the 'submenus' section.",
|
|
1086
1013
|
menuItem.submenu
|
|
1087
1014
|
)));
|
|
@@ -1093,9 +1020,8 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1093
1020
|
_submenuMenuItems.set(menu.id.id, submenuRegistrations);
|
|
1094
1021
|
}
|
|
1095
1022
|
if (( (submenuRegistrations.has(submenu.id.id)))) {
|
|
1096
|
-
collector.warn((
|
|
1097
|
-
|
|
1098
|
-
115,
|
|
1023
|
+
collector.warn(( localize(
|
|
1024
|
+
8622,
|
|
1099
1025
|
"The `{0}` submenu was already contributed to the `{1}` menu.",
|
|
1100
1026
|
menuItem.submenu,
|
|
1101
1027
|
entry[0]
|
|
@@ -1175,10 +1101,10 @@ let CommandsTableRenderer = class CommandsTableRenderer extends Disposable {
|
|
|
1175
1101
|
return { data: { headers: [], rows: [] }, dispose: () => { } };
|
|
1176
1102
|
}
|
|
1177
1103
|
const headers = [
|
|
1178
|
-
(
|
|
1179
|
-
(
|
|
1180
|
-
(
|
|
1181
|
-
(
|
|
1104
|
+
( localize(8623, "ID")),
|
|
1105
|
+
( localize(8624, "Title")),
|
|
1106
|
+
( localize(8625, "Keyboard Shortcuts")),
|
|
1107
|
+
( localize(8626, "Menu Contexts"))
|
|
1182
1108
|
];
|
|
1183
1109
|
const rows = ( (commands.sort((a, b) => a.id.localeCompare(b.id))
|
|
1184
1110
|
.map(command => {
|
|
@@ -1218,7 +1144,7 @@ CommandsTableRenderer = ( (__decorate([
|
|
|
1218
1144
|
], CommandsTableRenderer)));
|
|
1219
1145
|
( (Registry.as(Extensions.ExtensionFeaturesRegistry))).registerExtensionFeature({
|
|
1220
1146
|
id: 'commands',
|
|
1221
|
-
label: (
|
|
1147
|
+
label: ( localize(8627, "Commands")),
|
|
1222
1148
|
access: {
|
|
1223
1149
|
canToggle: false,
|
|
1224
1150
|
},
|