@codingame/monaco-vscode-view-common-service-override 4.5.0-improve-code-splitting.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 (114) hide show
  1. package/assets/fake.html +10 -0
  2. package/assets/index-no-csp.html +1230 -0
  3. package/assets/index.html +1231 -0
  4. package/assets/service-worker.js +457 -0
  5. package/index.d.ts +1 -0
  6. package/index.js +1 -0
  7. package/override/vs/workbench/browser/parts/editor/textEditor.js +5 -0
  8. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +11 -0
  9. package/package.json +32 -0
  10. package/tools/editorAssets.js +4 -0
  11. package/tools/url.js +10 -0
  12. package/viewCommon.d.ts +5 -0
  13. package/viewCommon.js +105 -0
  14. package/vscode/src/vs/base/browser/deviceAccess.js +61 -0
  15. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +180 -0
  16. package/vscode/src/vs/base/browser/ui/grid/grid.js +494 -0
  17. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +6 -0
  18. package/vscode/src/vs/base/browser/ui/grid/gridview.js +1113 -0
  19. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +12 -0
  20. package/vscode/src/vs/platform/webview/common/mimeTypes.js +24 -0
  21. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +64 -0
  22. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +907 -0
  23. package/vscode/src/vs/workbench/browser/actions/listCommands.js +764 -0
  24. package/vscode/src/vs/workbench/browser/actions/navigationActions.js +301 -0
  25. package/vscode/src/vs/workbench/browser/media/style.css.js +6 -0
  26. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +671 -0
  27. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +6 -0
  28. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +6 -0
  29. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +229 -0
  30. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +6 -0
  31. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +606 -0
  32. package/vscode/src/vs/workbench/browser/parts/compositePart.js +346 -0
  33. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +246 -0
  34. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +1403 -0
  35. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +188 -0
  36. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +523 -0
  37. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +1030 -0
  38. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +391 -0
  39. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +6 -0
  40. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +6 -0
  41. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +6 -0
  42. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +643 -0
  43. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +472 -0
  44. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +68 -0
  45. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +160 -0
  46. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +6 -0
  47. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarActions.js +39 -0
  48. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +238 -0
  49. package/vscode/src/vs/workbench/browser/style.js +54 -0
  50. package/vscode/src/vs/workbench/browser/window.js +381 -0
  51. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +300 -0
  52. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +367 -0
  53. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +135 -0
  54. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +6 -0
  55. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +18 -0
  56. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +146 -0
  57. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +215 -0
  58. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +6 -0
  59. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +78 -0
  60. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +56 -0
  61. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +63 -0
  62. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +183 -0
  63. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +8 -0
  64. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +408 -0
  65. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +6 -0
  66. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +147 -0
  67. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +635 -0
  68. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +230 -0
  69. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +75 -0
  70. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +42 -0
  71. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +81 -0
  72. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +350 -0
  73. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +100 -0
  74. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +148 -0
  75. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +106 -0
  76. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +403 -0
  77. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +199 -0
  78. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +41 -0
  79. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +128 -0
  80. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +6 -0
  81. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +619 -0
  82. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +161 -0
  83. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +266 -0
  84. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +173 -0
  85. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +195 -0
  86. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +38 -0
  87. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +41 -0
  88. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +6 -0
  89. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +283 -0
  90. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +362 -0
  91. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +133 -0
  92. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +314 -0
  93. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +96 -0
  94. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +98 -0
  95. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +656 -0
  96. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +65 -0
  97. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +59 -0
  98. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +143 -0
  99. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +121 -0
  100. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +67 -0
  101. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +234 -0
  102. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewService.js +45 -0
  103. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +145 -0
  104. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +341 -0
  105. package/vscode/src/vs/workbench/services/driver/browser/driver.js +186 -0
  106. package/vscode/src/vs/workbench/services/editor/browser/editorPaneService.js +13 -0
  107. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +676 -0
  108. package/vscode/src/vs/workbench/services/history/browser/historyService.js +1516 -0
  109. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +6 -0
  110. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +527 -0
  111. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +102 -0
  112. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +133 -0
  113. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +711 -0
  114. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +603 -0
