@codingame/monaco-vscode-views-service-override 2.1.3 → 2.2.0-next.1

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.
Files changed (108) hide show
  1. package/index.d.ts +11 -9
  2. package/index.js +8 -6
  3. package/package.json +11 -11
  4. package/tools/editor.js +3 -1
  5. package/tools/views.d.ts +102 -0
  6. package/tools/views.js +253 -0
  7. package/views.d.ts +4 -99
  8. package/views.js +52 -280
  9. package/external/rollup-plugin-styles/dist/runtime/inject-css.js +0 -3
  10. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +0 -180
  11. package/vscode/src/vs/base/browser/ui/grid/grid.js +0 -494
  12. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +0 -6
  13. package/vscode/src/vs/base/browser/ui/grid/gridview.js +0 -1112
  14. package/vscode/src/vs/base/common/codicons.d.ts +0 -579
  15. package/vscode/src/vs/platform/webview/common/mimeTypes.js +0 -24
  16. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +0 -64
  17. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +0 -790
  18. package/vscode/src/vs/workbench/browser/actions/listCommands.js +0 -764
  19. package/vscode/src/vs/workbench/browser/layout.d.ts +0 -26
  20. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +0 -612
  21. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +0 -6
  22. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +0 -6
  23. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +0 -150
  24. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +0 -6
  25. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +0 -605
  26. package/vscode/src/vs/workbench/browser/parts/compositePart.js +0 -335
  27. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +0 -223
  28. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +0 -1407
  29. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +0 -186
  30. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +0 -511
  31. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +0 -112
  32. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +0 -1020
  33. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +0 -391
  34. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +0 -6
  35. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +0 -6
  36. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +0 -6
  37. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +0 -645
  38. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +0 -379
  39. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +0 -68
  40. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +0 -146
  41. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +0 -6
  42. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +0 -222
  43. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +0 -299
  44. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +0 -365
  45. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +0 -135
  46. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +0 -6
  47. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +0 -17
  48. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +0 -145
  49. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +0 -214
  50. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +0 -6
  51. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +0 -78
  52. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +0 -63
  53. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +0 -119
  54. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +0 -6
  55. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +0 -79
  56. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +0 -74
  57. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +0 -256
  58. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +0 -99
  59. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +0 -444
  60. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +0 -432
  61. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +0 -786
  62. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +0 -488
  63. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +0 -522
  64. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +0 -152
  65. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +0 -63
  66. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +0 -409
  67. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +0 -6
  68. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +0 -693
  69. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +0 -240
  70. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +0 -77
  71. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +0 -42
  72. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +0 -71
  73. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +0 -348
  74. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +0 -98
  75. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +0 -146
  76. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +0 -105
  77. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +0 -401
  78. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +0 -197
  79. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +0 -41
  80. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +0 -128
  81. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +0 -6
  82. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +0 -612
  83. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +0 -158
  84. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +0 -264
  85. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +0 -173
  86. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +0 -6
  87. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +0 -282
  88. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +0 -360
  89. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +0 -133
  90. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +0 -290
  91. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +0 -96
  92. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +0 -88
  93. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +0 -79
  94. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +0 -648
  95. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +0 -65
  96. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +0 -59
  97. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +0 -142
  98. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +0 -121
  99. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +0 -68
  100. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +0 -235
  101. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +0 -145
  102. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +0 -670
  103. package/vscode/src/vs/workbench/services/history/browser/historyService.js +0 -1484
  104. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +0 -6
  105. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +0 -523
  106. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +0 -101
  107. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +0 -713
  108. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +0 -598
