@codingame/monaco-vscode-keybindings-service-override 8.0.4 → 9.0.2
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 +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 +3 -3
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +166 -138
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -24
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-keybindings-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
30
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@9.0.2",
|
|
30
|
+
"@codingame/monaco-vscode-files-service-override": "9.0.2"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -19,7 +19,7 @@ const keyboardConfiguration = {
|
|
|
19
19
|
'id': 'keyboard',
|
|
20
20
|
'order': 15,
|
|
21
21
|
'type': 'object',
|
|
22
|
-
'title': ( localize(
|
|
22
|
+
'title': ( localize(8715, "Keyboard")),
|
|
23
23
|
'properties': {
|
|
24
24
|
'keyboard.dispatch': {
|
|
25
25
|
scope: ConfigurationScope.APPLICATION,
|
|
@@ -27,7 +27,7 @@ const keyboardConfiguration = {
|
|
|
27
27
|
enum: ['code', 'keyCode'],
|
|
28
28
|
default: 'code',
|
|
29
29
|
markdownDescription: ( localize(
|
|
30
|
-
|
|
30
|
+
8716,
|
|
31
31
|
"Controls the dispatching logic for key presses to use either `code` (recommended) or `keyCode`."
|
|
32
32
|
)),
|
|
33
33
|
included: OS === OperatingSystem.Macintosh || OS === OperatingSystem.Linux
|
|
@@ -36,7 +36,7 @@ const keyboardConfiguration = {
|
|
|
36
36
|
scope: ConfigurationScope.APPLICATION,
|
|
37
37
|
type: 'boolean',
|
|
38
38
|
default: false,
|
|
39
|
-
markdownDescription: ( localize(
|
|
39
|
+
markdownDescription: ( localize(8717, "Controls if the AltGraph+ modifier should be treated as Ctrl+Alt+.")),
|
|
40
40
|
included: OS === OperatingSystem.Windows
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -9,10 +9,10 @@ class RunCommands extends Action2 {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super({
|
|
11
11
|
id: 'runCommands',
|
|
12
|
-
title: ( localize2(
|
|
12
|
+
title: ( localize2(3527, "Run Commands")),
|
|
13
13
|
f1: false,
|
|
14
14
|
metadata: {
|
|
15
|
-
description: ( localize(
|
|
15
|
+
description: ( localize(3528, "Run several commands")),
|
|
16
16
|
args: [
|
|
17
17
|
{
|
|
18
18
|
name: 'args',
|
|
@@ -22,7 +22,7 @@ class RunCommands extends Action2 {
|
|
|
22
22
|
properties: {
|
|
23
23
|
commands: {
|
|
24
24
|
type: 'array',
|
|
25
|
-
description: ( localize(
|
|
25
|
+
description: ( localize(3529, "Commands to run")),
|
|
26
26
|
items: {
|
|
27
27
|
anyOf: [
|
|
28
28
|
{
|
|
@@ -62,14 +62,14 @@ class RunCommands extends Action2 {
|
|
|
62
62
|
const notificationService = accessor.get(INotificationService);
|
|
63
63
|
if (!this._isCommandArgs(args)) {
|
|
64
64
|
notificationService.error(( localize(
|
|
65
|
-
|
|
65
|
+
3530,
|
|
66
66
|
"'runCommands' has received an argument with incorrect type. Please, review the argument passed to the command."
|
|
67
67
|
)));
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
if (args.commands.length === 0) {
|
|
71
71
|
notificationService.warn(( localize(
|
|
72
|
-
|
|
72
|
+
3531,
|
|
73
73
|
"'runCommands' has not received commands to run. Did you forget to pass commands in the 'runCommands' argument?"
|
|
74
74
|
)));
|
|
75
75
|
return;
|
|
@@ -9,7 +9,7 @@ class ToggleKeybindingsLogAction extends Action2 {
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super({
|
|
11
11
|
id: 'workbench.action.toggleKeybindingsLog',
|
|
12
|
-
title: ( localize2(
|
|
12
|
+
title: ( localize2(3523, "Toggle Keyboard Shortcuts Troubleshooting")),
|
|
13
13
|
category: Categories.Developer,
|
|
14
14
|
f1: true
|
|
15
15
|
});
|
package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js
CHANGED
|
@@ -23,7 +23,7 @@ import { DEFINE_KEYBINDING_EDITOR_CONTRIB_ID } from 'vscode/vscode/vs/workbench/
|
|
|
23
23
|
|
|
24
24
|
var KeybindingEditorDecorationsRenderer_1;
|
|
25
25
|
const NLS_KB_LAYOUT_ERROR_MESSAGE = ( localize(
|
|
26
|
-
|
|
26
|
+
3524,
|
|
27
27
|
"You won't be able to produce this key combination under your current keyboard layout."
|
|
28
28
|
));
|
|
29
29
|
let DefineKeybindingEditorContribution = class DefineKeybindingEditorContribution extends Disposable {
|
|
@@ -181,14 +181,14 @@ let KeybindingEditorDecorationsRenderer = KeybindingEditorDecorationsRenderer_1
|
|
|
181
181
|
else {
|
|
182
182
|
if (usLabel && uiLabel !== usLabel) {
|
|
183
183
|
msg = ( (new MarkdownString(( localize(
|
|
184
|
-
|
|
184
|
+
3525,
|
|
185
185
|
"**{0}** for your current keyboard layout (**{1}** for US standard).",
|
|
186
186
|
uiLabel,
|
|
187
187
|
usLabel
|
|
188
188
|
)))));
|
|
189
189
|
}
|
|
190
190
|
else {
|
|
191
|
-
msg = ( (new MarkdownString(( localize(
|
|
191
|
+
msg = ( (new MarkdownString(( localize(3526, "**{0}** for your current keyboard layout.", uiLabel)))));
|
|
192
192
|
}
|
|
193
193
|
className = 'keybindingInfo';
|
|
194
194
|
overviewRulerColor = themeColorFromId(overviewRulerInfo);
|
|
@@ -20,239 +20,257 @@ const apiMenus = [
|
|
|
20
20
|
{
|
|
21
21
|
key: 'commandPalette',
|
|
22
22
|
id: MenuId.CommandPalette,
|
|
23
|
-
description: ( localize(
|
|
23
|
+
description: ( localize(8587, "The Command Palette")),
|
|
24
24
|
supportsSubmenus: false
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
key: 'touchBar',
|
|
28
28
|
id: MenuId.TouchBarContext,
|
|
29
|
-
description: ( localize(
|
|
29
|
+
description: ( localize(8588, "The touch bar (macOS only)")),
|
|
30
30
|
supportsSubmenus: false
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
key: 'editor/title',
|
|
34
34
|
id: MenuId.EditorTitle,
|
|
35
|
-
description: ( localize(
|
|
35
|
+
description: ( localize(8589, "The editor title menu"))
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
key: 'editor/title/run',
|
|
39
39
|
id: MenuId.EditorTitleRun,
|
|
40
|
-
description: ( localize(
|
|
40
|
+
description: ( localize(8590, "Run submenu inside the editor title menu"))
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
key: 'editor/context',
|
|
44
44
|
id: MenuId.EditorContext,
|
|
45
|
-
description: ( localize(
|
|
45
|
+
description: ( localize(8591, "The editor context menu"))
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
key: 'editor/context/copy',
|
|
49
49
|
id: MenuId.EditorContextCopy,
|
|
50
|
-
description: ( localize(
|
|
50
|
+
description: ( localize(8592, "'Copy as' submenu in the editor context menu"))
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
key: 'editor/context/share',
|
|
54
54
|
id: MenuId.EditorContextShare,
|
|
55
|
-
description: ( localize(
|
|
55
|
+
description: ( localize(8593, "'Share' submenu in the editor context menu")),
|
|
56
56
|
proposed: 'contribShareMenu'
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
key: 'explorer/context',
|
|
60
60
|
id: MenuId.ExplorerContext,
|
|
61
|
-
description: ( localize(
|
|
61
|
+
description: ( localize(8594, "The file explorer context menu"))
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
key: 'explorer/context/share',
|
|
65
65
|
id: MenuId.ExplorerContextShare,
|
|
66
|
-
description: ( localize(
|
|
66
|
+
description: ( localize(8595, "'Share' submenu in the file explorer context menu")),
|
|
67
67
|
proposed: 'contribShareMenu'
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
key: 'editor/title/context',
|
|
71
71
|
id: MenuId.EditorTitleContext,
|
|
72
|
-
description: ( localize(
|
|
72
|
+
description: ( localize(8596, "The editor tabs context menu"))
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
key: 'editor/title/context/share',
|
|
76
76
|
id: MenuId.EditorTitleContextShare,
|
|
77
|
-
description: ( localize(
|
|
77
|
+
description: ( localize(8597, "'Share' submenu inside the editor title context menu")),
|
|
78
78
|
proposed: 'contribShareMenu'
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
key: 'debug/callstack/context',
|
|
82
82
|
id: MenuId.DebugCallStackContext,
|
|
83
|
-
description: ( localize(
|
|
83
|
+
description: ( localize(8598, "The debug callstack view context menu"))
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
key: 'debug/variables/context',
|
|
87
87
|
id: MenuId.DebugVariablesContext,
|
|
88
|
-
description: ( localize(
|
|
88
|
+
description: ( localize(8599, "The debug variables view context menu"))
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
key: 'debug/toolBar',
|
|
92
92
|
id: MenuId.DebugToolBar,
|
|
93
|
-
description: ( localize(
|
|
93
|
+
description: ( localize(8600, "The debug toolbar menu"))
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
key: 'debug/createConfiguration',
|
|
97
|
+
id: MenuId.DebugCreateConfiguration,
|
|
98
|
+
proposed: 'contribDebugCreateConfiguration',
|
|
99
|
+
description: ( localize(8601, "The debug create configuration menu"))
|
|
94
100
|
},
|
|
95
101
|
{
|
|
96
102
|
key: 'notebook/variables/context',
|
|
97
103
|
id: MenuId.NotebookVariablesContext,
|
|
98
|
-
description: ( localize(
|
|
104
|
+
description: ( localize(8602, "The notebook variables view context menu"))
|
|
99
105
|
},
|
|
100
106
|
{
|
|
101
107
|
key: 'menuBar/home',
|
|
102
108
|
id: MenuId.MenubarHomeMenu,
|
|
103
|
-
description: ( localize(
|
|
109
|
+
description: ( localize(8603, "The home indicator context menu (web only)")),
|
|
104
110
|
proposed: 'contribMenuBarHome',
|
|
105
111
|
supportsSubmenus: false
|
|
106
112
|
},
|
|
107
113
|
{
|
|
108
114
|
key: 'menuBar/edit/copy',
|
|
109
115
|
id: MenuId.MenubarCopy,
|
|
110
|
-
description: ( localize(
|
|
116
|
+
description: ( localize(8604, "'Copy as' submenu in the top level Edit menu"))
|
|
111
117
|
},
|
|
112
118
|
{
|
|
113
119
|
key: 'scm/title',
|
|
114
120
|
id: MenuId.SCMTitle,
|
|
115
|
-
description: ( localize(
|
|
121
|
+
description: ( localize(8605, "The Source Control title menu"))
|
|
116
122
|
},
|
|
117
123
|
{
|
|
118
124
|
key: 'scm/sourceControl',
|
|
119
125
|
id: MenuId.SCMSourceControl,
|
|
120
|
-
description: ( localize(
|
|
126
|
+
description: ( localize(8606, "The Source Control menu"))
|
|
121
127
|
},
|
|
122
128
|
{
|
|
123
129
|
key: 'scm/sourceControl/title',
|
|
124
130
|
id: MenuId.SCMSourceControlTitle,
|
|
125
|
-
description: ( localize(
|
|
131
|
+
description: ( localize(8607, "The Source Control title menu")),
|
|
126
132
|
proposed: 'contribSourceControlTitleMenu'
|
|
127
133
|
},
|
|
128
134
|
{
|
|
129
135
|
key: 'scm/resourceState/context',
|
|
130
136
|
id: MenuId.SCMResourceContext,
|
|
131
|
-
description: ( localize(
|
|
137
|
+
description: ( localize(8608, "The Source Control resource state context menu"))
|
|
132
138
|
},
|
|
133
139
|
{
|
|
134
140
|
key: 'scm/resourceFolder/context',
|
|
135
141
|
id: MenuId.SCMResourceFolderContext,
|
|
136
|
-
description: ( localize(
|
|
142
|
+
description: ( localize(8609, "The Source Control resource folder context menu"))
|
|
137
143
|
},
|
|
138
144
|
{
|
|
139
145
|
key: 'scm/resourceGroup/context',
|
|
140
146
|
id: MenuId.SCMResourceGroupContext,
|
|
141
|
-
description: ( localize(
|
|
147
|
+
description: ( localize(8610, "The Source Control resource group context menu"))
|
|
142
148
|
},
|
|
143
149
|
{
|
|
144
150
|
key: 'scm/change/title',
|
|
145
151
|
id: MenuId.SCMChangeContext,
|
|
146
|
-
description: ( localize(
|
|
152
|
+
description: ( localize(8611, "The Source Control inline change menu"))
|
|
147
153
|
},
|
|
148
154
|
{
|
|
149
155
|
key: 'scm/inputBox',
|
|
150
156
|
id: MenuId.SCMInputBox,
|
|
151
|
-
description: ( localize(
|
|
157
|
+
description: ( localize(8612, "The Source Control input box menu")),
|
|
152
158
|
proposed: 'contribSourceControlInputBoxMenu'
|
|
153
159
|
},
|
|
160
|
+
{
|
|
161
|
+
key: 'scm/history/title',
|
|
162
|
+
id: MenuId.SCMHistoryTitle,
|
|
163
|
+
description: ( localize(8613, "The Source Control History title menu")),
|
|
164
|
+
proposed: 'contribSourceControlHistoryTitleMenu'
|
|
165
|
+
},
|
|
154
166
|
{
|
|
155
167
|
key: 'scm/historyItemChanges/title',
|
|
156
168
|
id: MenuId.SCMChangesSeparator,
|
|
157
|
-
description: ( localize(
|
|
169
|
+
description: ( localize(8614, "The Source Control incoming/outgoing changes title menu")),
|
|
158
170
|
proposed: 'contribSourceControlHistoryItemChangesMenu'
|
|
159
171
|
},
|
|
160
172
|
{
|
|
161
173
|
key: 'scm/historyItem/context',
|
|
162
174
|
id: MenuId.SCMChangesContext,
|
|
163
|
-
description: ( localize(
|
|
175
|
+
description: ( localize(8615, "The Source Control history item context menu")),
|
|
164
176
|
proposed: 'contribSourceControlHistoryItemChangesMenu'
|
|
165
177
|
},
|
|
166
178
|
{
|
|
167
179
|
key: 'scm/incomingChanges',
|
|
168
180
|
id: MenuId.SCMIncomingChanges,
|
|
169
|
-
description: ( localize(
|
|
181
|
+
description: ( localize(8616, "The Source Control incoming changes menu")),
|
|
170
182
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
171
183
|
},
|
|
172
184
|
{
|
|
173
185
|
key: 'scm/incomingChanges/context',
|
|
174
186
|
id: MenuId.SCMIncomingChangesContext,
|
|
175
|
-
description: ( localize(
|
|
187
|
+
description: ( localize(8617, "The Source Control incoming changes context menu")),
|
|
176
188
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
177
189
|
},
|
|
178
190
|
{
|
|
179
191
|
key: 'scm/outgoingChanges',
|
|
180
192
|
id: MenuId.SCMOutgoingChanges,
|
|
181
|
-
description: ( localize(
|
|
193
|
+
description: ( localize(8618, "The Source Control outgoing changes menu")),
|
|
182
194
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
183
195
|
},
|
|
184
196
|
{
|
|
185
197
|
key: 'scm/outgoingChanges/context',
|
|
186
198
|
id: MenuId.SCMOutgoingChangesContext,
|
|
187
|
-
description: ( localize(
|
|
199
|
+
description: ( localize(8619, "The Source Control outgoing changes context menu")),
|
|
188
200
|
proposed: 'contribSourceControlHistoryItemGroupMenu'
|
|
189
201
|
},
|
|
190
202
|
{
|
|
191
203
|
key: 'scm/incomingChanges/allChanges/context',
|
|
192
204
|
id: MenuId.SCMIncomingChangesAllChangesContext,
|
|
193
|
-
description: ( localize(
|
|
205
|
+
description: ( localize(8620, "The Source Control all incoming changes context menu")),
|
|
194
206
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
195
207
|
},
|
|
196
208
|
{
|
|
197
209
|
key: 'scm/incomingChanges/historyItem/context',
|
|
198
210
|
id: MenuId.SCMIncomingChangesHistoryItemContext,
|
|
199
|
-
description: ( localize(
|
|
211
|
+
description: ( localize(8621, "The Source Control incoming changes history item context menu")),
|
|
200
212
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
201
213
|
},
|
|
202
214
|
{
|
|
203
215
|
key: 'scm/outgoingChanges/allChanges/context',
|
|
204
216
|
id: MenuId.SCMOutgoingChangesAllChangesContext,
|
|
205
|
-
description: ( localize(
|
|
217
|
+
description: ( localize(8622, "The Source Control all outgoing changes context menu")),
|
|
206
218
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
207
219
|
},
|
|
208
220
|
{
|
|
209
221
|
key: 'scm/outgoingChanges/historyItem/context',
|
|
210
222
|
id: MenuId.SCMOutgoingChangesHistoryItemContext,
|
|
211
|
-
description: ( localize(
|
|
223
|
+
description: ( localize(8623, "The Source Control outgoing changes history item context menu")),
|
|
212
224
|
proposed: 'contribSourceControlHistoryItemMenu'
|
|
213
225
|
},
|
|
214
226
|
{
|
|
215
227
|
key: 'statusBar/remoteIndicator',
|
|
216
228
|
id: MenuId.StatusBarRemoteIndicatorMenu,
|
|
217
|
-
description: ( localize(
|
|
229
|
+
description: ( localize(8624, "The remote indicator menu in the status bar")),
|
|
218
230
|
supportsSubmenus: false
|
|
219
231
|
},
|
|
220
232
|
{
|
|
221
233
|
key: 'terminal/context',
|
|
222
234
|
id: MenuId.TerminalInstanceContext,
|
|
223
|
-
description: ( localize(
|
|
235
|
+
description: ( localize(8625, "The terminal context menu"))
|
|
224
236
|
},
|
|
225
237
|
{
|
|
226
238
|
key: 'terminal/title/context',
|
|
227
239
|
id: MenuId.TerminalTabContext,
|
|
228
|
-
description: ( localize(
|
|
240
|
+
description: ( localize(8626, "The terminal tabs context menu"))
|
|
229
241
|
},
|
|
230
242
|
{
|
|
231
243
|
key: 'view/title',
|
|
232
244
|
id: MenuId.ViewTitle,
|
|
233
|
-
description: ( localize(
|
|
245
|
+
description: ( localize(8627, "The contributed view title menu"))
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
key: 'viewContainer/title',
|
|
249
|
+
id: MenuId.ViewContainerTitle,
|
|
250
|
+
description: ( localize(8628, "The contributed view container title menu")),
|
|
251
|
+
proposed: 'contribViewContainerTitle'
|
|
234
252
|
},
|
|
235
253
|
{
|
|
236
254
|
key: 'view/item/context',
|
|
237
255
|
id: MenuId.ViewItemContext,
|
|
238
|
-
description: ( localize(
|
|
256
|
+
description: ( localize(8629, "The contributed view item context menu"))
|
|
239
257
|
},
|
|
240
258
|
{
|
|
241
259
|
key: 'comments/comment/editorActions',
|
|
242
260
|
id: MenuId.CommentEditorActions,
|
|
243
|
-
description: ( localize(
|
|
261
|
+
description: ( localize(8630, "The contributed comment editor actions")),
|
|
244
262
|
proposed: 'contribCommentEditorActionsMenu'
|
|
245
263
|
},
|
|
246
264
|
{
|
|
247
265
|
key: 'comments/commentThread/title',
|
|
248
266
|
id: MenuId.CommentThreadTitle,
|
|
249
|
-
description: ( localize(
|
|
267
|
+
description: ( localize(8631, "The contributed comment thread title menu"))
|
|
250
268
|
},
|
|
251
269
|
{
|
|
252
270
|
key: 'comments/commentThread/context',
|
|
253
271
|
id: MenuId.CommentThreadActions,
|
|
254
272
|
description: ( localize(
|
|
255
|
-
|
|
273
|
+
8632,
|
|
256
274
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
257
275
|
)),
|
|
258
276
|
supportsSubmenus: false
|
|
@@ -261,7 +279,7 @@ const apiMenus = [
|
|
|
261
279
|
key: 'comments/commentThread/additionalActions',
|
|
262
280
|
id: MenuId.CommentThreadAdditionalActions,
|
|
263
281
|
description: ( localize(
|
|
264
|
-
|
|
282
|
+
8632,
|
|
265
283
|
"The contributed comment thread context menu, rendered as buttons below the comment editor"
|
|
266
284
|
)),
|
|
267
285
|
supportsSubmenus: false,
|
|
@@ -271,7 +289,7 @@ const apiMenus = [
|
|
|
271
289
|
key: 'comments/commentThread/title/context',
|
|
272
290
|
id: MenuId.CommentThreadTitleContext,
|
|
273
291
|
description: ( localize(
|
|
274
|
-
|
|
292
|
+
8633,
|
|
275
293
|
"The contributed comment thread title's peek context menu, rendered as a right click menu on the comment thread's peek title."
|
|
276
294
|
)),
|
|
277
295
|
proposed: 'contribCommentPeekContext'
|
|
@@ -279,13 +297,13 @@ const apiMenus = [
|
|
|
279
297
|
{
|
|
280
298
|
key: 'comments/comment/title',
|
|
281
299
|
id: MenuId.CommentTitle,
|
|
282
|
-
description: ( localize(
|
|
300
|
+
description: ( localize(8634, "The contributed comment title menu"))
|
|
283
301
|
},
|
|
284
302
|
{
|
|
285
303
|
key: 'comments/comment/context',
|
|
286
304
|
id: MenuId.CommentActions,
|
|
287
305
|
description: ( localize(
|
|
288
|
-
|
|
306
|
+
8635,
|
|
289
307
|
"The contributed comment context menu, rendered as buttons below the comment editor"
|
|
290
308
|
)),
|
|
291
309
|
supportsSubmenus: false
|
|
@@ -294,7 +312,7 @@ const apiMenus = [
|
|
|
294
312
|
key: 'comments/commentThread/comment/context',
|
|
295
313
|
id: MenuId.CommentThreadCommentContext,
|
|
296
314
|
description: ( localize(
|
|
297
|
-
|
|
315
|
+
8636,
|
|
298
316
|
"The contributed comment context menu, rendered as a right click menu on the an individual comment in the comment thread's peek view."
|
|
299
317
|
)),
|
|
300
318
|
proposed: 'contribCommentPeekContext'
|
|
@@ -302,173 +320,173 @@ const apiMenus = [
|
|
|
302
320
|
{
|
|
303
321
|
key: 'commentsView/commentThread/context',
|
|
304
322
|
id: MenuId.CommentsViewThreadActions,
|
|
305
|
-
description: ( localize(
|
|
323
|
+
description: ( localize(8637, "The contributed comment thread context menu in the comments view")),
|
|
306
324
|
proposed: 'contribCommentsViewThreadMenus'
|
|
307
325
|
},
|
|
308
326
|
{
|
|
309
327
|
key: 'notebook/toolbar',
|
|
310
328
|
id: MenuId.NotebookToolbar,
|
|
311
|
-
description: ( localize(
|
|
329
|
+
description: ( localize(8638, "The contributed notebook toolbar menu"))
|
|
312
330
|
},
|
|
313
331
|
{
|
|
314
332
|
key: 'notebook/kernelSource',
|
|
315
333
|
id: MenuId.NotebookKernelSource,
|
|
316
|
-
description: ( localize(
|
|
334
|
+
description: ( localize(8639, "The contributed notebook kernel sources menu")),
|
|
317
335
|
proposed: 'notebookKernelSource'
|
|
318
336
|
},
|
|
319
337
|
{
|
|
320
338
|
key: 'notebook/cell/title',
|
|
321
339
|
id: MenuId.NotebookCellTitle,
|
|
322
|
-
description: ( localize(
|
|
340
|
+
description: ( localize(8640, "The contributed notebook cell title menu"))
|
|
323
341
|
},
|
|
324
342
|
{
|
|
325
343
|
key: 'notebook/cell/execute',
|
|
326
344
|
id: MenuId.NotebookCellExecute,
|
|
327
|
-
description: ( localize(
|
|
345
|
+
description: ( localize(8641, "The contributed notebook cell execution menu"))
|
|
328
346
|
},
|
|
329
347
|
{
|
|
330
348
|
key: 'interactive/toolbar',
|
|
331
349
|
id: MenuId.InteractiveToolbar,
|
|
332
|
-
description: ( localize(
|
|
350
|
+
description: ( localize(8642, "The contributed interactive toolbar menu")),
|
|
333
351
|
},
|
|
334
352
|
{
|
|
335
353
|
key: 'interactive/cell/title',
|
|
336
354
|
id: MenuId.InteractiveCellTitle,
|
|
337
|
-
description: ( localize(
|
|
355
|
+
description: ( localize(8643, "The contributed interactive cell title menu")),
|
|
338
356
|
},
|
|
339
357
|
{
|
|
340
358
|
key: 'issue/reporter',
|
|
341
359
|
id: MenuId.IssueReporter,
|
|
342
|
-
description: ( localize(
|
|
360
|
+
description: ( localize(8644, "The contributed issue reporter menu")),
|
|
343
361
|
proposed: 'contribIssueReporter'
|
|
344
362
|
},
|
|
345
363
|
{
|
|
346
364
|
key: 'testing/item/context',
|
|
347
365
|
id: MenuId.TestItem,
|
|
348
|
-
description: ( localize(
|
|
366
|
+
description: ( localize(8645, "The contributed test item menu")),
|
|
349
367
|
},
|
|
350
368
|
{
|
|
351
369
|
key: 'testing/item/gutter',
|
|
352
370
|
id: MenuId.TestItemGutter,
|
|
353
|
-
description: ( localize(
|
|
371
|
+
description: ( localize(8646, "The menu for a gutter decoration for a test item")),
|
|
354
372
|
},
|
|
355
373
|
{
|
|
356
374
|
key: 'testing/profiles/context',
|
|
357
375
|
id: MenuId.TestProfilesContext,
|
|
358
|
-
description: ( localize(
|
|
376
|
+
description: ( localize(8647, "The menu for configuring testing profiles.")),
|
|
359
377
|
},
|
|
360
378
|
{
|
|
361
379
|
key: 'testing/item/result',
|
|
362
380
|
id: MenuId.TestPeekElement,
|
|
363
|
-
description: ( localize(
|
|
381
|
+
description: ( localize(8648, "The menu for an item in the Test Results view or peek.")),
|
|
364
382
|
},
|
|
365
383
|
{
|
|
366
384
|
key: 'testing/message/context',
|
|
367
385
|
id: MenuId.TestMessageContext,
|
|
368
386
|
description: ( localize(
|
|
369
|
-
|
|
387
|
+
8649,
|
|
370
388
|
"A prominent button overlaying editor content where the message is displayed"
|
|
371
389
|
)),
|
|
372
390
|
},
|
|
373
391
|
{
|
|
374
392
|
key: 'testing/message/content',
|
|
375
393
|
id: MenuId.TestMessageContent,
|
|
376
|
-
description: ( localize(
|
|
394
|
+
description: ( localize(8650, "Context menu for the message in the results tree")),
|
|
377
395
|
},
|
|
378
396
|
{
|
|
379
397
|
key: 'extension/context',
|
|
380
398
|
id: MenuId.ExtensionContext,
|
|
381
|
-
description: ( localize(
|
|
399
|
+
description: ( localize(8651, "The extension context menu"))
|
|
382
400
|
},
|
|
383
401
|
{
|
|
384
402
|
key: 'timeline/title',
|
|
385
403
|
id: MenuId.TimelineTitle,
|
|
386
|
-
description: ( localize(
|
|
404
|
+
description: ( localize(8652, "The Timeline view title menu"))
|
|
387
405
|
},
|
|
388
406
|
{
|
|
389
407
|
key: 'timeline/item/context',
|
|
390
408
|
id: MenuId.TimelineItemContext,
|
|
391
|
-
description: ( localize(
|
|
409
|
+
description: ( localize(8653, "The Timeline view item context menu"))
|
|
392
410
|
},
|
|
393
411
|
{
|
|
394
412
|
key: 'ports/item/context',
|
|
395
413
|
id: MenuId.TunnelContext,
|
|
396
|
-
description: ( localize(
|
|
414
|
+
description: ( localize(8654, "The Ports view item context menu"))
|
|
397
415
|
},
|
|
398
416
|
{
|
|
399
417
|
key: 'ports/item/origin/inline',
|
|
400
418
|
id: MenuId.TunnelOriginInline,
|
|
401
|
-
description: ( localize(
|
|
419
|
+
description: ( localize(8655, "The Ports view item origin inline menu"))
|
|
402
420
|
},
|
|
403
421
|
{
|
|
404
422
|
key: 'ports/item/port/inline',
|
|
405
423
|
id: MenuId.TunnelPortInline,
|
|
406
|
-
description: ( localize(
|
|
424
|
+
description: ( localize(8656, "The Ports view item port inline menu"))
|
|
407
425
|
},
|
|
408
426
|
{
|
|
409
427
|
key: 'file/newFile',
|
|
410
428
|
id: MenuId.NewFile,
|
|
411
|
-
description: ( localize(
|
|
429
|
+
description: ( localize(8657, "The 'New File...' quick pick, shown on welcome page and File menu.")),
|
|
412
430
|
supportsSubmenus: false,
|
|
413
431
|
},
|
|
414
432
|
{
|
|
415
433
|
key: 'webview/context',
|
|
416
434
|
id: MenuId.WebviewContext,
|
|
417
|
-
description: ( localize(
|
|
435
|
+
description: ( localize(8658, "The webview context menu"))
|
|
418
436
|
},
|
|
419
437
|
{
|
|
420
438
|
key: 'file/share',
|
|
421
439
|
id: MenuId.MenubarShare,
|
|
422
|
-
description: ( localize(
|
|
440
|
+
description: ( localize(8659, "Share submenu shown in the top level File menu.")),
|
|
423
441
|
proposed: 'contribShareMenu'
|
|
424
442
|
},
|
|
425
443
|
{
|
|
426
444
|
key: 'editor/inlineCompletions/actions',
|
|
427
445
|
id: MenuId.InlineCompletionsActions,
|
|
428
|
-
description: ( localize(
|
|
446
|
+
description: ( localize(8660, "The actions shown when hovering on an inline completion")),
|
|
429
447
|
supportsSubmenus: false,
|
|
430
448
|
proposed: 'inlineCompletionsAdditions'
|
|
431
449
|
},
|
|
432
450
|
{
|
|
433
451
|
key: 'editor/inlineEdit/actions',
|
|
434
452
|
id: MenuId.InlineEditActions,
|
|
435
|
-
description: ( localize(
|
|
453
|
+
description: ( localize(8661, "The actions shown when hovering on an inline edit")),
|
|
436
454
|
supportsSubmenus: false,
|
|
437
455
|
proposed: 'inlineEdit'
|
|
438
456
|
},
|
|
439
457
|
{
|
|
440
458
|
key: 'editor/content',
|
|
441
459
|
id: MenuId.EditorContent,
|
|
442
|
-
description: ( localize(
|
|
460
|
+
description: ( localize(8662, "The prominent button in an editor, overlays its content")),
|
|
443
461
|
proposed: 'contribEditorContentMenu'
|
|
444
462
|
},
|
|
445
463
|
{
|
|
446
464
|
key: 'editor/lineNumber/context',
|
|
447
465
|
id: MenuId.EditorLineNumberContext,
|
|
448
|
-
description: ( localize(
|
|
466
|
+
description: ( localize(8663, "The contributed editor line number context menu"))
|
|
449
467
|
},
|
|
450
468
|
{
|
|
451
469
|
key: 'mergeEditor/result/title',
|
|
452
470
|
id: MenuId.MergeInputResultToolbar,
|
|
453
|
-
description: ( localize(
|
|
471
|
+
description: ( localize(8664, "The result toolbar of the merge editor")),
|
|
454
472
|
proposed: 'contribMergeEditorMenus'
|
|
455
473
|
},
|
|
456
474
|
{
|
|
457
475
|
key: 'multiDiffEditor/resource/title',
|
|
458
476
|
id: MenuId.MultiDiffEditorFileToolbar,
|
|
459
|
-
description: ( localize(
|
|
477
|
+
description: ( localize(8665, "The resource toolbar in the multi diff editor")),
|
|
460
478
|
proposed: 'contribMultiDiffEditorMenus'
|
|
461
479
|
},
|
|
462
480
|
{
|
|
463
481
|
key: 'diffEditor/gutter/hunk',
|
|
464
482
|
id: MenuId.DiffEditorHunkToolbar,
|
|
465
|
-
description: ( localize(
|
|
483
|
+
description: ( localize(8666, "The gutter toolbar in the diff editor")),
|
|
466
484
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
467
485
|
},
|
|
468
486
|
{
|
|
469
487
|
key: 'diffEditor/gutter/selection',
|
|
470
488
|
id: MenuId.DiffEditorSelectionToolbar,
|
|
471
|
-
description: ( localize(
|
|
489
|
+
description: ( localize(8666, "The gutter toolbar in the diff editor")),
|
|
472
490
|
proposed: 'contribDiffEditorGutterToolBarMenus'
|
|
473
491
|
}
|
|
474
492
|
];
|
|
@@ -481,22 +499,22 @@ var schema;
|
|
|
481
499
|
function isValidMenuItem(item, collector) {
|
|
482
500
|
if (typeof item.command !== 'string') {
|
|
483
501
|
collector.error(( localize(
|
|
484
|
-
|
|
502
|
+
8667,
|
|
485
503
|
"property `{0}` is mandatory and must be of type `string`",
|
|
486
504
|
'command'
|
|
487
505
|
)));
|
|
488
506
|
return false;
|
|
489
507
|
}
|
|
490
508
|
if (item.alt && typeof item.alt !== 'string') {
|
|
491
|
-
collector.error(( localize(
|
|
509
|
+
collector.error(( localize(8668, "property `{0}` can be omitted or must be of type `string`", 'alt')));
|
|
492
510
|
return false;
|
|
493
511
|
}
|
|
494
512
|
if (item.when && typeof item.when !== 'string') {
|
|
495
|
-
collector.error(( localize(
|
|
513
|
+
collector.error(( localize(8668, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
496
514
|
return false;
|
|
497
515
|
}
|
|
498
516
|
if (item.group && typeof item.group !== 'string') {
|
|
499
|
-
collector.error(( localize(
|
|
517
|
+
collector.error(( localize(8668, "property `{0}` can be omitted or must be of type `string`", 'group')));
|
|
500
518
|
return false;
|
|
501
519
|
}
|
|
502
520
|
return true;
|
|
@@ -505,18 +523,18 @@ var schema;
|
|
|
505
523
|
function isValidSubmenuItem(item, collector) {
|
|
506
524
|
if (typeof item.submenu !== 'string') {
|
|
507
525
|
collector.error(( localize(
|
|
508
|
-
|
|
526
|
+
8667,
|
|
509
527
|
"property `{0}` is mandatory and must be of type `string`",
|
|
510
528
|
'submenu'
|
|
511
529
|
)));
|
|
512
530
|
return false;
|
|
513
531
|
}
|
|
514
532
|
if (item.when && typeof item.when !== 'string') {
|
|
515
|
-
collector.error(( localize(
|
|
533
|
+
collector.error(( localize(8668, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
516
534
|
return false;
|
|
517
535
|
}
|
|
518
536
|
if (item.group && typeof item.group !== 'string') {
|
|
519
|
-
collector.error(( localize(
|
|
537
|
+
collector.error(( localize(8668, "property `{0}` can be omitted or must be of type `string`", 'group')));
|
|
520
538
|
return false;
|
|
521
539
|
}
|
|
522
540
|
return true;
|
|
@@ -524,7 +542,7 @@ var schema;
|
|
|
524
542
|
schema.isValidSubmenuItem = isValidSubmenuItem;
|
|
525
543
|
function isValidItems(items, collector) {
|
|
526
544
|
if (!Array.isArray(items)) {
|
|
527
|
-
collector.error(( localize(
|
|
545
|
+
collector.error(( localize(8669, "submenu items must be an array")));
|
|
528
546
|
return false;
|
|
529
547
|
}
|
|
530
548
|
for (const item of items) {
|
|
@@ -544,15 +562,15 @@ var schema;
|
|
|
544
562
|
schema.isValidItems = isValidItems;
|
|
545
563
|
function isValidSubmenu(submenu, collector) {
|
|
546
564
|
if (typeof submenu !== 'object') {
|
|
547
|
-
collector.error(( localize(
|
|
565
|
+
collector.error(( localize(8670, "submenu items must be an object")));
|
|
548
566
|
return false;
|
|
549
567
|
}
|
|
550
568
|
if (typeof submenu.id !== 'string') {
|
|
551
|
-
collector.error(( localize(
|
|
569
|
+
collector.error(( localize(8667, "property `{0}` is mandatory and must be of type `string`", 'id')));
|
|
552
570
|
return false;
|
|
553
571
|
}
|
|
554
572
|
if (typeof submenu.label !== 'string') {
|
|
555
|
-
collector.error(( localize(
|
|
573
|
+
collector.error(( localize(8667, "property `{0}` is mandatory and must be of type `string`", 'label')));
|
|
556
574
|
return false;
|
|
557
575
|
}
|
|
558
576
|
return true;
|
|
@@ -564,24 +582,24 @@ var schema;
|
|
|
564
582
|
properties: {
|
|
565
583
|
command: {
|
|
566
584
|
description: ( localize(
|
|
567
|
-
|
|
585
|
+
8671,
|
|
568
586
|
'Identifier of the command to execute. The command must be declared in the \'commands\'-section'
|
|
569
587
|
)),
|
|
570
588
|
type: 'string'
|
|
571
589
|
},
|
|
572
590
|
alt: {
|
|
573
591
|
description: ( localize(
|
|
574
|
-
|
|
592
|
+
8672,
|
|
575
593
|
'Identifier of an alternative command to execute. The command must be declared in the \'commands\'-section'
|
|
576
594
|
)),
|
|
577
595
|
type: 'string'
|
|
578
596
|
},
|
|
579
597
|
when: {
|
|
580
|
-
description: ( localize(
|
|
598
|
+
description: ( localize(8673, 'Condition which must be true to show this item')),
|
|
581
599
|
type: 'string'
|
|
582
600
|
},
|
|
583
601
|
group: {
|
|
584
|
-
description: ( localize(
|
|
602
|
+
description: ( localize(8674, 'Group into which this item belongs')),
|
|
585
603
|
type: 'string'
|
|
586
604
|
}
|
|
587
605
|
}
|
|
@@ -591,15 +609,15 @@ var schema;
|
|
|
591
609
|
required: ['submenu'],
|
|
592
610
|
properties: {
|
|
593
611
|
submenu: {
|
|
594
|
-
description: ( localize(
|
|
612
|
+
description: ( localize(8675, 'Identifier of the submenu to display in this item.')),
|
|
595
613
|
type: 'string'
|
|
596
614
|
},
|
|
597
615
|
when: {
|
|
598
|
-
description: ( localize(
|
|
616
|
+
description: ( localize(8673, 'Condition which must be true to show this item')),
|
|
599
617
|
type: 'string'
|
|
600
618
|
},
|
|
601
619
|
group: {
|
|
602
|
-
description: ( localize(
|
|
620
|
+
description: ( localize(8674, 'Group into which this item belongs')),
|
|
603
621
|
type: 'string'
|
|
604
622
|
}
|
|
605
623
|
}
|
|
@@ -609,16 +627,16 @@ var schema;
|
|
|
609
627
|
required: ['id', 'label'],
|
|
610
628
|
properties: {
|
|
611
629
|
id: {
|
|
612
|
-
description: ( localize(
|
|
630
|
+
description: ( localize(8676, 'Identifier of the menu to display as a submenu.')),
|
|
613
631
|
type: 'string'
|
|
614
632
|
},
|
|
615
633
|
label: {
|
|
616
|
-
description: ( localize(
|
|
634
|
+
description: ( localize(8677, 'The label of the menu item which leads to this submenu.')),
|
|
617
635
|
type: 'string'
|
|
618
636
|
},
|
|
619
637
|
icon: {
|
|
620
638
|
description: ( localize(
|
|
621
|
-
|
|
639
|
+
8678,
|
|
622
640
|
'(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)`'
|
|
623
641
|
)),
|
|
624
642
|
anyOf: [{
|
|
@@ -628,11 +646,11 @@ var schema;
|
|
|
628
646
|
type: 'object',
|
|
629
647
|
properties: {
|
|
630
648
|
light: {
|
|
631
|
-
description: ( localize(
|
|
649
|
+
description: ( localize(8679, 'Icon path when a light theme is used')),
|
|
632
650
|
type: 'string'
|
|
633
651
|
},
|
|
634
652
|
dark: {
|
|
635
|
-
description: ( localize(
|
|
653
|
+
description: ( localize(8680, 'Icon path when a dark theme is used')),
|
|
636
654
|
type: 'string'
|
|
637
655
|
}
|
|
638
656
|
}
|
|
@@ -641,11 +659,11 @@ var schema;
|
|
|
641
659
|
}
|
|
642
660
|
};
|
|
643
661
|
schema.menusContribution = {
|
|
644
|
-
description: ( localize(
|
|
662
|
+
description: ( localize(8681, "Contributes menu items to the editor")),
|
|
645
663
|
type: 'object',
|
|
646
664
|
properties: index(apiMenus, menu => menu.key, menu => ({
|
|
647
665
|
markdownDescription: menu.proposed ? ( localize(
|
|
648
|
-
|
|
666
|
+
8682,
|
|
649
667
|
"Proposed API, requires `enabledApiProposal: [\"{0}\"]` - {1}",
|
|
650
668
|
menu.proposed,
|
|
651
669
|
menu.description
|
|
@@ -660,18 +678,18 @@ var schema;
|
|
|
660
678
|
}
|
|
661
679
|
};
|
|
662
680
|
schema.submenusContribution = {
|
|
663
|
-
description: ( localize(
|
|
681
|
+
description: ( localize(8683, "Contributes submenu items to the editor")),
|
|
664
682
|
type: 'array',
|
|
665
683
|
items: submenu
|
|
666
684
|
};
|
|
667
685
|
function isValidCommand(command, collector) {
|
|
668
686
|
if (!command) {
|
|
669
|
-
collector.error(( localize(
|
|
687
|
+
collector.error(( localize(8684, "expected non-empty value.")));
|
|
670
688
|
return false;
|
|
671
689
|
}
|
|
672
690
|
if (isFalsyOrWhitespace(command.command)) {
|
|
673
691
|
collector.error(( localize(
|
|
674
|
-
|
|
692
|
+
8667,
|
|
675
693
|
"property `{0}` is mandatory and must be of type `string`",
|
|
676
694
|
'command'
|
|
677
695
|
)));
|
|
@@ -685,7 +703,7 @@ var schema;
|
|
|
685
703
|
}
|
|
686
704
|
if (command.enablement && typeof command.enablement !== 'string') {
|
|
687
705
|
collector.error(( localize(
|
|
688
|
-
|
|
706
|
+
8668,
|
|
689
707
|
"property `{0}` can be omitted or must be of type `string`",
|
|
690
708
|
'precondition'
|
|
691
709
|
)));
|
|
@@ -711,7 +729,7 @@ var schema;
|
|
|
711
729
|
return true;
|
|
712
730
|
}
|
|
713
731
|
collector.error(( localize(
|
|
714
|
-
|
|
732
|
+
8685,
|
|
715
733
|
"property `icon` can be omitted or must be either a string or a literal like `{dark, light}`"
|
|
716
734
|
)));
|
|
717
735
|
return false;
|
|
@@ -719,7 +737,7 @@ var schema;
|
|
|
719
737
|
function isValidLocalizedString(localized, collector, propertyName) {
|
|
720
738
|
if (typeof localized === 'undefined') {
|
|
721
739
|
collector.error(( localize(
|
|
722
|
-
|
|
740
|
+
8686,
|
|
723
741
|
"property `{0}` is mandatory and must be of type `string` or `object`",
|
|
724
742
|
propertyName
|
|
725
743
|
)));
|
|
@@ -727,7 +745,7 @@ var schema;
|
|
|
727
745
|
}
|
|
728
746
|
else if (typeof localized === 'string' && isFalsyOrWhitespace(localized)) {
|
|
729
747
|
collector.error(( localize(
|
|
730
|
-
|
|
748
|
+
8667,
|
|
731
749
|
"property `{0}` is mandatory and must be of type `string`",
|
|
732
750
|
propertyName
|
|
733
751
|
)));
|
|
@@ -735,7 +753,7 @@ var schema;
|
|
|
735
753
|
}
|
|
736
754
|
else if (typeof localized !== 'string' && (isFalsyOrWhitespace(localized.original) || isFalsyOrWhitespace(localized.value))) {
|
|
737
755
|
collector.error(( localize(
|
|
738
|
-
|
|
756
|
+
8687,
|
|
739
757
|
"properties `{0}` and `{1}` are mandatory and must be of type `string`",
|
|
740
758
|
`${propertyName}.value`,
|
|
741
759
|
`${propertyName}.original`
|
|
@@ -749,37 +767,37 @@ var schema;
|
|
|
749
767
|
required: ['command', 'title'],
|
|
750
768
|
properties: {
|
|
751
769
|
command: {
|
|
752
|
-
description: ( localize(
|
|
770
|
+
description: ( localize(8688, 'Identifier of the command to execute')),
|
|
753
771
|
type: 'string'
|
|
754
772
|
},
|
|
755
773
|
title: {
|
|
756
|
-
description: ( localize(
|
|
774
|
+
description: ( localize(8689, 'Title by which the command is represented in the UI')),
|
|
757
775
|
type: 'string'
|
|
758
776
|
},
|
|
759
777
|
shortTitle: {
|
|
760
778
|
markdownDescription: ( localize(
|
|
761
|
-
|
|
779
|
+
8690,
|
|
762
780
|
'(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.'
|
|
763
781
|
)),
|
|
764
782
|
type: 'string'
|
|
765
783
|
},
|
|
766
784
|
category: {
|
|
767
785
|
description: ( localize(
|
|
768
|
-
|
|
786
|
+
8691,
|
|
769
787
|
'(Optional) Category string by which the command is grouped in the UI'
|
|
770
788
|
)),
|
|
771
789
|
type: 'string'
|
|
772
790
|
},
|
|
773
791
|
enablement: {
|
|
774
792
|
description: ( localize(
|
|
775
|
-
|
|
793
|
+
8692,
|
|
776
794
|
'(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.'
|
|
777
795
|
)),
|
|
778
796
|
type: 'string'
|
|
779
797
|
},
|
|
780
798
|
icon: {
|
|
781
799
|
description: ( localize(
|
|
782
|
-
|
|
800
|
+
8693,
|
|
783
801
|
'(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)`'
|
|
784
802
|
)),
|
|
785
803
|
anyOf: [{
|
|
@@ -789,11 +807,11 @@ var schema;
|
|
|
789
807
|
type: 'object',
|
|
790
808
|
properties: {
|
|
791
809
|
light: {
|
|
792
|
-
description: ( localize(
|
|
810
|
+
description: ( localize(8694, 'Icon path when a light theme is used')),
|
|
793
811
|
type: 'string'
|
|
794
812
|
},
|
|
795
813
|
dark: {
|
|
796
|
-
description: ( localize(
|
|
814
|
+
description: ( localize(8695, 'Icon path when a dark theme is used')),
|
|
797
815
|
type: 'string'
|
|
798
816
|
}
|
|
799
817
|
}
|
|
@@ -802,7 +820,7 @@ var schema;
|
|
|
802
820
|
}
|
|
803
821
|
};
|
|
804
822
|
schema.commandsContribution = {
|
|
805
|
-
description: ( localize(
|
|
823
|
+
description: ( localize(8696, "Contributes commands to the command palette.")),
|
|
806
824
|
oneOf: [
|
|
807
825
|
commandType,
|
|
808
826
|
{
|
|
@@ -846,7 +864,7 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
846
864
|
if (existingCmd) {
|
|
847
865
|
if (existingCmd.source) {
|
|
848
866
|
extension.collector.info(( localize(
|
|
849
|
-
|
|
867
|
+
8697,
|
|
850
868
|
"Command `{0}` already registered by {1} ({2})",
|
|
851
869
|
userFriendlyCommand.command,
|
|
852
870
|
existingCmd.source.title,
|
|
@@ -854,7 +872,7 @@ commandsExtensionPoint.setHandler(extensions => {
|
|
|
854
872
|
)));
|
|
855
873
|
}
|
|
856
874
|
else {
|
|
857
|
-
extension.collector.info(( localize(
|
|
875
|
+
extension.collector.info(( localize(8698, "Command `{0}` already registered", userFriendlyCommand.command)));
|
|
858
876
|
}
|
|
859
877
|
}
|
|
860
878
|
_commandRegistrations.add(MenuRegistry.addCommand({
|
|
@@ -895,19 +913,19 @@ submenusExtensionPoint.setHandler(extensions => {
|
|
|
895
913
|
continue;
|
|
896
914
|
}
|
|
897
915
|
if (!submenuInfo.id) {
|
|
898
|
-
collector.warn(( localize(
|
|
916
|
+
collector.warn(( localize(8699, "`{0}` is not a valid submenu identifier", submenuInfo.id)));
|
|
899
917
|
continue;
|
|
900
918
|
}
|
|
901
919
|
if (( (_submenus.has(submenuInfo.id)))) {
|
|
902
920
|
collector.info(( localize(
|
|
903
|
-
|
|
921
|
+
8700,
|
|
904
922
|
"The `{0}` submenu was already previously registered.",
|
|
905
923
|
submenuInfo.id
|
|
906
924
|
)));
|
|
907
925
|
continue;
|
|
908
926
|
}
|
|
909
927
|
if (!submenuInfo.label) {
|
|
910
|
-
collector.warn(( localize(
|
|
928
|
+
collector.warn(( localize(8701, "`{0}` is not a valid submenu label", submenuInfo.label)));
|
|
911
929
|
continue;
|
|
912
930
|
}
|
|
913
931
|
let absoluteIcon;
|
|
@@ -964,7 +982,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
964
982
|
}
|
|
965
983
|
if (menu.proposed && !isProposedApiEnabled(extension.description, menu.proposed)) {
|
|
966
984
|
collector.error(( localize(
|
|
967
|
-
|
|
985
|
+
8702,
|
|
968
986
|
"{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}",
|
|
969
987
|
entry[0],
|
|
970
988
|
menu.proposed,
|
|
@@ -979,7 +997,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
979
997
|
const alt = menuItem.alt && MenuRegistry.getCommand(menuItem.alt) || undefined;
|
|
980
998
|
if (!command) {
|
|
981
999
|
collector.error(( localize(
|
|
982
|
-
|
|
1000
|
+
8703,
|
|
983
1001
|
"Menu item references a command `{0}` which is not defined in the 'commands' section.",
|
|
984
1002
|
menuItem.command
|
|
985
1003
|
)));
|
|
@@ -987,20 +1005,20 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
987
1005
|
}
|
|
988
1006
|
if (menuItem.alt && !alt) {
|
|
989
1007
|
collector.warn(( localize(
|
|
990
|
-
|
|
1008
|
+
8704,
|
|
991
1009
|
"Menu item references an alt-command `{0}` which is not defined in the 'commands' section.",
|
|
992
1010
|
menuItem.alt
|
|
993
1011
|
)));
|
|
994
1012
|
}
|
|
995
1013
|
if (menuItem.command === menuItem.alt) {
|
|
996
|
-
collector.info(( localize(
|
|
1014
|
+
collector.info(( localize(8705, "Menu item references the same command as default and alt-command")));
|
|
997
1015
|
}
|
|
998
1016
|
item = { command, alt, group: undefined, order: undefined, when: undefined };
|
|
999
1017
|
}
|
|
1000
1018
|
else {
|
|
1001
1019
|
if (menu.supportsSubmenus === false) {
|
|
1002
1020
|
collector.error(( localize(
|
|
1003
|
-
|
|
1021
|
+
8706,
|
|
1004
1022
|
"Menu item references a submenu for a menu which doesn't have submenu support."
|
|
1005
1023
|
)));
|
|
1006
1024
|
continue;
|
|
@@ -1008,7 +1026,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1008
1026
|
const submenu = _submenus.get(menuItem.submenu);
|
|
1009
1027
|
if (!submenu) {
|
|
1010
1028
|
collector.error(( localize(
|
|
1011
|
-
|
|
1029
|
+
8707,
|
|
1012
1030
|
"Menu item references a submenu `{0}` which is not defined in the 'submenus' section.",
|
|
1013
1031
|
menuItem.submenu
|
|
1014
1032
|
)));
|
|
@@ -1021,7 +1039,7 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1021
1039
|
}
|
|
1022
1040
|
if (( (submenuRegistrations.has(submenu.id.id)))) {
|
|
1023
1041
|
collector.warn(( localize(
|
|
1024
|
-
|
|
1042
|
+
8708,
|
|
1025
1043
|
"The `{0}` submenu was already contributed to the `{1}` menu.",
|
|
1026
1044
|
menuItem.submenu,
|
|
1027
1045
|
entry[0]
|
|
@@ -1041,6 +1059,16 @@ menusExtensionPoint.setHandler(extensions => {
|
|
|
1041
1059
|
item.group = menuItem.group;
|
|
1042
1060
|
}
|
|
1043
1061
|
}
|
|
1062
|
+
if (menu.id === MenuId.ViewContainerTitle && !menuItem.when?.includes('viewContainer == workbench.view.debug')) {
|
|
1063
|
+
collector.error(( localize(
|
|
1064
|
+
8709,
|
|
1065
|
+
"The {0} menu contribution must check {1} in its {2} clause.",
|
|
1066
|
+
'`viewContainer/title`',
|
|
1067
|
+
'`viewContainer == workbench.view.debug`',
|
|
1068
|
+
'"when"'
|
|
1069
|
+
)));
|
|
1070
|
+
continue;
|
|
1071
|
+
}
|
|
1044
1072
|
item.when = ContextKeyExpr.deserialize(menuItem.when);
|
|
1045
1073
|
_menuRegistrations.add(MenuRegistry.appendMenuItem(menu.id, item));
|
|
1046
1074
|
}
|
|
@@ -1101,10 +1129,10 @@ let CommandsTableRenderer = class CommandsTableRenderer extends Disposable {
|
|
|
1101
1129
|
return { data: { headers: [], rows: [] }, dispose: () => { } };
|
|
1102
1130
|
}
|
|
1103
1131
|
const headers = [
|
|
1104
|
-
( localize(
|
|
1105
|
-
( localize(
|
|
1106
|
-
( localize(
|
|
1107
|
-
( localize(
|
|
1132
|
+
( localize(8710, "ID")),
|
|
1133
|
+
( localize(8711, "Title")),
|
|
1134
|
+
( localize(8712, "Keyboard Shortcuts")),
|
|
1135
|
+
( localize(8713, "Menu Contexts"))
|
|
1108
1136
|
];
|
|
1109
1137
|
const rows = ( (commands.sort((a, b) => a.id.localeCompare(b.id))
|
|
1110
1138
|
.map(command => {
|
|
@@ -1144,7 +1172,7 @@ CommandsTableRenderer = ( (__decorate([
|
|
|
1144
1172
|
], CommandsTableRenderer)));
|
|
1145
1173
|
( (Registry.as(Extensions.ExtensionFeaturesRegistry))).registerExtensionFeature({
|
|
1146
1174
|
id: 'commands',
|
|
1147
|
-
label: ( localize(
|
|
1175
|
+
label: ( localize(8714, "Commands")),
|
|
1148
1176
|
access: {
|
|
1149
1177
|
canToggle: false,
|
|
1150
1178
|
},
|
|
@@ -48,35 +48,35 @@ import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/use
|
|
|
48
48
|
var WorkbenchKeybindingService_1;
|
|
49
49
|
function isValidContributedKeyBinding(keyBinding, rejects) {
|
|
50
50
|
if (!keyBinding) {
|
|
51
|
-
rejects.push(( localize(
|
|
51
|
+
rejects.push(( localize(3501, "expected non-empty value.")));
|
|
52
52
|
return false;
|
|
53
53
|
}
|
|
54
54
|
if (typeof keyBinding.command !== 'string') {
|
|
55
55
|
rejects.push(( localize(
|
|
56
|
-
|
|
56
|
+
3502,
|
|
57
57
|
"property `{0}` is mandatory and must be of type `string`",
|
|
58
58
|
'command'
|
|
59
59
|
)));
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
if (keyBinding.key && typeof keyBinding.key !== 'string') {
|
|
63
|
-
rejects.push(( localize(
|
|
63
|
+
rejects.push(( localize(3503, "property `{0}` can be omitted or must be of type `string`", 'key')));
|
|
64
64
|
return false;
|
|
65
65
|
}
|
|
66
66
|
if (keyBinding.when && typeof keyBinding.when !== 'string') {
|
|
67
|
-
rejects.push(( localize(
|
|
67
|
+
rejects.push(( localize(3503, "property `{0}` can be omitted or must be of type `string`", 'when')));
|
|
68
68
|
return false;
|
|
69
69
|
}
|
|
70
70
|
if (keyBinding.mac && typeof keyBinding.mac !== 'string') {
|
|
71
|
-
rejects.push(( localize(
|
|
71
|
+
rejects.push(( localize(3503, "property `{0}` can be omitted or must be of type `string`", 'mac')));
|
|
72
72
|
return false;
|
|
73
73
|
}
|
|
74
74
|
if (keyBinding.linux && typeof keyBinding.linux !== 'string') {
|
|
75
|
-
rejects.push(( localize(
|
|
75
|
+
rejects.push(( localize(3503, "property `{0}` can be omitted or must be of type `string`", 'linux')));
|
|
76
76
|
return false;
|
|
77
77
|
}
|
|
78
78
|
if (keyBinding.win && typeof keyBinding.win !== 'string') {
|
|
79
|
-
rejects.push(( localize(
|
|
79
|
+
rejects.push(( localize(3503, "property `{0}` can be omitted or must be of type `string`", 'win')));
|
|
80
80
|
return false;
|
|
81
81
|
}
|
|
82
82
|
return true;
|
|
@@ -86,33 +86,33 @@ const keybindingType = {
|
|
|
86
86
|
default: { command: '', key: '' },
|
|
87
87
|
properties: {
|
|
88
88
|
command: {
|
|
89
|
-
description: ( localize(
|
|
89
|
+
description: ( localize(3504, 'Identifier of the command to run when keybinding is triggered.')),
|
|
90
90
|
type: 'string'
|
|
91
91
|
},
|
|
92
92
|
args: {
|
|
93
|
-
description: ( localize(
|
|
93
|
+
description: ( localize(3505, "Arguments to pass to the command to execute."))
|
|
94
94
|
},
|
|
95
95
|
key: {
|
|
96
96
|
description: ( localize(
|
|
97
|
-
|
|
97
|
+
3506,
|
|
98
98
|
'Key or key sequence (separate keys with plus-sign and sequences with space, e.g. Ctrl+O and Ctrl+L L for a chord).'
|
|
99
99
|
)),
|
|
100
100
|
type: 'string'
|
|
101
101
|
},
|
|
102
102
|
mac: {
|
|
103
|
-
description: ( localize(
|
|
103
|
+
description: ( localize(3507, 'Mac specific key or key sequence.')),
|
|
104
104
|
type: 'string'
|
|
105
105
|
},
|
|
106
106
|
linux: {
|
|
107
|
-
description: ( localize(
|
|
107
|
+
description: ( localize(3508, 'Linux specific key or key sequence.')),
|
|
108
108
|
type: 'string'
|
|
109
109
|
},
|
|
110
110
|
win: {
|
|
111
|
-
description: ( localize(
|
|
111
|
+
description: ( localize(3509, 'Windows specific key or key sequence.')),
|
|
112
112
|
type: 'string'
|
|
113
113
|
},
|
|
114
114
|
when: {
|
|
115
|
-
description: ( localize(
|
|
115
|
+
description: ( localize(3510, 'Condition when the key is active.')),
|
|
116
116
|
type: 'string'
|
|
117
117
|
},
|
|
118
118
|
}
|
|
@@ -121,7 +121,7 @@ const keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
121
121
|
extensionPoint: 'keybindings',
|
|
122
122
|
deps: [commandsExtensionPoint],
|
|
123
123
|
jsonSchema: {
|
|
124
|
-
description: ( localize(
|
|
124
|
+
description: ( localize(3511, "Contributes keybindings.")),
|
|
125
125
|
oneOf: [
|
|
126
126
|
keybindingType,
|
|
127
127
|
{
|
|
@@ -504,7 +504,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
504
504
|
}
|
|
505
505
|
if (rejects.length > 0) {
|
|
506
506
|
collector.error(( localize(
|
|
507
|
-
|
|
507
|
+
3512,
|
|
508
508
|
"Invalid `contributes.{0}`: {1}",
|
|
509
509
|
keybindingsExtPoint.name,
|
|
510
510
|
rejects.join('\n')
|
|
@@ -594,7 +594,7 @@ let WorkbenchKeybindingService = WorkbenchKeybindingService_1 = class WorkbenchK
|
|
|
594
594
|
static _getAllCommandsAsComment(boundCommands) {
|
|
595
595
|
const unboundCommands = getAllUnboundCommands(boundCommands);
|
|
596
596
|
const pretty = unboundCommands.sort().join('\n// - ');
|
|
597
|
-
return '// ' + ( localize(
|
|
597
|
+
return '// ' + ( localize(3513, "Here are other available commands: ")) + '\n// - ' + pretty;
|
|
598
598
|
}
|
|
599
599
|
mightProducePrintableCharacter(event) {
|
|
600
600
|
if (event.ctrlKey || event.metaKey || event.altKey) {
|
|
@@ -719,7 +719,7 @@ class KeybindingsJsonSchema {
|
|
|
719
719
|
this.schema = {
|
|
720
720
|
id: KeybindingsJsonSchema.schemaId,
|
|
721
721
|
type: 'array',
|
|
722
|
-
title: ( localize(
|
|
722
|
+
title: ( localize(3514, "Keybindings configuration")),
|
|
723
723
|
allowTrailingCommas: true,
|
|
724
724
|
allowComments: true,
|
|
725
725
|
definitions: {
|
|
@@ -743,7 +743,7 @@ class KeybindingsJsonSchema {
|
|
|
743
743
|
'type': 'string',
|
|
744
744
|
'enum': this.commandsEnum,
|
|
745
745
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
746
|
-
'description': ( localize(
|
|
746
|
+
'description': ( localize(3515, "Name of the command to execute")),
|
|
747
747
|
},
|
|
748
748
|
'commandType': {
|
|
749
749
|
'anyOf': [
|
|
@@ -754,7 +754,7 @@ class KeybindingsJsonSchema {
|
|
|
754
754
|
'type': 'string',
|
|
755
755
|
'enum': this.removalCommandsEnum,
|
|
756
756
|
'enumDescriptions': this.commandsEnumDescriptions,
|
|
757
|
-
'description': ( localize(
|
|
757
|
+
'description': ( localize(3516, "Name of the command to remove keyboard shortcut for")),
|
|
758
758
|
},
|
|
759
759
|
{
|
|
760
760
|
'type': 'string'
|
|
@@ -772,7 +772,7 @@ class KeybindingsJsonSchema {
|
|
|
772
772
|
'properties': {
|
|
773
773
|
'key': {
|
|
774
774
|
'type': 'string',
|
|
775
|
-
'description': ( localize(
|
|
775
|
+
'description': ( localize(3517, "Key or key sequence (separated by space)")),
|
|
776
776
|
},
|
|
777
777
|
'command': {
|
|
778
778
|
'anyOf': [
|
|
@@ -785,7 +785,7 @@ class KeybindingsJsonSchema {
|
|
|
785
785
|
'type': 'array'
|
|
786
786
|
},
|
|
787
787
|
'errorMessage': ( localize(
|
|
788
|
-
|
|
788
|
+
3518,
|
|
789
789
|
"Incorrect type. Expected \"{0}\". The field 'command' does not support running multiple commands. Use command 'runCommands' to pass it multiple commands to run.",
|
|
790
790
|
'string'
|
|
791
791
|
))
|
|
@@ -801,10 +801,10 @@ class KeybindingsJsonSchema {
|
|
|
801
801
|
},
|
|
802
802
|
'when': {
|
|
803
803
|
'type': 'string',
|
|
804
|
-
'description': ( localize(
|
|
804
|
+
'description': ( localize(3519, "Condition when the key is active."))
|
|
805
805
|
},
|
|
806
806
|
'args': {
|
|
807
|
-
'description': ( localize(
|
|
807
|
+
'description': ( localize(3520, "Arguments to pass to the command to execute."))
|
|
808
808
|
}
|
|
809
809
|
},
|
|
810
810
|
'$ref': '#/definitions/commandsSchemas'
|
|
@@ -342,7 +342,7 @@ class BrowserKeyboardMapperFactory extends BrowserKeyboardMapperFactoryBase {
|
|
|
342
342
|
constructor(configurationService, notificationService, storageService, commandService) {
|
|
343
343
|
super(configurationService);
|
|
344
344
|
const platform = isWindows ? 'win' : isMacintosh ? 'darwin' : 'linux';
|
|
345
|
-
__variableDynamicImportRuntime0__(
|
|
345
|
+
__variableDynamicImportRuntime0__(`./keyboardLayouts/layout.contribution.${platform}.js`).then((m) => {
|
|
346
346
|
const keymapInfos = m.KeyboardLayoutContribution.INSTANCE.layoutInfos;
|
|
347
347
|
this._keymapInfos.push(...( (keymapInfos.map(info => (( (new KeymapInfo(
|
|
348
348
|
info.layout,
|
|
@@ -492,12 +492,12 @@ const keyboardConfiguration = {
|
|
|
492
492
|
'id': 'keyboard',
|
|
493
493
|
'order': 15,
|
|
494
494
|
'type': 'object',
|
|
495
|
-
'title': ( localize(
|
|
495
|
+
'title': ( localize(3521, "Keyboard")),
|
|
496
496
|
'properties': {
|
|
497
497
|
'keyboard.layout': {
|
|
498
498
|
'type': 'string',
|
|
499
499
|
'default': 'autodetect',
|
|
500
|
-
'description': ( localize(
|
|
500
|
+
'description': ( localize(3522, "Control the keyboard layout used in web."))
|
|
501
501
|
}
|
|
502
502
|
}
|
|
503
503
|
};
|