@@ -0,0 +1,408 @@
1
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
2
+ import './media/languageStatus.css.js';
3
+ import { getWindow, addDisposableListener, append } from 'vscode/vscode/vs/base/browser/dom';
4
+ import { renderLabelWithIcons } from 'vscode/vscode/vs/base/browser/ui/iconLabel/iconLabels';
5
+ import { Disposable, DisposableStore, dispose, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
6
+ import Severity$1 from 'vscode/vscode/vs/base/common/severity';
7
+ import { getCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
8
+ import { localizeWithPath, localize2WithPath } from 'vscode/vscode/vs/nls';
9
+ import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
10
+ import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
11
+ import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
12
+ import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
13
+ import { ILanguageStatusService } from 'vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService.service';
14
+ import { ShowTooltipCommand } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar';
15
+ import { IStatusbarService } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar.service';
16
+ import { parseLinkedText } from 'vscode/vscode/vs/base/common/linkedText';
17
+ import { Link } from 'vscode/vscode/vs/platform/opener/browser/link';
18
+ import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
19
+ import { MarkdownString } from 'vscode/vscode/vs/base/common/htmlContent';
20
+ import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
21
+ import { Action } from 'vscode/vscode/vs/base/common/actions';
22
+ import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
23
+ import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
24
+ import { equals } from 'vscode/vscode/vs/base/common/arrays';
25
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
26
+ import { registerAction2, Action2 } from 'vscode/vscode/vs/platform/actions/common/actions';
27
+ import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
28
+ import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
29
+ import { IEditorGroupsService } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
30
+ import { ServiceCollection } from 'vscode/vscode/vs/platform/instantiation/common/serviceCollection';
31
+ import { nativeHoverDelegate } from 'vscode/vscode/vs/platform/hover/browser/hover';
32
+
33
+ var LanguageStatus_1;
34
+ class LanguageStatusViewModel {
35
+ constructor(combined, dedicated) {
36
+ this.combined = combined;
37
+ this.dedicated = dedicated;
38
+ }
39
+ isEqual(other) {
40
+ return equals(this.combined, other.combined) && equals(this.dedicated, other.dedicated);
41
+ }
42
+ }
43
+ let StoredCounter = class StoredCounter {
44
+ constructor(_storageService, _key) {
45
+ this._storageService = _storageService;
46
+ this._key = _key;
47
+ }
48
+ get value() {
49
+ return this._storageService.getNumber(this._key, 0 , 0);
50
+ }
51
+ increment() {
52
+ const n = this.value + 1;
53
+ this._storageService.store(this._key, n, 0 , 1 );
54
+ return n;
55
+ }
56
+ };
57
+ StoredCounter = ( __decorate([
58
+ ( __param(0, IStorageService))
59
+ ], StoredCounter));
60
+ let LanguageStatusContribution = class LanguageStatusContribution extends Disposable {
61
+ constructor(instantiationService, editorGroupService, editorService) {
62
+ super();
63
+ const mainInstantiationService = instantiationService.createChild(( new ServiceCollection([IEditorService, editorService.createScoped('main', this._store)])));
64
+ this._register(mainInstantiationService.createInstance(LanguageStatus));
65
+ this._register(editorGroupService.onDidCreateAuxiliaryEditorPart(({ instantiationService, disposables }) => {
66
+ disposables.add(instantiationService.createInstance(LanguageStatus));
67
+ }));
68
+ }
69
+ };
70
+ LanguageStatusContribution = ( __decorate([
71
+ ( __param(0, IInstantiationService)),
72
+ ( __param(1, IEditorGroupsService)),
73
+ ( __param(2, IEditorService))
74
+ ], LanguageStatusContribution));
75
+ let LanguageStatus = class LanguageStatus {
76
+ static { LanguageStatus_1 = this; }
77
+ static { this._id = 'status.languageStatus'; }
78
+ static { this._keyDedicatedItems = 'languageStatus.dedicated'; }
79
+ constructor(_languageStatusService, _statusBarService, _editorService, _openerService, _storageService) {
80
+ this._languageStatusService = _languageStatusService;
81
+ this._statusBarService = _statusBarService;
82
+ this._editorService = _editorService;
83
+ this._openerService = _openerService;
84
+ this._storageService = _storageService;
85
+ this._disposables = ( new DisposableStore());
86
+ this._dedicated = ( new Set());
87
+ this._dedicatedEntries = ( new Map());
88
+ this._renderDisposables = ( new DisposableStore());
89
+ _storageService.onDidChangeValue(0 , LanguageStatus_1._keyDedicatedItems, this._disposables)(this._handleStorageChange, this, this._disposables);
90
+ this._restoreState();
91
+ this._interactionCounter = ( new StoredCounter(_storageService, 'languageStatus.interactCount'));
92
+ _languageStatusService.onDidChange(this._update, this, this._disposables);
93
+ _editorService.onDidActiveEditorChange(this._update, this, this._disposables);
94
+ this._update();
95
+ _statusBarService.onDidChangeEntryVisibility(e => {
96
+ if (!e.visible && ( this._dedicated.has(e.id))) {
97
+ this._dedicated.delete(e.id);
98
+ this._update();
99
+ this._storeState();
100
+ }
101
+ }, this._disposables);
102
+ }
103
+ dispose() {
104
+ this._disposables.dispose();
105
+ this._combinedEntry?.dispose();
106
+ dispose(( this._dedicatedEntries.values()));
107
+ this._renderDisposables.dispose();
108
+ }
109
+ _handleStorageChange() {
110
+ this._restoreState();
111
+ this._update();
112
+ }
113
+ _restoreState() {
114
+ const raw = this._storageService.get(LanguageStatus_1._keyDedicatedItems, 0 , '[]');
115
+ try {
116
+ const ids = JSON.parse(raw);
117
+ this._dedicated = ( new Set(ids));
118
+ }
119
+ catch {
120
+ this._dedicated.clear();
121
+ }
122
+ }
123
+ _storeState() {
124
+ if (this._dedicated.size === 0) {
125
+ this._storageService.remove(LanguageStatus_1._keyDedicatedItems, 0 );
126
+ }
127
+ else {
128
+ const raw = JSON.stringify(Array.from(( this._dedicated.keys())));
129
+ this._storageService.store(LanguageStatus_1._keyDedicatedItems, raw, 0 , 0 );
130
+ }
131
+ }
132
+ _createViewModel(editor) {
133
+ if (!editor?.hasModel()) {
134
+ return ( new LanguageStatusViewModel([], []));
135
+ }
136
+ const all = this._languageStatusService.getLanguageStatus(editor.getModel());
137
+ const combined = [];
138
+ const dedicated = [];
139
+ for (const item of all) {
140
+ if (( this._dedicated.has(item.id))) {
141
+ dedicated.push(item);
142
+ }
143
+ combined.push(item);
144
+ }
145
+ return ( new LanguageStatusViewModel(combined, dedicated));
146
+ }
147
+ _update() {
148
+ const editor = getCodeEditor(this._editorService.activeTextEditorControl);
149
+ const model = this._createViewModel(editor);
150
+ if (this._model?.isEqual(model)) {
151
+ return;
152
+ }
153
+ this._renderDisposables.clear();
154
+ this._model = model;
155
+ editor?.onDidChangeModelLanguage(this._update, this, this._renderDisposables);
156
+ if (model.combined.length === 0) {
157
+ this._combinedEntry?.dispose();
158
+ this._combinedEntry = undefined;
159
+ }
160
+ else {
161
+ const [first] = model.combined;
162
+ const showSeverity = first.severity >= Severity$1.Warning;
163
+ const text = LanguageStatus_1._severityToComboCodicon(first.severity);
164
+ let isOneBusy = false;
165
+ const ariaLabels = [];
166
+ const element = document.createElement('div');
167
+ for (const status of model.combined) {
168
+ const isPinned = model.dedicated.includes(status);
169
+ element.appendChild(this._renderStatus(status, showSeverity, isPinned, this._renderDisposables));
170
+ ariaLabels.push(LanguageStatus_1._accessibilityInformation(status).label);
171
+ isOneBusy = isOneBusy || (!isPinned && status.busy);
172
+ }
173
+ const props = {
174
+ name: ( localizeWithPath(
175
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
176
+ 'langStatus.name',
177
+ "Editor Language Status"
178
+ )),
179
+ ariaLabel: ( localizeWithPath(
180
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
181
+ 'langStatus.aria',
182
+ "Editor Language Status: {0}",
183
+ ariaLabels.join(', next: ')
184
+ )),
185
+ tooltip: element,
186
+ command: ShowTooltipCommand,
187
+ text: isOneBusy ? `${text}\u00A0\u00A0$(sync~spin)` : text,
188
+ };
189
+ if (!this._combinedEntry) {
190
+ this._combinedEntry = this._statusBarService.addEntry(props, LanguageStatus_1._id, 1 , { id: 'status.editor.mode', alignment: 0 , compact: true });
191
+ }
192
+ else {
193
+ this._combinedEntry.update(props);
194
+ }
195
+ const userHasInteractedWithStatus = this._interactionCounter.value >= 3;
196
+ const targetWindow = getWindow(editor?.getContainerDomNode());
197
+ const node = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus A>SPAN.codicon');
198
+ const container = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus');
199
+ if (node instanceof HTMLElement && container) {
200
+ const _wiggle = 'wiggle';
201
+ const _flash = 'flash';
202
+ if (!isOneBusy) {
203
+ node.classList.toggle(_wiggle, showSeverity || !userHasInteractedWithStatus);
204
+ this._renderDisposables.add(addDisposableListener(node, 'animationend', _e => node.classList.remove(_wiggle)));
205
+ container.classList.toggle(_flash, showSeverity);
206
+ this._renderDisposables.add(addDisposableListener(container, 'animationend', _e => container.classList.remove(_flash)));
207
+ }
208
+ else {
209
+ node.classList.remove(_wiggle);
210
+ container.classList.remove(_flash);
211
+ }
212
+ }
213
+ if (!userHasInteractedWithStatus) {
214
+ const hoverTarget = targetWindow.document.querySelector('.monaco-workbench .context-view');
215
+ if (hoverTarget instanceof HTMLElement) {
216
+ const observer = ( new MutationObserver(() => {
217
+ if (targetWindow.document.contains(element)) {
218
+ this._interactionCounter.increment();
219
+ observer.disconnect();
220
+ }
221
+ }));
222
+ observer.observe(hoverTarget, { childList: true, subtree: true });
223
+ this._renderDisposables.add(toDisposable(() => observer.disconnect()));
224
+ }
225
+ }
226
+ }
227
+ const newDedicatedEntries = ( new Map());
228
+ for (const status of model.dedicated) {
229
+ const props = LanguageStatus_1._asStatusbarEntry(status);
230
+ let entry = this._dedicatedEntries.get(status.id);
231
+ if (!entry) {
232
+ entry = this._statusBarService.addEntry(props, status.id, 1 , { id: 'status.editor.mode', alignment: 1 });
233
+ }
234
+ else {
235
+ entry.update(props);
236
+ this._dedicatedEntries.delete(status.id);
237
+ }
238
+ newDedicatedEntries.set(status.id, entry);
239
+ }
240
+ dispose(( this._dedicatedEntries.values()));
241
+ this._dedicatedEntries = newDedicatedEntries;
242
+ }
243
+ _renderStatus(status, showSeverity, isPinned, store) {
244
+ const parent = document.createElement('div');
245
+ parent.classList.add('hover-language-status');
246
+ const severity = document.createElement('div');
247
+ severity.classList.add('severity', `sev${status.severity}`);
248
+ severity.classList.toggle('show', showSeverity);
249
+ const severityText = LanguageStatus_1._severityToSingleCodicon(status.severity);
250
+ append(severity, ...renderLabelWithIcons(severityText));
251
+ parent.appendChild(severity);
252
+ const element = document.createElement('div');
253
+ element.classList.add('element');
254
+ parent.appendChild(element);
255
+ const left = document.createElement('div');
256
+ left.classList.add('left');
257
+ element.appendChild(left);
258
+ const label = document.createElement('span');
259
+ label.classList.add('label');
260
+ const labelValue = typeof status.label === 'string' ? status.label : status.label.value;
261
+ append(label, ...renderLabelWithIcons(status.busy ? `$(sync~spin)\u00A0\u00A0${labelValue}` : labelValue));
262
+ left.appendChild(label);
263
+ const detail = document.createElement('span');
264
+ detail.classList.add('detail');
265
+ this._renderTextPlus(detail, status.detail, store);
266
+ left.appendChild(detail);
267
+ const right = document.createElement('div');
268
+ right.classList.add('right');
269
+ element.appendChild(right);
270
+ const { command } = status;
271
+ if (command) {
272
+ store.add(( new Link(right, {
273
+ label: command.title,
274
+ title: command.tooltip,
275
+ href: ( ( URI.from({
276
+ scheme: 'command', path: command.id, query: command.arguments && JSON.stringify(command.arguments)
277
+ })).toString())
278
+ }, { hoverDelegate: nativeHoverDelegate }, this._openerService)));
279
+ }
280
+ const actionBar = ( new ActionBar(right, { hoverDelegate: nativeHoverDelegate }));
281
+ store.add(actionBar);
282
+ let action;
283
+ if (!isPinned) {
284
+ action = ( new Action('pin', ( localizeWithPath(
285
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
286
+ 'pin',
287
+ "Add to Status Bar"
288
+ )), ThemeIcon.asClassName(Codicon.pin), true, () => {
289
+ this._dedicated.add(status.id);
290
+ this._statusBarService.updateEntryVisibility(status.id, true);
291
+ this._update();
292
+ this._storeState();
293
+ }));
294
+ }
295
+ else {
296
+ action = ( new Action('unpin', ( localizeWithPath(
297
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
298
+ 'unpin',
299
+ "Remove from Status Bar"
300
+ )), ThemeIcon.asClassName(Codicon.pinned), true, () => {
301
+ this._dedicated.delete(status.id);
302
+ this._statusBarService.updateEntryVisibility(status.id, false);
303
+ this._update();
304
+ this._storeState();
305
+ }));
306
+ }
307
+ actionBar.push(action, { icon: true, label: false });
308
+ store.add(action);
309
+ return parent;
310
+ }
311
+ static _severityToComboCodicon(sev) {
312
+ switch (sev) {
313
+ case Severity$1.Error: return '$(bracket-error)';
314
+ case Severity$1.Warning: return '$(bracket-dot)';
315
+ default: return '$(bracket)';
316
+ }
317
+ }
318
+ static _severityToSingleCodicon(sev) {
319
+ switch (sev) {
320
+ case Severity$1.Error: return '$(error)';
321
+ case Severity$1.Warning: return '$(info)';
322
+ default: return '$(check)';
323
+ }
324
+ }
325
+ _renderTextPlus(target, text, store) {
326
+ for (const node of parseLinkedText(text).nodes) {
327
+ if (typeof node === 'string') {
328
+ const parts = renderLabelWithIcons(node);
329
+ append(target, ...parts);
330
+ }
331
+ else {
332
+ store.add(( new Link(target, node, undefined, this._openerService)));
333
+ }
334
+ }
335
+ }
336
+ static _accessibilityInformation(status) {
337
+ if (status.accessibilityInfo) {
338
+ return status.accessibilityInfo;
339
+ }
340
+ const textValue = typeof status.label === 'string' ? status.label : status.label.value;
341
+ if (status.detail) {
342
+ return { label: ( localizeWithPath(
343
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
344
+ 'aria.1',
345
+ '{0}, {1}',
346
+ textValue,
347
+ status.detail
348
+ )) };
349
+ }
350
+ else {
351
+ return { label: ( localizeWithPath(
352
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
353
+ 'aria.2',
354
+ '{0}',
355
+ textValue
356
+ )) };
357
+ }
358
+ }
359
+ static _asStatusbarEntry(item) {
360
+ let kind;
361
+ if (item.severity === Severity$1.Warning) {
362
+ kind = 'warning';
363
+ }
364
+ else if (item.severity === Severity$1.Error) {
365
+ kind = 'error';
366
+ }
367
+ const textValue = typeof item.label === 'string' ? item.label : item.label.shortValue;
368
+ return {
369
+ name: ( localizeWithPath(
370
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
371
+ 'name.pattern',
372
+ '{0} (Language Status)',
373
+ item.name
374
+ )),
375
+ text: item.busy ? `${textValue}\u00A0\u00A0$(sync~spin)` : textValue,
376
+ ariaLabel: LanguageStatus_1._accessibilityInformation(item).label,
377
+ role: item.accessibilityInfo?.role,
378
+ tooltip: item.command?.tooltip || ( new MarkdownString(item.detail, { isTrusted: true, supportThemeIcons: true })),
379
+ kind,
380
+ command: item.command
381
+ };
382
+ }
383
+ };
384
+ LanguageStatus = LanguageStatus_1 = ( __decorate([
385
+ ( __param(0, ILanguageStatusService)),
386
+ ( __param(1, IStatusbarService)),
387
+ ( __param(2, IEditorService)),
388
+ ( __param(3, IOpenerService)),
389
+ ( __param(4, IStorageService))
390
+ ], LanguageStatus));
391
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(LanguageStatusContribution, 3 );
392
+ registerAction2(class extends Action2 {
393
+ constructor() {
394
+ super({
395
+ id: 'editor.inlayHints.Reset',
396
+ title: ( localize2WithPath(
397
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
398
+ 'reset',
399
+ "Reset Language Status Interaction Counter"
400
+ )),
401
+ category: Categories.View,
402
+ f1: true
403
+ });
404
+ }
405
+ run(accessor) {
406
+ accessor.get(IStorageService).remove('languageStatus.interactCount', 0 );
407
+ }
408
+ });
@@ -0,0 +1,6 @@
1
+ import n from 'vscode/external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
+
3
+ var css = "@keyframes wiggle{0%{transform:rotate(0) scale(1)}15%,45%{transform:rotate(.04turn) scale(1.1)}30%,60%{transform:rotate(-.04turn) scale(1.2)}to{transform:rotate(0) scale(1)}}.monaco-workbench .statusbar DIV#status\\.languageStatus A>SPAN.codicon.wiggle{animation-duration:.8s;animation-iteration-count:1;animation-name:wiggle}@keyframes flash{0%{background-color:initial}50%{background-color:var(--vscode-statusBarItem-prominentBackground)}to{background-color:initial}}.monaco-workbench .statusbar DIV#status\\.languageStatus.flash A{animation-duration:.8s;animation-iteration-count:1;animation-name:flash}.monaco-workbench .hover-language-status{display:flex}.monaco-workbench .hover-language-status:not(:last-child){border-bottom:1px solid var(--vscode-notifications-border)}.monaco-workbench .hover-language-status>.severity{display:none;flex:1;margin:auto;padding-right:8px}.monaco-workbench .hover-language-status>.severity.sev3{color:var(--vscode-notificationsErrorIcon-foreground)}.monaco-workbench .hover-language-status>.severity.sev2{color:var(--vscode-notificationsInfoIcon-foreground)}.monaco-workbench .hover-language-status>.severity.show{display:inherit}.monaco-workbench .hover-language-status>.element{display:flex;flex-grow:100;justify-content:space-between;vertical-align:middle}.monaco-workbench .hover-language-status>.element>.left>.detail:not(:empty):before{content:\"\\2013\";opacity:.6;padding:0 4px}.monaco-workbench .hover-language-status>.element>.left>.label:empty{display:none}.monaco-workbench .hover-language-status>.element .left{margin:auto 0}.monaco-workbench .hover-language-status>.element .right{display:flex;margin:auto 0}.monaco-workbench .hover-language-status>.element .right:not(:empty){padding-left:16px}.monaco-workbench .hover-language-status>.element .right .monaco-link{margin:auto 0;white-space:nowrap}.monaco-workbench .hover-language-status>.element .right .monaco-action-bar:not(:first-child){padding-left:8px}";
4
+ n(css,{});
5
+
6
+ export { css, css as default };
@@ -0,0 +1,147 @@
1
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
2
+ import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
3
+ import Severity$1 from 'vscode/vscode/vs/base/common/severity';
4
+ import { getCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
5
+ import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
6
+ import { ILanguageStatusService } from 'vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService.service';
7
+ import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
8
+ import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
9
+ import { localizeWithPath } from 'vscode/vscode/vs/nls';
10
+ import { FoldingController } from 'vscode/vscode/vs/editor/contrib/folding/browser/folding';
11
+ import { ColorDetector } from 'vscode/vscode/vs/editor/contrib/colorPicker/browser/colorDetector';
12
+
13
+ const openSettingsCommand = 'workbench.action.openSettings';
14
+ const configureSettingsLabel = ( localizeWithPath(
15
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
16
+ 'status.button.configure',
17
+ "Configure"
18
+ ));
19
+ let LimitIndicatorContribution = class LimitIndicatorContribution extends Disposable {
20
+ constructor(editorService, languageStatusService) {
21
+ super();
22
+ const accessors = [( new ColorDecorationAccessor()), ( new FoldingRangeAccessor())];
23
+ const statusEntries = ( accessors.map(indicator => ( new LanguageStatusEntry(languageStatusService, indicator))));
24
+ statusEntries.forEach(entry => this._register(entry));
25
+ let control;
26
+ const onActiveEditorChanged = () => {
27
+ const activeControl = editorService.activeTextEditorControl;
28
+ if (activeControl === control) {
29
+ return;
30
+ }
31
+ control = activeControl;
32
+ const editor = getCodeEditor(activeControl);
33
+ statusEntries.forEach(statusEntry => statusEntry.onActiveEditorChanged(editor));
34
+ };
35
+ this._register(editorService.onDidActiveEditorChange(onActiveEditorChanged));
36
+ onActiveEditorChanged();
37
+ }
38
+ };
39
+ LimitIndicatorContribution = ( __decorate([
40
+ ( __param(0, IEditorService)),
41
+ ( __param(1, ILanguageStatusService))
42
+ ], LimitIndicatorContribution));
43
+ class ColorDecorationAccessor {
44
+ constructor() {
45
+ this.id = 'decoratorsLimitInfo';
46
+ this.name = ( localizeWithPath(
47
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
48
+ 'colorDecoratorsStatusItem.name',
49
+ 'Color Decorator Status'
50
+ ));
51
+ this.label = ( localizeWithPath(
52
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
53
+ 'status.limitedColorDecorators.short',
54
+ 'Color Decorators'
55
+ ));
56
+ this.source = ( localizeWithPath(
57
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
58
+ 'colorDecoratorsStatusItem.source',
59
+ 'Color Decorators'
60
+ ));
61
+ this.settingsId = 'editor.colorDecoratorsLimit';
62
+ }
63
+ getLimitReporter(editor) {
64
+ return ColorDetector.get(editor)?.limitReporter;
65
+ }
66
+ }
67
+ class FoldingRangeAccessor {
68
+ constructor() {
69
+ this.id = 'foldingLimitInfo';
70
+ this.name = ( localizeWithPath(
71
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
72
+ 'foldingRangesStatusItem.name',
73
+ 'Folding Status'
74
+ ));
75
+ this.label = ( localizeWithPath(
76
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
77
+ 'status.limitedFoldingRanges.short',
78
+ 'Folding Ranges'
79
+ ));
80
+ this.source = ( localizeWithPath(
81
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
82
+ 'foldingRangesStatusItem.source',
83
+ 'Folding'
84
+ ));
85
+ this.settingsId = 'editor.foldingMaximumRegions';
86
+ }
87
+ getLimitReporter(editor) {
88
+ return FoldingController.get(editor)?.limitReporter;
89
+ }
90
+ }
91
+ class LanguageStatusEntry {
92
+ constructor(languageStatusService, accessor) {
93
+ this.languageStatusService = languageStatusService;
94
+ this.accessor = accessor;
95
+ }
96
+ onActiveEditorChanged(editor) {
97
+ if (this._indicatorChangeListener) {
98
+ this._indicatorChangeListener.dispose();
99
+ this._indicatorChangeListener = undefined;
100
+ }
101
+ let info;
102
+ if (editor) {
103
+ info = this.accessor.getLimitReporter(editor);
104
+ }
105
+ this.updateStatusItem(info);
106
+ if (info) {
107
+ this._indicatorChangeListener = info.onDidChange(_ => {
108
+ this.updateStatusItem(info);
109
+ });
110
+ return true;
111
+ }
112
+ return false;
113
+ }
114
+ updateStatusItem(info) {
115
+ if (this._limitStatusItem) {
116
+ this._limitStatusItem.dispose();
117
+ this._limitStatusItem = undefined;
118
+ }
119
+ if (info && info.limited !== false) {
120
+ const status = {
121
+ id: this.accessor.id,
122
+ selector: '*',
123
+ name: this.accessor.name,
124
+ severity: Severity$1.Warning,
125
+ label: this.accessor.label,
126
+ detail: ( localizeWithPath(
127
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
128
+ 'status.limited.details',
129
+ 'only {0} shown for performance reasons',
130
+ info.limited
131
+ )),
132
+ command: { id: openSettingsCommand, arguments: [this.accessor.settingsId], title: configureSettingsLabel },
133
+ accessibilityInfo: undefined,
134
+ source: this.accessor.source,
135
+ busy: false
136
+ };
137
+ this._limitStatusItem = this.languageStatusService.addStatus(status);
138
+ }
139
+ }
140
+ dispose() {
141
+ this._limitStatusItem = undefined;
142
+ this._indicatorChangeListener = undefined;
143
+ }
144
+ }
145
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(LimitIndicatorContribution, 3 );
146
+
147
+ export { LimitIndicatorContribution };