@@ -1,790 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { joinPath } from 'vscode/vscode/vs/base/common/resources';
3
- import { isFalsyOrWhitespace } from 'vscode/vscode/vs/base/common/strings';
4
- import { localizeWithPath } from 'vscode/vscode/vs/nls';
5
- import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
6
- import { ExtensionIdentifierSet, ExtensionIdentifier } from 'vscode/vscode/vs/platform/extensions/common/extensions';
7
- import { SyncDescriptor } from 'vscode/vscode/vs/platform/instantiation/common/descriptors';
8
- import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
9
- import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
10
- import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
11
- import { Extensions as Extensions$2 } from 'vscode/vscode/vs/workbench/browser/panecomposite';
12
- import { RawCustomTreeViewContextKey, TreeViewPane, CustomTreeView } from 'vscode/vscode/vs/workbench/browser/parts/views/treeView';
13
- import { ViewPaneContainer } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPaneContainer';
14
- import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
15
- import { Extensions as Extensions$1, ResolvableTreeItem } from 'vscode/vscode/vs/workbench/common/views';
16
- import { VIEWLET_ID as VIEWLET_ID$3 } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
17
- import { VIEWLET_ID as VIEWLET_ID$1 } from 'vscode/vscode/vs/workbench/contrib/files/common/files';
18
- import { VIEWLET_ID } from 'vscode/vscode/vs/workbench/contrib/remote/browser/remoteExplorer';
19
- import { VIEWLET_ID as VIEWLET_ID$2 } from 'vscode/vscode/vs/workbench/contrib/scm/common/scm';
20
- import { WebviewViewPane } from '../../contrib/webviewView/browser/webviewViewPane.js';
21
- import { isProposedApiEnabled } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
22
- import { ExtensionsRegistry } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionsRegistry';
23
- import { KeybindingsRegistry } from 'vscode/vscode/vs/platform/keybinding/common/keybindingsRegistry';
24
- import { KeyChord } from 'vscode/vscode/vs/base/common/keyCodes';
25
- import { IListService, WorkbenchListFocusContextKey } from 'vscode/vscode/vs/platform/list/browser/listService';
26
- import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover';
27
- import { CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
28
- import { AsyncDataTree } from 'vscode/vscode/vs/base/browser/ui/tree/asyncDataTree';
29
- import { ITreeViewsService } from 'vscode/vscode/vs/workbench/services/views/browser/treeViewsService';
30
- import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
31
-
32
- const viewsContainerSchema = {
33
- type: 'object',
34
- properties: {
35
- id: {
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
- )),
41
- type: 'string',
42
- pattern: '^[a-zA-Z0-9_-]+$'
43
- },
44
- title: {
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
- )),
50
- type: 'string'
51
- },
52
- icon: {
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
- )),
58
- type: 'string'
59
- }
60
- },
61
- required: ['id', 'title', 'icon']
62
- };
63
- const viewsContainersContribution = {
64
- description: ( localizeWithPath(
65
- 'vs/workbench/api/browser/viewsExtensionPoint',
66
- 'vscode.extension.contributes.viewsContainers',
67
- 'Contributes views containers to the editor'
68
- )),
69
- type: 'object',
70
- properties: {
71
- 'activitybar': {
72
- description: ( localizeWithPath(
73
- 'vs/workbench/api/browser/viewsExtensionPoint',
74
- 'views.container.activitybar',
75
- "Contribute views containers to Activity Bar"
76
- )),
77
- type: 'array',
78
- items: viewsContainerSchema
79
- },
80
- 'panel': {
81
- description: ( localizeWithPath(
82
- 'vs/workbench/api/browser/viewsExtensionPoint',
83
- 'views.container.panel',
84
- "Contribute views containers to Panel"
85
- )),
86
- type: 'array',
87
- items: viewsContainerSchema
88
- }
89
- }
90
- };
91
- var ViewType;
92
- ( (function(ViewType) {
93
- ViewType["Tree"] = "tree";
94
- ViewType["Webview"] = "webview";
95
- })(ViewType || (ViewType = {})));
96
- var InitialVisibility;
97
- ( (function(InitialVisibility) {
98
- InitialVisibility["Visible"] = "visible";
99
- InitialVisibility["Hidden"] = "hidden";
100
- InitialVisibility["Collapsed"] = "collapsed";
101
- })(InitialVisibility || (InitialVisibility = {})));
102
- const viewDescriptor = {
103
- type: 'object',
104
- required: ['id', 'name'],
105
- defaultSnippets: [{ body: { id: '${1:id}', name: '${2:name}' } }],
106
- properties: {
107
- type: {
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
- )),
113
- type: 'string',
114
- enum: [
115
- 'tree',
116
- 'webview',
117
- ],
118
- markdownEnumDescriptions: [
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
- )),
129
- ]
130
- },
131
- id: {
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
- )),
137
- type: 'string'
138
- },
139
- name: {
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
- )),
145
- type: 'string'
146
- },
147
- when: {
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
- )),
153
- type: 'string'
154
- },
155
- icon: {
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
- )),
161
- type: 'string'
162
- },
163
- contextualTitle: {
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
- )),
169
- type: 'string'
170
- },
171
- visibility: {
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
- )),
177
- type: 'string',
178
- enum: [
179
- 'visible',
180
- 'hidden',
181
- 'collapsed'
182
- ],
183
- default: 'visible',
184
- enumDescriptions: [
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
- ))
200
- ]
201
- },
202
- initialSize: {
203
- type: 'number',
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
- )),
209
- }
210
- }
211
- };
212
- const remoteViewDescriptor = {
213
- type: 'object',
214
- required: ['id', 'name'],
215
- properties: {
216
- id: {
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
- )),
222
- type: 'string'
223
- },
224
- name: {
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
- )),
230
- type: 'string'
231
- },
232
- when: {
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
- )),
238
- type: 'string'
239
- },
240
- group: {
241
- description: ( localizeWithPath(
242
- 'vs/workbench/api/browser/viewsExtensionPoint',
243
- 'vscode.extension.contributes.view.group',
244
- 'Nested group in the viewlet'
245
- )),
246
- type: 'string'
247
- },
248
- remoteName: {
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
- )),
254
- type: ['string', 'array'],
255
- items: {
256
- type: 'string'
257
- }
258
- }
259
- }
260
- };
261
- const viewsContribution = {
262
- description: ( localizeWithPath(
263
- 'vs/workbench/api/browser/viewsExtensionPoint',
264
- 'vscode.extension.contributes.views',
265
- "Contributes views to the editor"
266
- )),
267
- type: 'object',
268
- properties: {
269
- 'explorer': {
270
- description: ( localizeWithPath(
271
- 'vs/workbench/api/browser/viewsExtensionPoint',
272
- 'views.explorer',
273
- "Contributes views to Explorer container in the Activity bar"
274
- )),
275
- type: 'array',
276
- items: viewDescriptor,
277
- default: []
278
- },
279
- 'debug': {
280
- description: ( localizeWithPath(
281
- 'vs/workbench/api/browser/viewsExtensionPoint',
282
- 'views.debug',
283
- "Contributes views to Debug container in the Activity bar"
284
- )),
285
- type: 'array',
286
- items: viewDescriptor,
287
- default: []
288
- },
289
- 'scm': {
290
- description: ( localizeWithPath(
291
- 'vs/workbench/api/browser/viewsExtensionPoint',
292
- 'views.scm',
293
- "Contributes views to SCM container in the Activity bar"
294
- )),
295
- type: 'array',
296
- items: viewDescriptor,
297
- default: []
298
- },
299
- 'test': {
300
- description: ( localizeWithPath(
301
- 'vs/workbench/api/browser/viewsExtensionPoint',
302
- 'views.test',
303
- "Contributes views to Test container in the Activity bar"
304
- )),
305
- type: 'array',
306
- items: viewDescriptor,
307
- default: []
308
- },
309
- 'remote': {
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
- )),
315
- type: 'array',
316
- items: remoteViewDescriptor,
317
- default: []
318
- }
319
- },
320
- additionalProperties: {
321
- description: ( localizeWithPath(
322
- 'vs/workbench/api/browser/viewsExtensionPoint',
323
- 'views.contributed',
324
- "Contributes views to contributed views container"
325
- )),
326
- type: 'array',
327
- items: viewDescriptor,
328
- default: []
329
- }
330
- };
331
- const viewsContainersExtensionPoint = ( ExtensionsRegistry.registerExtensionPoint({
332
- extensionPoint: 'viewsContainers',
333
- jsonSchema: viewsContainersContribution
334
- }));
335
- const viewsExtensionPoint = ( ExtensionsRegistry.registerExtensionPoint({
336
- extensionPoint: 'views',
337
- deps: [viewsContainersExtensionPoint],
338
- jsonSchema: viewsContribution,
339
- activationEventsGenerator: (viewExtensionPointTypeArray, result) => {
340
- for (const viewExtensionPointType of viewExtensionPointTypeArray) {
341
- for (const viewDescriptors of ( Object.values(viewExtensionPointType))) {
342
- for (const viewDescriptor of viewDescriptors) {
343
- if (viewDescriptor.id) {
344
- result.push(`onView:${viewDescriptor.id}`);
345
- }
346
- }
347
- }
348
- }
349
- }
350
- }));
351
- const CUSTOM_VIEWS_START_ORDER = 7;
352
- let ViewsExtensionHandler = class ViewsExtensionHandler {
353
- constructor(instantiationService, logService) {
354
- this.instantiationService = instantiationService;
355
- this.logService = logService;
356
- this.viewContainersRegistry = ( Registry.as(Extensions$1.ViewContainersRegistry));
357
- this.viewsRegistry = ( Registry.as(Extensions$1.ViewsRegistry));
358
- this.handleAndRegisterCustomViewContainers();
359
- this.handleAndRegisterCustomViews();
360
- let showTreeHoverCancellation = ( new CancellationTokenSource());
361
- KeybindingsRegistry.registerCommandAndKeybindingRule({
362
- id: 'workbench.action.showTreeHover',
363
- handler: async (accessor, ...args) => {
364
- showTreeHoverCancellation.cancel();
365
- showTreeHoverCancellation = ( new CancellationTokenSource());
366
- const listService = accessor.get(IListService);
367
- const treeViewsService = accessor.get(ITreeViewsService);
368
- const hoverService = accessor.get(IHoverService);
369
- const lastFocusedList = listService.lastFocusedList;
370
- if (!(lastFocusedList instanceof AsyncDataTree)) {
371
- return;
372
- }
373
- const focus = lastFocusedList.getFocus();
374
- if (!focus || (focus.length === 0)) {
375
- return;
376
- }
377
- const treeItem = focus[0];
378
- if (treeItem instanceof ResolvableTreeItem) {
379
- await treeItem.resolve(showTreeHoverCancellation.token);
380
- }
381
- if (!treeItem.tooltip) {
382
- return;
383
- }
384
- const element = treeViewsService.getRenderedTreeElement(('handle' in treeItem) ? treeItem.handle : treeItem);
385
- if (!element) {
386
- return;
387
- }
388
- hoverService.showHover({
389
- content: treeItem.tooltip,
390
- target: element,
391
- position: {
392
- hoverPosition: 2 ,
393
- },
394
- persistence: {
395
- hideOnHover: false
396
- }
397
- }, true);
398
- },
399
- weight: 200 ,
400
- primary: KeyChord(2048 | 41 , 2048 | 39 ),
401
- when: ( ContextKeyExpr.and(RawCustomTreeViewContextKey, WorkbenchListFocusContextKey))
402
- });
403
- }
404
- handleAndRegisterCustomViewContainers() {
405
- viewsContainersExtensionPoint.setHandler((extensions, { added, removed }) => {
406
- if (removed.length) {
407
- this.removeCustomViewContainers(removed);
408
- }
409
- if (added.length) {
410
- this.addCustomViewContainers(added, this.viewContainersRegistry.all);
411
- }
412
- });
413
- }
414
- addCustomViewContainers(extensionPoints, existingViewContainers) {
415
- const viewContainersRegistry = ( Registry.as(Extensions$1.ViewContainersRegistry));
416
- let activityBarOrder = CUSTOM_VIEWS_START_ORDER + viewContainersRegistry.all.filter(v => !!v.extensionId && viewContainersRegistry.getViewContainerLocation(v) === 0 ).length;
417
- let panelOrder = 5 + viewContainersRegistry.all.filter(v => !!v.extensionId && viewContainersRegistry.getViewContainerLocation(v) === 1 ).length + 1;
418
- for (const { value, collector, description } of extensionPoints) {
419
- Object.entries(value).forEach(([key, value]) => {
420
- if (!this.isValidViewsContainer(value, collector)) {
421
- return;
422
- }
423
- switch (key) {
424
- case 'activitybar':
425
- activityBarOrder = this.registerCustomViewContainers(value, description, activityBarOrder, existingViewContainers, 0 );
426
- break;
427
- case 'panel':
428
- panelOrder = this.registerCustomViewContainers(value, description, panelOrder, existingViewContainers, 1 );
429
- break;
430
- }
431
- });
432
- }
433
- }
434
- removeCustomViewContainers(extensionPoints) {
435
- const viewContainersRegistry = ( Registry.as(Extensions$1.ViewContainersRegistry));
436
- const removedExtensions = extensionPoints.reduce((result, e) => { result.add(e.description.identifier); return result; }, ( new ExtensionIdentifierSet()));
437
- for (const viewContainer of viewContainersRegistry.all) {
438
- if (viewContainer.extensionId && ( removedExtensions.has(viewContainer.extensionId))) {
439
- const views = this.viewsRegistry.getViews(viewContainer);
440
- if (views.length) {
441
- this.viewsRegistry.moveViews(views, this.getDefaultViewContainer());
442
- }
443
- this.deregisterCustomViewContainer(viewContainer);
444
- }
445
- }
446
- }
447
- isValidViewsContainer(viewsContainersDescriptors, collector) {
448
- if (!Array.isArray(viewsContainersDescriptors)) {
449
- collector.error(( localizeWithPath(
450
- 'vs/workbench/api/browser/viewsExtensionPoint',
451
- 'viewcontainer requirearray',
452
- "views containers must be an array"
453
- )));
454
- return false;
455
- }
456
- for (const descriptor of viewsContainersDescriptors) {
457
- if (typeof descriptor.id !== 'string' && isFalsyOrWhitespace(descriptor.id)) {
458
- collector.error(( localizeWithPath(
459
- 'vs/workbench/api/browser/viewsExtensionPoint',
460
- 'requireidstring',
461
- "property `{0}` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed.",
462
- 'id'
463
- )));
464
- return false;
465
- }
466
- if (!(/^[a-z0-9_-]+$/i.test(descriptor.id))) {
467
- collector.error(( localizeWithPath(
468
- 'vs/workbench/api/browser/viewsExtensionPoint',
469
- 'requireidstring',
470
- "property `{0}` is mandatory and must be of type `string` with non-empty value. Only alphanumeric characters, '_', and '-' are allowed.",
471
- 'id'
472
- )));
473
- return false;
474
- }
475
- if (typeof descriptor.title !== 'string') {
476
- collector.error(( localizeWithPath(
477
- 'vs/workbench/api/browser/viewsExtensionPoint',
478
- 'requirestring',
479
- "property `{0}` is mandatory and must be of type `string`",
480
- 'title'
481
- )));
482
- return false;
483
- }
484
- if (typeof descriptor.icon !== 'string') {
485
- collector.error(( localizeWithPath(
486
- 'vs/workbench/api/browser/viewsExtensionPoint',
487
- 'requirestring',
488
- "property `{0}` is mandatory and must be of type `string`",
489
- 'icon'
490
- )));
491
- return false;
492
- }
493
- if (isFalsyOrWhitespace(descriptor.title)) {
494
- collector.warn(( localizeWithPath(
495
- 'vs/workbench/api/browser/viewsExtensionPoint',
496
- 'requirenonemptystring',
497
- "property `{0}` is mandatory and must be of type `string` with non-empty value",
498
- 'title'
499
- )));
500
- return true;
501
- }
502
- }
503
- return true;
504
- }
505
- registerCustomViewContainers(containers, extension, order, existingViewContainers, location) {
506
- containers.forEach(descriptor => {
507
- const themeIcon = ThemeIcon.fromString(descriptor.icon);
508
- const icon = themeIcon || joinPath(extension.extensionLocation, descriptor.icon);
509
- const id = `workbench.view.extension.${descriptor.id}`;
510
- const title = descriptor.title || id;
511
- const viewContainer = this.registerCustomViewContainer(id, title, icon, order++, extension.identifier, location);
512
- if (existingViewContainers.length) {
513
- const viewsToMove = [];
514
- for (const existingViewContainer of existingViewContainers) {
515
- if (viewContainer !== existingViewContainer) {
516
- viewsToMove.push(...this.viewsRegistry.getViews(existingViewContainer).filter(view => view.originalContainerId === descriptor.id));
517
- }
518
- }
519
- if (viewsToMove.length) {
520
- this.viewsRegistry.moveViews(viewsToMove, viewContainer);
521
- }
522
- }
523
- });
524
- return order;
525
- }
526
- registerCustomViewContainer(id, title, icon, order, extensionId, location) {
527
- let viewContainer = this.viewContainersRegistry.get(id);
528
- if (!viewContainer) {
529
- viewContainer = this.viewContainersRegistry.registerViewContainer({
530
- id,
531
- title: { value: title, original: title },
532
- extensionId,
533
- ctorDescriptor: ( new SyncDescriptor(ViewPaneContainer, [id, { mergeViewWithContainerWhenSingleView: true }])),
534
- hideIfEmpty: true,
535
- order,
536
- icon,
537
- }, location);
538
- }
539
- return viewContainer;
540
- }
541
- deregisterCustomViewContainer(viewContainer) {
542
- this.viewContainersRegistry.deregisterViewContainer(viewContainer);
543
- ( Registry.as(Extensions$2.Viewlets)).deregisterPaneComposite(viewContainer.id);
544
- }
545
- handleAndRegisterCustomViews() {
546
- viewsExtensionPoint.setHandler((extensions, { added, removed }) => {
547
- if (removed.length) {
548
- this.removeViews(removed);
549
- }
550
- if (added.length) {
551
- this.addViews(added);
552
- }
553
- });
554
- }
555
- addViews(extensions) {
556
- const viewIds = ( new Set());
557
- const allViewDescriptors = [];
558
- for (const extension of extensions) {
559
- const { value, collector } = extension;
560
- Object.entries(value).forEach(([key, value]) => {
561
- if (!this.isValidViewDescriptors(value, collector)) {
562
- return;
563
- }
564
- if (key === 'remote' && !isProposedApiEnabled(extension.description, 'contribViewsRemote')) {
565
- collector.warn(( localizeWithPath(
566
- 'vs/workbench/api/browser/viewsExtensionPoint',
567
- 'ViewContainerRequiresProposedAPI',
568
- "View container '{0}' requires 'enabledApiProposals: [\"contribViewsRemote\"]' to be added to 'Remote'.",
569
- key
570
- )));
571
- return;
572
- }
573
- const viewContainer = this.getViewContainer(key);
574
- if (!viewContainer) {
575
- collector.warn(( localizeWithPath(
576
- 'vs/workbench/api/browser/viewsExtensionPoint',
577
- 'ViewContainerDoesnotExist',
578
- "View container '{0}' does not exist and all views registered to it will be added to 'Explorer'.",
579
- key
580
- )));
581
- }
582
- const container = viewContainer || this.getDefaultViewContainer();
583
- const viewDescriptors = [];
584
- for (let index = 0; index < value.length; index++) {
585
- const item = value[index];
586
- if (( viewIds.has(item.id))) {
587
- collector.error(( localizeWithPath(
588
- 'vs/workbench/api/browser/viewsExtensionPoint',
589
- 'duplicateView1',
590
- "Cannot register multiple views with same id `{0}`",
591
- item.id
592
- )));
593
- continue;
594
- }
595
- if (this.viewsRegistry.getView(item.id) !== null) {
596
- collector.error(( localizeWithPath(
597
- 'vs/workbench/api/browser/viewsExtensionPoint',
598
- 'duplicateView2',
599
- "A view with id `{0}` is already registered.",
600
- item.id
601
- )));
602
- continue;
603
- }
604
- const order = ExtensionIdentifier.equals(extension.description.identifier, container.extensionId)
605
- ? index + 1
606
- : container.viewOrderDelegate
607
- ? container.viewOrderDelegate.getOrder(item.group)
608
- : undefined;
609
- let icon;
610
- if (typeof item.icon === 'string') {
611
- icon = ThemeIcon.fromString(item.icon) || joinPath(extension.description.extensionLocation, item.icon);
612
- }
613
- const initialVisibility = this.convertInitialVisibility(item.visibility);
614
- const type = this.getViewType(item.type);
615
- if (!type) {
616
- collector.error(( localizeWithPath(
617
- 'vs/workbench/api/browser/viewsExtensionPoint',
618
- 'unknownViewType',
619
- "Unknown view type `{0}`.",
620
- item.type
621
- )));
622
- continue;
623
- }
624
- let weight = undefined;
625
- if (typeof item.initialSize === 'number') {
626
- if (container.extensionId?.value === extension.description.identifier.value) {
627
- weight = item.initialSize;
628
- }
629
- else {
630
- this.logService.warn(`${extension.description.identifier.value} tried to set the view size of ${item.id} but it was ignored because the view container does not belong to it.`);
631
- }
632
- }
633
- const viewDescriptor = {
634
- type: type,
635
- ctorDescriptor: type === ViewType.Tree ? ( new SyncDescriptor(TreeViewPane)) : ( new SyncDescriptor(WebviewViewPane)),
636
- id: item.id,
637
- name: { value: item.name, original: item.name },
638
- when: ContextKeyExpr.deserialize(item.when),
639
- containerIcon: icon || viewContainer?.icon,
640
- containerTitle: item.contextualTitle || (viewContainer && (typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value)),
641
- canToggleVisibility: true,
642
- canMoveView: viewContainer?.id !== VIEWLET_ID,
643
- treeView: type === ViewType.Tree ? this.instantiationService.createInstance(CustomTreeView, item.id, item.name, extension.description.identifier.value) : undefined,
644
- collapsed: this.showCollapsed(container) || initialVisibility === InitialVisibility.Collapsed,
645
- order: order,
646
- extensionId: extension.description.identifier,
647
- originalContainerId: key,
648
- group: item.group,
649
- remoteAuthority: item.remoteName || item.remoteAuthority,
650
- virtualWorkspace: item.virtualWorkspace,
651
- hideByDefault: initialVisibility === InitialVisibility.Hidden,
652
- workspace: viewContainer?.id === VIEWLET_ID ? true : undefined,
653
- weight
654
- };
655
- viewIds.add(viewDescriptor.id);
656
- viewDescriptors.push(viewDescriptor);
657
- }
658
- allViewDescriptors.push({ viewContainer: container, views: viewDescriptors });
659
- });
660
- }
661
- this.viewsRegistry.registerViews2(allViewDescriptors);
662
- }
663
- getViewType(type) {
664
- if (type === ViewType.Webview) {
665
- return ViewType.Webview;
666
- }
667
- if (!type || type === ViewType.Tree) {
668
- return ViewType.Tree;
669
- }
670
- return undefined;
671
- }
672
- getDefaultViewContainer() {
673
- return this.viewContainersRegistry.get(VIEWLET_ID$1);
674
- }
675
- removeViews(extensions) {
676
- const removedExtensions = extensions.reduce((result, e) => { result.add(e.description.identifier); return result; }, ( new ExtensionIdentifierSet()));
677
- for (const viewContainer of this.viewContainersRegistry.all) {
678
- const removedViews = this.viewsRegistry.getViews(viewContainer).filter(v => v.extensionId && ( removedExtensions.has(v.extensionId)));
679
- if (removedViews.length) {
680
- this.viewsRegistry.deregisterViews(removedViews, viewContainer);
681
- for (const view of removedViews) {
682
- const anyView = view;
683
- if (anyView.treeView) {
684
- anyView.treeView.dispose();
685
- }
686
- }
687
- }
688
- }
689
- }
690
- convertInitialVisibility(value) {
691
- if (( Object.values(InitialVisibility)).includes(value)) {
692
- return value;
693
- }
694
- return undefined;
695
- }
696
- isValidViewDescriptors(viewDescriptors, collector) {
697
- if (!Array.isArray(viewDescriptors)) {
698
- collector.error(( localizeWithPath(
699
- 'vs/workbench/api/browser/viewsExtensionPoint',
700
- 'requirearray',
701
- "views must be an array"
702
- )));
703
- return false;
704
- }
705
- for (const descriptor of viewDescriptors) {
706
- if (typeof descriptor.id !== 'string') {
707
- collector.error(( localizeWithPath(
708
- 'vs/workbench/api/browser/viewsExtensionPoint',
709
- 'requirestring',
710
- "property `{0}` is mandatory and must be of type `string`",
711
- 'id'
712
- )));
713
- return false;
714
- }
715
- if (typeof descriptor.name !== 'string') {
716
- collector.error(( localizeWithPath(
717
- 'vs/workbench/api/browser/viewsExtensionPoint',
718
- 'requirestring',
719
- "property `{0}` is mandatory and must be of type `string`",
720
- 'name'
721
- )));
722
- return false;
723
- }
724
- if (descriptor.when && typeof descriptor.when !== 'string') {
725
- collector.error(( localizeWithPath(
726
- 'vs/workbench/api/browser/viewsExtensionPoint',
727
- 'optstring',
728
- "property `{0}` can be omitted or must be of type `string`",
729
- 'when'
730
- )));
731
- return false;
732
- }
733
- if (descriptor.icon && typeof descriptor.icon !== 'string') {
734
- collector.error(( localizeWithPath(
735
- 'vs/workbench/api/browser/viewsExtensionPoint',
736
- 'optstring',
737
- "property `{0}` can be omitted or must be of type `string`",
738
- 'icon'
739
- )));
740
- return false;
741
- }
742
- if (descriptor.contextualTitle && typeof descriptor.contextualTitle !== 'string') {
743
- collector.error(( localizeWithPath(
744
- 'vs/workbench/api/browser/viewsExtensionPoint',
745
- 'optstring',
746
- "property `{0}` can be omitted or must be of type `string`",
747
- 'contextualTitle'
748
- )));
749
- return false;
750
- }
751
- if (descriptor.visibility && !this.convertInitialVisibility(descriptor.visibility)) {
752
- collector.error(( localizeWithPath(
753
- 'vs/workbench/api/browser/viewsExtensionPoint',
754
- 'optenum',
755
- "property `{0}` can be omitted or must be one of {1}",
756
- 'visibility',
757
- ( Object.values(InitialVisibility)).join(', ')
758
- )));
759
- return false;
760
- }
761
- }
762
- return true;
763
- }
764
- getViewContainer(value) {
765
- switch (value) {
766
- case 'explorer': return this.viewContainersRegistry.get(VIEWLET_ID$1);
767
- case 'debug': return this.viewContainersRegistry.get(VIEWLET_ID$3);
768
- case 'scm': return this.viewContainersRegistry.get(VIEWLET_ID$2);
769
- case 'remote': return this.viewContainersRegistry.get(VIEWLET_ID);
770
- default: return this.viewContainersRegistry.get(`workbench.view.extension.${value}`);
771
- }
772
- }
773
- showCollapsed(container) {
774
- switch (container.id) {
775
- case VIEWLET_ID$1:
776
- case VIEWLET_ID$2:
777
- case VIEWLET_ID$3:
778
- return true;
779
- }
780
- return false;
781
- }
782
- };
783
- ViewsExtensionHandler = ( __decorate([
784
- ( __param(0, IInstantiationService)),
785
- ( __param(1, ILogService))
786
- ], ViewsExtensionHandler));
787
- const workbenchRegistry = ( Registry.as(Extensions.Workbench));
788
- workbenchRegistry.registerWorkbenchContribution(ViewsExtensionHandler, 1 );
789
-
790
- export { viewsContainersContribution };