@codingame/monaco-vscode-views-service-override 1.83.4 → 1.83.6
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/index.d.ts +8 -3
- package/index.js +7 -1
- package/l10n.js +8 -0
- package/missing-services.js +2141 -0
- package/package.json +2 -2
- package/services.js +95 -0
- package/views.d.ts +51 -15
- package/views.js +124 -96
- package/vscode/src/vs/base/browser/ui/tree/treeDefaults.js +1 -1
- package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +262 -49
- package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarActions.js +57 -42
- package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +51 -11
- package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +14 -2
- package/vscode/src/vs/workbench/browser/parts/compositeBar.js +5 -1
- package/vscode/src/vs/workbench/browser/parts/compositePart.js +18 -3
- package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +52 -20
- package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +5 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +6 -1
- package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +23 -4
- package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +60 -12
- package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +112 -0
- package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +11 -2
- package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +12 -2
- package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +5 -4
- package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +27 -15
- package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +1 -1
- package/vscode/src/vs/workbench/browser/parts/views/treeView.js +32 -19
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +58 -18
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +29 -5
- package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +17 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +55 -10
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline.js +5 -3
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.js +22 -3
- package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +5 -1
- package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +40 -8
- package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +5 -1
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +36 -10
- package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +111 -16
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +153 -97
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +28 -6
- package/vscode/src/vs/workbench/contrib/files/browser/files.contribution2.js +11 -463
- package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +16 -4
- package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +10 -4
- package/vscode/src/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +27 -5
- package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +53 -28
- package/vscode/src/vs/workbench/contrib/outline/browser/outline.contribution.js +180 -36
- package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.js +17 -3
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +29 -5
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +85 -17
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +301 -62
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +48 -16
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +29 -5
- package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +17 -3
- package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +6 -1
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +25 -5
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +5 -1
- package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +49 -9
- package/vscode/src/vs/workbench/services/history/browser/historyService.js +36 -36
- package/vscode/src/vs/workbench/services/hover/browser/hoverWidget.js +6 -1
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +5 -1
- package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +14 -5
- package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +5 -1
|
@@ -33,32 +33,56 @@ const viewsContainerSchema = {
|
|
|
33
33
|
type: 'object',
|
|
34
34
|
properties: {
|
|
35
35
|
id: {
|
|
36
|
-
description: localizeWithPath(
|
|
36
|
+
description: ( localizeWithPath(
|
|
37
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
38
|
+
{ key: 'vscode.extension.contributes.views.containers.id', comment: ['Contribution refers to those that an extension contributes to VS Code through an extension/contribution point. '] },
|
|
39
|
+
"Unique id used to identify the container in which views can be contributed using 'views' contribution point"
|
|
40
|
+
)),
|
|
37
41
|
type: 'string',
|
|
38
42
|
pattern: '^[a-zA-Z0-9_-]+$'
|
|
39
43
|
},
|
|
40
44
|
title: {
|
|
41
|
-
description: localizeWithPath(
|
|
45
|
+
description: ( localizeWithPath(
|
|
46
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
47
|
+
'vscode.extension.contributes.views.containers.title',
|
|
48
|
+
'Human readable string used to render the container'
|
|
49
|
+
)),
|
|
42
50
|
type: 'string'
|
|
43
51
|
},
|
|
44
52
|
icon: {
|
|
45
|
-
description:
|
|
53
|
+
description: ( localizeWithPath(
|
|
54
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
55
|
+
'vscode.extension.contributes.views.containers.icon',
|
|
56
|
+
"Path to the container icon. Icons are 24x24 centered on a 50x40 block and have a fill color of 'rgb(215, 218, 224)' or '#d7dae0'. It is recommended that icons be in SVG, though any image file type is accepted."
|
|
57
|
+
)),
|
|
46
58
|
type: 'string'
|
|
47
59
|
}
|
|
48
60
|
},
|
|
49
61
|
required: ['id', 'title', 'icon']
|
|
50
62
|
};
|
|
51
63
|
const viewsContainersContribution = {
|
|
52
|
-
description: localizeWithPath(
|
|
64
|
+
description: ( localizeWithPath(
|
|
65
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
66
|
+
'vscode.extension.contributes.viewsContainers',
|
|
67
|
+
'Contributes views containers to the editor'
|
|
68
|
+
)),
|
|
53
69
|
type: 'object',
|
|
54
70
|
properties: {
|
|
55
71
|
'activitybar': {
|
|
56
|
-
description: localizeWithPath(
|
|
72
|
+
description: ( localizeWithPath(
|
|
73
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
74
|
+
'views.container.activitybar',
|
|
75
|
+
"Contribute views containers to Activity Bar"
|
|
76
|
+
)),
|
|
57
77
|
type: 'array',
|
|
58
78
|
items: viewsContainerSchema
|
|
59
79
|
},
|
|
60
80
|
'panel': {
|
|
61
|
-
description: localizeWithPath(
|
|
81
|
+
description: ( localizeWithPath(
|
|
82
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
83
|
+
'views.container.panel',
|
|
84
|
+
"Contribute views containers to Panel"
|
|
85
|
+
)),
|
|
62
86
|
type: 'array',
|
|
63
87
|
items: viewsContainerSchema
|
|
64
88
|
}
|
|
@@ -81,39 +105,75 @@ const viewDescriptor = {
|
|
|
81
105
|
defaultSnippets: [{ body: { id: '${1:id}', name: '${2:name}' } }],
|
|
82
106
|
properties: {
|
|
83
107
|
type: {
|
|
84
|
-
markdownDescription: localizeWithPath(
|
|
108
|
+
markdownDescription: ( localizeWithPath(
|
|
109
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
110
|
+
'vscode.extension.contributes.view.type',
|
|
111
|
+
"Type of the view. This can either be `tree` for a tree view based view or `webview` for a webview based view. The default is `tree`."
|
|
112
|
+
)),
|
|
85
113
|
type: 'string',
|
|
86
114
|
enum: [
|
|
87
115
|
'tree',
|
|
88
116
|
'webview',
|
|
89
117
|
],
|
|
90
118
|
markdownEnumDescriptions: [
|
|
91
|
-
localizeWithPath(
|
|
92
|
-
|
|
119
|
+
( localizeWithPath(
|
|
120
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
121
|
+
'vscode.extension.contributes.view.tree',
|
|
122
|
+
"The view is backed by a `TreeView` created by `createTreeView`."
|
|
123
|
+
)),
|
|
124
|
+
( localizeWithPath(
|
|
125
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
126
|
+
'vscode.extension.contributes.view.webview',
|
|
127
|
+
"The view is backed by a `WebviewView` registered by `registerWebviewViewProvider`."
|
|
128
|
+
)),
|
|
93
129
|
]
|
|
94
130
|
},
|
|
95
131
|
id: {
|
|
96
|
-
markdownDescription: localizeWithPath(
|
|
132
|
+
markdownDescription: ( localizeWithPath(
|
|
133
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
134
|
+
'vscode.extension.contributes.view.id',
|
|
135
|
+
'Identifier of the view. This should be unique across all views. It is recommended to include your extension id as part of the view id. Use this to register a data provider through `vscode.window.registerTreeDataProviderForView` API. Also to trigger activating your extension by registering `onView:${id}` event to `activationEvents`.'
|
|
136
|
+
)),
|
|
97
137
|
type: 'string'
|
|
98
138
|
},
|
|
99
139
|
name: {
|
|
100
|
-
description: localizeWithPath(
|
|
140
|
+
description: ( localizeWithPath(
|
|
141
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
142
|
+
'vscode.extension.contributes.view.name',
|
|
143
|
+
'The human-readable name of the view. Will be shown'
|
|
144
|
+
)),
|
|
101
145
|
type: 'string'
|
|
102
146
|
},
|
|
103
147
|
when: {
|
|
104
|
-
description: localizeWithPath(
|
|
148
|
+
description: ( localizeWithPath(
|
|
149
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
150
|
+
'vscode.extension.contributes.view.when',
|
|
151
|
+
'Condition which must be true to show this view'
|
|
152
|
+
)),
|
|
105
153
|
type: 'string'
|
|
106
154
|
},
|
|
107
155
|
icon: {
|
|
108
|
-
description: localizeWithPath(
|
|
156
|
+
description: ( localizeWithPath(
|
|
157
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
158
|
+
'vscode.extension.contributes.view.icon',
|
|
159
|
+
"Path to the view icon. View icons are displayed when the name of the view cannot be shown. It is recommended that icons be in SVG, though any image file type is accepted."
|
|
160
|
+
)),
|
|
109
161
|
type: 'string'
|
|
110
162
|
},
|
|
111
163
|
contextualTitle: {
|
|
112
|
-
description: localizeWithPath(
|
|
164
|
+
description: ( localizeWithPath(
|
|
165
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
166
|
+
'vscode.extension.contributes.view.contextualTitle',
|
|
167
|
+
"Human-readable context for when the view is moved out of its original location. By default, the view's container name will be used."
|
|
168
|
+
)),
|
|
113
169
|
type: 'string'
|
|
114
170
|
},
|
|
115
171
|
visibility: {
|
|
116
|
-
description: localizeWithPath(
|
|
172
|
+
description: ( localizeWithPath(
|
|
173
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
174
|
+
'vscode.extension.contributes.view.initialState',
|
|
175
|
+
"Initial state of the view when the extension is first installed. Once the user has changed the view state by collapsing, moving, or hiding the view, the initial state will not be used again."
|
|
176
|
+
)),
|
|
117
177
|
type: 'string',
|
|
118
178
|
enum: [
|
|
119
179
|
'visible',
|
|
@@ -122,14 +182,30 @@ const viewDescriptor = {
|
|
|
122
182
|
],
|
|
123
183
|
default: 'visible',
|
|
124
184
|
enumDescriptions: [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
185
|
+
( localizeWithPath(
|
|
186
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
187
|
+
'vscode.extension.contributes.view.initialState.visible',
|
|
188
|
+
"The default initial state for the view. In most containers the view will be expanded, however; some built-in containers (explorer, scm, and debug) show all contributed views collapsed regardless of the `visibility`."
|
|
189
|
+
)),
|
|
190
|
+
( localizeWithPath(
|
|
191
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
192
|
+
'vscode.extension.contributes.view.initialState.hidden',
|
|
193
|
+
"The view will not be shown in the view container, but will be discoverable through the views menu and other view entry points and can be un-hidden by the user."
|
|
194
|
+
)),
|
|
195
|
+
( localizeWithPath(
|
|
196
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
197
|
+
'vscode.extension.contributes.view.initialState.collapsed',
|
|
198
|
+
"The view will show in the view container, but will be collapsed."
|
|
199
|
+
))
|
|
128
200
|
]
|
|
129
201
|
},
|
|
130
202
|
initialSize: {
|
|
131
203
|
type: 'number',
|
|
132
|
-
description: localizeWithPath(
|
|
204
|
+
description: ( localizeWithPath(
|
|
205
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
206
|
+
'vscode.extension.contributs.view.size',
|
|
207
|
+
"The initial size of the view. The size will behave like the css 'flex' property, and will set the initial size when the view is first shown. In the side bar, this is the height of the view. This value is only respected when the same extension owns both the view and the view container."
|
|
208
|
+
)),
|
|
133
209
|
}
|
|
134
210
|
}
|
|
135
211
|
};
|
|
@@ -138,23 +214,43 @@ const remoteViewDescriptor = {
|
|
|
138
214
|
required: ['id', 'name'],
|
|
139
215
|
properties: {
|
|
140
216
|
id: {
|
|
141
|
-
description: localizeWithPath(
|
|
217
|
+
description: ( localizeWithPath(
|
|
218
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
219
|
+
'vscode.extension.contributes.view.id',
|
|
220
|
+
'Identifier of the view. This should be unique across all views. It is recommended to include your extension id as part of the view id. Use this to register a data provider through `vscode.window.registerTreeDataProviderForView` API. Also to trigger activating your extension by registering `onView:${id}` event to `activationEvents`.'
|
|
221
|
+
)),
|
|
142
222
|
type: 'string'
|
|
143
223
|
},
|
|
144
224
|
name: {
|
|
145
|
-
description: localizeWithPath(
|
|
225
|
+
description: ( localizeWithPath(
|
|
226
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
227
|
+
'vscode.extension.contributes.view.name',
|
|
228
|
+
'The human-readable name of the view. Will be shown'
|
|
229
|
+
)),
|
|
146
230
|
type: 'string'
|
|
147
231
|
},
|
|
148
232
|
when: {
|
|
149
|
-
description: localizeWithPath(
|
|
233
|
+
description: ( localizeWithPath(
|
|
234
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
235
|
+
'vscode.extension.contributes.view.when',
|
|
236
|
+
'Condition which must be true to show this view'
|
|
237
|
+
)),
|
|
150
238
|
type: 'string'
|
|
151
239
|
},
|
|
152
240
|
group: {
|
|
153
|
-
description: localizeWithPath(
|
|
241
|
+
description: ( localizeWithPath(
|
|
242
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
243
|
+
'vscode.extension.contributes.view.group',
|
|
244
|
+
'Nested group in the viewlet'
|
|
245
|
+
)),
|
|
154
246
|
type: 'string'
|
|
155
247
|
},
|
|
156
248
|
remoteName: {
|
|
157
|
-
description: localizeWithPath(
|
|
249
|
+
description: ( localizeWithPath(
|
|
250
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
251
|
+
'vscode.extension.contributes.view.remoteName',
|
|
252
|
+
'The name of the remote type associated with this view'
|
|
253
|
+
)),
|
|
158
254
|
type: ['string', 'array'],
|
|
159
255
|
items: {
|
|
160
256
|
type: 'string'
|
|
@@ -163,42 +259,70 @@ const remoteViewDescriptor = {
|
|
|
163
259
|
}
|
|
164
260
|
};
|
|
165
261
|
const viewsContribution = {
|
|
166
|
-
description: localizeWithPath(
|
|
262
|
+
description: ( localizeWithPath(
|
|
263
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
264
|
+
'vscode.extension.contributes.views',
|
|
265
|
+
"Contributes views to the editor"
|
|
266
|
+
)),
|
|
167
267
|
type: 'object',
|
|
168
268
|
properties: {
|
|
169
269
|
'explorer': {
|
|
170
|
-
description: localizeWithPath(
|
|
270
|
+
description: ( localizeWithPath(
|
|
271
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
272
|
+
'views.explorer',
|
|
273
|
+
"Contributes views to Explorer container in the Activity bar"
|
|
274
|
+
)),
|
|
171
275
|
type: 'array',
|
|
172
276
|
items: viewDescriptor,
|
|
173
277
|
default: []
|
|
174
278
|
},
|
|
175
279
|
'debug': {
|
|
176
|
-
description: localizeWithPath(
|
|
280
|
+
description: ( localizeWithPath(
|
|
281
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
282
|
+
'views.debug',
|
|
283
|
+
"Contributes views to Debug container in the Activity bar"
|
|
284
|
+
)),
|
|
177
285
|
type: 'array',
|
|
178
286
|
items: viewDescriptor,
|
|
179
287
|
default: []
|
|
180
288
|
},
|
|
181
289
|
'scm': {
|
|
182
|
-
description: localizeWithPath(
|
|
290
|
+
description: ( localizeWithPath(
|
|
291
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
292
|
+
'views.scm',
|
|
293
|
+
"Contributes views to SCM container in the Activity bar"
|
|
294
|
+
)),
|
|
183
295
|
type: 'array',
|
|
184
296
|
items: viewDescriptor,
|
|
185
297
|
default: []
|
|
186
298
|
},
|
|
187
299
|
'test': {
|
|
188
|
-
description: localizeWithPath(
|
|
300
|
+
description: ( localizeWithPath(
|
|
301
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
302
|
+
'views.test',
|
|
303
|
+
"Contributes views to Test container in the Activity bar"
|
|
304
|
+
)),
|
|
189
305
|
type: 'array',
|
|
190
306
|
items: viewDescriptor,
|
|
191
307
|
default: []
|
|
192
308
|
},
|
|
193
309
|
'remote': {
|
|
194
|
-
description: localizeWithPath(
|
|
310
|
+
description: ( localizeWithPath(
|
|
311
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
312
|
+
'views.remote',
|
|
313
|
+
"Contributes views to Remote container in the Activity bar. To contribute to this container, enableProposedApi needs to be turned on"
|
|
314
|
+
)),
|
|
195
315
|
type: 'array',
|
|
196
316
|
items: remoteViewDescriptor,
|
|
197
317
|
default: []
|
|
198
318
|
}
|
|
199
319
|
},
|
|
200
320
|
additionalProperties: {
|
|
201
|
-
description: localizeWithPath(
|
|
321
|
+
description: ( localizeWithPath(
|
|
322
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
323
|
+
'views.contributed',
|
|
324
|
+
"Contributes views to contributed views container"
|
|
325
|
+
)),
|
|
202
326
|
type: 'array',
|
|
203
327
|
items: viewDescriptor,
|
|
204
328
|
default: []
|
|
@@ -318,28 +442,57 @@ let ViewsExtensionHandler = class ViewsExtensionHandler {
|
|
|
318
442
|
}
|
|
319
443
|
isValidViewsContainer(viewsContainersDescriptors, collector) {
|
|
320
444
|
if (!Array.isArray(viewsContainersDescriptors)) {
|
|
321
|
-
collector.error(localizeWithPath(
|
|
445
|
+
collector.error(( localizeWithPath(
|
|
446
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
447
|
+
'viewcontainer requirearray',
|
|
448
|
+
"views containers must be an array"
|
|
449
|
+
)));
|
|
322
450
|
return false;
|
|
323
451
|
}
|
|
324
452
|
for (const descriptor of viewsContainersDescriptors) {
|
|
325
453
|
if (typeof descriptor.id !== 'string' && isFalsyOrWhitespace(descriptor.id)) {
|
|
326
|
-
collector.error(localizeWithPath(
|
|
454
|
+
collector.error(( localizeWithPath(
|
|
455
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
456
|
+
'requireidstring',
|
|
457
|
+
"property `{0}` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed.",
|
|
458
|
+
'id'
|
|
459
|
+
)));
|
|
327
460
|
return false;
|
|
328
461
|
}
|
|
329
462
|
if (!(/^[a-z0-9_-]+$/i.test(descriptor.id))) {
|
|
330
|
-
collector.error(localizeWithPath(
|
|
463
|
+
collector.error(( localizeWithPath(
|
|
464
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
465
|
+
'requireidstring',
|
|
466
|
+
"property `{0}` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed.",
|
|
467
|
+
'id'
|
|
468
|
+
)));
|
|
331
469
|
return false;
|
|
332
470
|
}
|
|
333
471
|
if (typeof descriptor.title !== 'string') {
|
|
334
|
-
collector.error(localizeWithPath(
|
|
472
|
+
collector.error(( localizeWithPath(
|
|
473
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
474
|
+
'requirestring',
|
|
475
|
+
"property `{0}` is mandatory and must be of type `string`",
|
|
476
|
+
'title'
|
|
477
|
+
)));
|
|
335
478
|
return false;
|
|
336
479
|
}
|
|
337
480
|
if (typeof descriptor.icon !== 'string') {
|
|
338
|
-
collector.error(localizeWithPath(
|
|
481
|
+
collector.error(( localizeWithPath(
|
|
482
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
483
|
+
'requirestring',
|
|
484
|
+
"property `{0}` is mandatory and must be of type `string`",
|
|
485
|
+
'icon'
|
|
486
|
+
)));
|
|
339
487
|
return false;
|
|
340
488
|
}
|
|
341
489
|
if (isFalsyOrWhitespace(descriptor.title)) {
|
|
342
|
-
collector.warn(localizeWithPath(
|
|
490
|
+
collector.warn(( localizeWithPath(
|
|
491
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
492
|
+
'requirenonemptystring',
|
|
493
|
+
"property `{0}` is mandatory and must be of type `string` with non-empty value",
|
|
494
|
+
'title'
|
|
495
|
+
)));
|
|
343
496
|
return true;
|
|
344
497
|
}
|
|
345
498
|
}
|
|
@@ -405,23 +558,43 @@ let ViewsExtensionHandler = class ViewsExtensionHandler {
|
|
|
405
558
|
return;
|
|
406
559
|
}
|
|
407
560
|
if (key === 'remote' && !isProposedApiEnabled(extension.description, 'contribViewsRemote')) {
|
|
408
|
-
collector.warn(localizeWithPath(
|
|
561
|
+
collector.warn(( localizeWithPath(
|
|
562
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
563
|
+
'ViewContainerRequiresProposedAPI',
|
|
564
|
+
"View container '{0}' requires 'enabledApiProposals: [\"contribViewsRemote\"]' to be added to 'Remote'.",
|
|
565
|
+
key
|
|
566
|
+
)));
|
|
409
567
|
return;
|
|
410
568
|
}
|
|
411
569
|
const viewContainer = this.getViewContainer(key);
|
|
412
570
|
if (!viewContainer) {
|
|
413
|
-
collector.warn(localizeWithPath(
|
|
571
|
+
collector.warn(( localizeWithPath(
|
|
572
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
573
|
+
'ViewContainerDoesnotExist',
|
|
574
|
+
"View container '{0}' does not exist and all views registered to it will be added to 'Explorer'.",
|
|
575
|
+
key
|
|
576
|
+
)));
|
|
414
577
|
}
|
|
415
578
|
const container = viewContainer || this.getDefaultViewContainer();
|
|
416
579
|
const viewDescriptors = [];
|
|
417
580
|
for (let index = 0; index < value.length; index++) {
|
|
418
581
|
const item = value[index];
|
|
419
582
|
if (( viewIds.has(item.id))) {
|
|
420
|
-
collector.error(localizeWithPath(
|
|
583
|
+
collector.error(( localizeWithPath(
|
|
584
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
585
|
+
'duplicateView1',
|
|
586
|
+
"Cannot register multiple views with same id `{0}`",
|
|
587
|
+
item.id
|
|
588
|
+
)));
|
|
421
589
|
continue;
|
|
422
590
|
}
|
|
423
591
|
if (this.viewsRegistry.getView(item.id) !== null) {
|
|
424
|
-
collector.error(localizeWithPath(
|
|
592
|
+
collector.error(( localizeWithPath(
|
|
593
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
594
|
+
'duplicateView2',
|
|
595
|
+
"A view with id `{0}` is already registered.",
|
|
596
|
+
item.id
|
|
597
|
+
)));
|
|
425
598
|
continue;
|
|
426
599
|
}
|
|
427
600
|
const order = ExtensionIdentifier.equals(extension.description.identifier, container.extensionId)
|
|
@@ -436,7 +609,12 @@ let ViewsExtensionHandler = class ViewsExtensionHandler {
|
|
|
436
609
|
const initialVisibility = this.convertInitialVisibility(item.visibility);
|
|
437
610
|
const type = this.getViewType(item.type);
|
|
438
611
|
if (!type) {
|
|
439
|
-
collector.error(localizeWithPath(
|
|
612
|
+
collector.error(( localizeWithPath(
|
|
613
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
614
|
+
'unknownViewType',
|
|
615
|
+
"Unknown view type `{0}`.",
|
|
616
|
+
item.type
|
|
617
|
+
)));
|
|
440
618
|
continue;
|
|
441
619
|
}
|
|
442
620
|
let weight = undefined;
|
|
@@ -513,32 +691,67 @@ let ViewsExtensionHandler = class ViewsExtensionHandler {
|
|
|
513
691
|
}
|
|
514
692
|
isValidViewDescriptors(viewDescriptors, collector) {
|
|
515
693
|
if (!Array.isArray(viewDescriptors)) {
|
|
516
|
-
collector.error(localizeWithPath(
|
|
694
|
+
collector.error(( localizeWithPath(
|
|
695
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
696
|
+
'requirearray',
|
|
697
|
+
"views must be an array"
|
|
698
|
+
)));
|
|
517
699
|
return false;
|
|
518
700
|
}
|
|
519
701
|
for (const descriptor of viewDescriptors) {
|
|
520
702
|
if (typeof descriptor.id !== 'string') {
|
|
521
|
-
collector.error(localizeWithPath(
|
|
703
|
+
collector.error(( localizeWithPath(
|
|
704
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
705
|
+
'requirestring',
|
|
706
|
+
"property `{0}` is mandatory and must be of type `string`",
|
|
707
|
+
'id'
|
|
708
|
+
)));
|
|
522
709
|
return false;
|
|
523
710
|
}
|
|
524
711
|
if (typeof descriptor.name !== 'string') {
|
|
525
|
-
collector.error(localizeWithPath(
|
|
712
|
+
collector.error(( localizeWithPath(
|
|
713
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
714
|
+
'requirestring',
|
|
715
|
+
"property `{0}` is mandatory and must be of type `string`",
|
|
716
|
+
'name'
|
|
717
|
+
)));
|
|
526
718
|
return false;
|
|
527
719
|
}
|
|
528
720
|
if (descriptor.when && typeof descriptor.when !== 'string') {
|
|
529
|
-
collector.error(localizeWithPath(
|
|
721
|
+
collector.error(( localizeWithPath(
|
|
722
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
723
|
+
'optstring',
|
|
724
|
+
"property `{0}` can be omitted or must be of type `string`",
|
|
725
|
+
'when'
|
|
726
|
+
)));
|
|
530
727
|
return false;
|
|
531
728
|
}
|
|
532
729
|
if (descriptor.icon && typeof descriptor.icon !== 'string') {
|
|
533
|
-
collector.error(localizeWithPath(
|
|
730
|
+
collector.error(( localizeWithPath(
|
|
731
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
732
|
+
'optstring',
|
|
733
|
+
"property `{0}` can be omitted or must be of type `string`",
|
|
734
|
+
'icon'
|
|
735
|
+
)));
|
|
534
736
|
return false;
|
|
535
737
|
}
|
|
536
738
|
if (descriptor.contextualTitle && typeof descriptor.contextualTitle !== 'string') {
|
|
537
|
-
collector.error(localizeWithPath(
|
|
739
|
+
collector.error(( localizeWithPath(
|
|
740
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
741
|
+
'optstring',
|
|
742
|
+
"property `{0}` can be omitted or must be of type `string`",
|
|
743
|
+
'contextualTitle'
|
|
744
|
+
)));
|
|
538
745
|
return false;
|
|
539
746
|
}
|
|
540
747
|
if (descriptor.visibility && !this.convertInitialVisibility(descriptor.visibility)) {
|
|
541
|
-
collector.error(
|
|
748
|
+
collector.error(( localizeWithPath(
|
|
749
|
+
'vs/workbench/api/browser/viewsExtensionPoint',
|
|
750
|
+
'optenum',
|
|
751
|
+
"property `{0}` can be omitted or must be one of {1}",
|
|
752
|
+
'visibility',
|
|
753
|
+
( Object.values(InitialVisibility)).join(', ')
|
|
754
|
+
)));
|
|
542
755
|
return false;
|
|
543
756
|
}
|
|
544
757
|
}
|