@codingame/monaco-vscode-view-common-service-override 11.1.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/index.d.ts +3 -1
  2. package/index.js +110 -1
  3. package/package.json +64 -10
  4. package/service-override/tools/editorAssets.d.ts +1 -0
  5. package/service-override/tools/editorAssets.js +5 -0
  6. package/vscode/src/vs/platform/actions/browser/actionViewItemService.d.ts +21 -0
  7. package/vscode/src/vs/platform/actions/browser/actionViewItemService.js +2 -0
  8. package/vscode/src/vs/platform/webview/common/mimeTypes.d.ts +2 -0
  9. package/vscode/src/vs/platform/webview/common/mimeTypes.js +1 -0
  10. package/vscode/src/vs/platform/webview/common/webviewPortMapping.d.ts +18 -0
  11. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +1 -0
  12. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.d.ts +7 -0
  13. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +116 -115
  14. package/vscode/src/vs/workbench/browser/actions/listCommands.d.ts +1 -0
  15. package/vscode/src/vs/workbench/browser/actions/listCommands.js +120 -125
  16. package/vscode/src/vs/workbench/browser/actions/navigationActions.d.ts +1 -0
  17. package/vscode/src/vs/workbench/browser/actions/navigationActions.js +81 -74
  18. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.d.ts +1 -0
  19. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +216 -250
  20. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.d.ts +21 -0
  21. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +26 -25
  22. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.d.ts +32 -0
  23. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +10 -8
  24. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.d.ts +1 -0
  25. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +58 -64
  26. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.d.ts +50 -0
  27. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +48 -38
  28. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.d.ts +54 -0
  29. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +19 -40
  30. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +1 -1
  31. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.d.ts +1 -0
  32. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +7 -5
  33. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.d.ts +58 -0
  34. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +6 -4
  35. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.d.ts +45 -0
  36. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +6 -4
  37. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +1 -1
  38. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.d.ts +18 -0
  39. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +16 -16
  40. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.d.ts +65 -0
  41. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditor.js +15 -10
  42. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.d.ts +12 -0
  43. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +1 -0
  44. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.d.ts +15 -0
  45. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +27 -25
  46. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.d.ts +1 -0
  47. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +4 -2
  48. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.d.ts +1 -0
  49. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +6 -386
  50. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.d.ts +15 -0
  51. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.js +385 -0
  52. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +1 -1
  53. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.d.ts +13 -0
  54. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +20 -20
  55. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.d.ts +105 -0
  56. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +50 -62
  57. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.d.ts +18 -0
  58. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +16 -15
  59. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.d.ts +1 -0
  60. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +15 -13
  61. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.d.ts +27 -0
  62. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +2 -1
  63. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.d.ts +13 -0
  64. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +14 -13
  65. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.d.ts +31 -0
  66. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +2 -1
  67. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.d.ts +9 -0
  68. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +15 -14
  69. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.d.ts +45 -0
  70. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +3 -2
  71. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.d.ts +43 -0
  72. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +37 -39
  73. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.d.ts +11 -0
  74. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +22 -21
  75. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.d.ts +7 -0
  76. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +3 -2
  77. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +1 -1
  78. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.d.ts +117 -0
  79. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +57 -53
  80. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.d.ts +22 -0
  81. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +27 -25
  82. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.d.ts +41 -0
  83. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +15 -13
  84. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.d.ts +29 -0
  85. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +4 -3
  86. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.d.ts +11 -0
  87. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +28 -28
  88. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.d.ts +1 -0
  89. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +7 -5
  90. package/vscode/src/vs/workbench/contrib/sash/browser/sash.d.ts +15 -0
  91. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +2 -1
  92. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +1 -1
  93. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.d.ts +1 -0
  94. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +54 -56
  95. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.d.ts +50 -0
  96. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +48 -38
  97. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.d.ts +52 -0
  98. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +19 -30
  99. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.d.ts +101 -0
  100. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +3 -2
  101. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.d.ts +38 -0
  102. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +7 -6
  103. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.d.ts +23 -0
  104. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +7 -6
  105. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.d.ts +139 -0
  106. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +58 -56
  107. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.d.ts +33 -0
  108. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +4 -3
  109. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.d.ts +21 -0
  110. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +2 -1
  111. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.d.ts +33 -0
  112. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +28 -28
  113. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.d.ts +50 -0
  114. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +3 -2
  115. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.d.ts +1 -0
  116. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +15 -13
  117. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.d.ts +64 -0
  118. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +10 -8
  119. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewService.d.ts +30 -0
  120. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewService.js +1 -0
  121. package/vscode/src/vs/workbench/services/editor/browser/editorPaneService.d.ts +6 -0
  122. package/vscode/src/vs/workbench/services/editor/browser/editorPaneService.js +3 -1
  123. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.d.ts +60 -0
  124. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +64 -63
  125. package/vscode/src/vs/workbench/services/history/browser/historyService.d.ts +184 -0
  126. package/vscode/src/vs/workbench/services/history/browser/historyService.js +154 -148
  127. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +1 -1
  128. package/vscode/src/vs/workbench/services/progress/browser/progressService.d.ts +36 -0
  129. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +59 -54
  130. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.d.ts +34 -0
  131. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +4 -3
  132. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +71 -0
  133. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +4 -2
  134. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.d.ts +122 -0
  135. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +86 -90
  136. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.d.ts +80 -0
  137. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +58 -64
  138. package/override/vs/workbench/browser/parts/editor/textEditor.js +0 -5
  139. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -11
  140. package/tools/editorAssets.js +0 -4
  141. package/tools/url.js +0 -10
  142. package/viewCommon.js +0 -109
@@ -0,0 +1,385 @@
1
+
2
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
3
+ import './media/languageStatus.css.js';
4
+ import { getWindow, isHTMLElement, addDisposableListener, append } from 'vscode/vscode/vs/base/browser/dom';
5
+ import { renderLabelWithIcons } from 'vscode/vscode/vs/base/browser/ui/iconLabel/iconLabels';
6
+ import { Disposable, DisposableStore, dispose, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
7
+ import Severity from 'vscode/vscode/vs/base/common/severity';
8
+ import { getCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
9
+ import { localize, localize2 } from 'vscode/vscode/vs/nls';
10
+ import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
11
+ import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
12
+ import { ILanguageStatusService } from 'vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService.service';
13
+ import { ShowTooltipCommand, StatusbarAlignment } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar';
14
+ import { IStatusbarService } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar.service';
15
+ import { parseLinkedText } from 'vscode/vscode/vs/base/common/linkedText';
16
+ import { Link } from 'vscode/vscode/vs/platform/opener/browser/link';
17
+ import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
18
+ import { MarkdownString } from 'vscode/vscode/vs/base/common/htmlContent';
19
+ import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
20
+ import { Action } from 'vscode/vscode/vs/base/common/actions';
21
+ import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
22
+ import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
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 { Action2 } from 'vscode/vscode/vs/platform/actions/common/actions';
27
+ import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
28
+ import { IEditorGroupsService } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
29
+ import { nativeHoverDelegate } from 'vscode/vscode/vs/platform/hover/browser/hover';
30
+ import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
31
+ import { Event } from 'vscode/vscode/vs/base/common/event';
32
+ import { joinStrings } from 'vscode/vscode/vs/base/common/strings';
33
+
34
+ var LanguageStatus_1;
35
+ class LanguageStatusViewModel {
36
+ constructor(combined, dedicated) {
37
+ this.combined = combined;
38
+ this.dedicated = dedicated;
39
+ }
40
+ isEqual(other) {
41
+ return equals(this.combined, other.combined) && equals(this.dedicated, other.dedicated);
42
+ }
43
+ }
44
+ let StoredCounter = class StoredCounter {
45
+ constructor(_storageService, _key) {
46
+ this._storageService = _storageService;
47
+ this._key = _key;
48
+ }
49
+ get value() {
50
+ return this._storageService.getNumber(this._key, StorageScope.PROFILE, 0);
51
+ }
52
+ increment() {
53
+ const n = this.value + 1;
54
+ this._storageService.store(this._key, n, StorageScope.PROFILE, StorageTarget.MACHINE);
55
+ return n;
56
+ }
57
+ };
58
+ StoredCounter = ( __decorate([
59
+ ( __param(0, IStorageService))
60
+ ], StoredCounter));
61
+ let LanguageStatusContribution = class LanguageStatusContribution extends Disposable {
62
+ static { this.Id = 'status.languageStatus'; }
63
+ constructor(editorGroupService) {
64
+ super();
65
+ this.editorGroupService = editorGroupService;
66
+ for (const part of editorGroupService.parts) {
67
+ this.createLanguageStatus(part);
68
+ }
69
+ this._register(editorGroupService.onDidCreateAuxiliaryEditorPart(part => this.createLanguageStatus(part)));
70
+ }
71
+ createLanguageStatus(part) {
72
+ const disposables = ( new DisposableStore());
73
+ Event.once(part.onWillDispose)(() => disposables.dispose());
74
+ const scopedInstantiationService = this.editorGroupService.getScopedInstantiationService(part);
75
+ disposables.add(scopedInstantiationService.createInstance(LanguageStatus));
76
+ }
77
+ };
78
+ LanguageStatusContribution = ( __decorate([
79
+ ( __param(0, IEditorGroupsService))
80
+ ], LanguageStatusContribution));
81
+ let LanguageStatus = class LanguageStatus {
82
+ static { LanguageStatus_1 = this; }
83
+ static { this._id = 'status.languageStatus'; }
84
+ static { this._keyDedicatedItems = 'languageStatus.dedicated'; }
85
+ constructor(_languageStatusService, _statusBarService, _editorService, _hoverService, _openerService, _storageService) {
86
+ this._languageStatusService = _languageStatusService;
87
+ this._statusBarService = _statusBarService;
88
+ this._editorService = _editorService;
89
+ this._hoverService = _hoverService;
90
+ this._openerService = _openerService;
91
+ this._storageService = _storageService;
92
+ this._disposables = ( new DisposableStore());
93
+ this._dedicated = ( new Set());
94
+ this._dedicatedEntries = ( new Map());
95
+ this._renderDisposables = ( new DisposableStore());
96
+ _storageService.onDidChangeValue(StorageScope.PROFILE, LanguageStatus_1._keyDedicatedItems, this._disposables)(this._handleStorageChange, this, this._disposables);
97
+ this._restoreState();
98
+ this._interactionCounter = ( new StoredCounter(_storageService, 'languageStatus.interactCount'));
99
+ _languageStatusService.onDidChange(this._update, this, this._disposables);
100
+ _editorService.onDidActiveEditorChange(this._update, this, this._disposables);
101
+ this._update();
102
+ _statusBarService.onDidChangeEntryVisibility(e => {
103
+ if (!e.visible && ( this._dedicated.has(e.id))) {
104
+ this._dedicated.delete(e.id);
105
+ this._update();
106
+ this._storeState();
107
+ }
108
+ }, undefined, this._disposables);
109
+ }
110
+ dispose() {
111
+ this._disposables.dispose();
112
+ this._combinedEntry?.dispose();
113
+ dispose(( this._dedicatedEntries.values()));
114
+ this._renderDisposables.dispose();
115
+ }
116
+ _handleStorageChange() {
117
+ this._restoreState();
118
+ this._update();
119
+ }
120
+ _restoreState() {
121
+ const raw = this._storageService.get(LanguageStatus_1._keyDedicatedItems, StorageScope.PROFILE, '[]');
122
+ try {
123
+ const ids = JSON.parse(raw);
124
+ this._dedicated = ( new Set(ids));
125
+ }
126
+ catch {
127
+ this._dedicated.clear();
128
+ }
129
+ }
130
+ _storeState() {
131
+ if (this._dedicated.size === 0) {
132
+ this._storageService.remove(LanguageStatus_1._keyDedicatedItems, StorageScope.PROFILE);
133
+ }
134
+ else {
135
+ const raw = JSON.stringify(Array.from(( this._dedicated.keys())));
136
+ this._storageService.store(LanguageStatus_1._keyDedicatedItems, raw, StorageScope.PROFILE, StorageTarget.USER);
137
+ }
138
+ }
139
+ _createViewModel(editor) {
140
+ if (!editor?.hasModel()) {
141
+ return ( new LanguageStatusViewModel([], []));
142
+ }
143
+ const all = this._languageStatusService.getLanguageStatus(editor.getModel());
144
+ const combined = [];
145
+ const dedicated = [];
146
+ for (const item of all) {
147
+ if (( this._dedicated.has(item.id))) {
148
+ dedicated.push(item);
149
+ }
150
+ combined.push(item);
151
+ }
152
+ return ( new LanguageStatusViewModel(combined, dedicated));
153
+ }
154
+ _update() {
155
+ const editor = getCodeEditor(this._editorService.activeTextEditorControl);
156
+ const model = this._createViewModel(editor);
157
+ if (this._model?.isEqual(model)) {
158
+ return;
159
+ }
160
+ this._renderDisposables.clear();
161
+ this._model = model;
162
+ editor?.onDidChangeModelLanguage(this._update, this, this._renderDisposables);
163
+ if (model.combined.length === 0) {
164
+ this._combinedEntry?.dispose();
165
+ this._combinedEntry = undefined;
166
+ }
167
+ else {
168
+ const [first] = model.combined;
169
+ const showSeverity = first.severity >= Severity.Warning;
170
+ const text = LanguageStatus_1._severityToComboCodicon(first.severity);
171
+ let isOneBusy = false;
172
+ const ariaLabels = [];
173
+ const element = document.createElement('div');
174
+ for (const status of model.combined) {
175
+ const isPinned = model.dedicated.includes(status);
176
+ element.appendChild(this._renderStatus(status, showSeverity, isPinned, this._renderDisposables));
177
+ ariaLabels.push(LanguageStatus_1._accessibilityInformation(status).label);
178
+ isOneBusy = isOneBusy || (!isPinned && status.busy);
179
+ }
180
+ const props = {
181
+ name: ( localize(6937, "Editor Language Status")),
182
+ ariaLabel: ( localize(6938, "Editor Language Status: {0}", ariaLabels.join(', next: '))),
183
+ tooltip: element,
184
+ command: ShowTooltipCommand,
185
+ text: isOneBusy ? '$(loading~spin)' : text,
186
+ };
187
+ if (!this._combinedEntry) {
188
+ this._combinedEntry = this._statusBarService.addEntry(props, LanguageStatus_1._id, StatusbarAlignment.RIGHT, { id: 'status.editor.mode', alignment: StatusbarAlignment.LEFT, compact: true });
189
+ }
190
+ else {
191
+ this._combinedEntry.update(props);
192
+ }
193
+ const userHasInteractedWithStatus = this._interactionCounter.value >= 3;
194
+ const targetWindow = getWindow(editor?.getContainerDomNode());
195
+ const node = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus A>SPAN.codicon');
196
+ const container = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus');
197
+ if (isHTMLElement(node) && container) {
198
+ const _wiggle = 'wiggle';
199
+ const _flash = 'flash';
200
+ if (!isOneBusy) {
201
+ node.classList.toggle(_wiggle, showSeverity || !userHasInteractedWithStatus);
202
+ this._renderDisposables.add(addDisposableListener(node, 'animationend', _e => node.classList.remove(_wiggle)));
203
+ container.classList.toggle(_flash, showSeverity);
204
+ this._renderDisposables.add(addDisposableListener(container, 'animationend', _e => container.classList.remove(_flash)));
205
+ }
206
+ else {
207
+ node.classList.remove(_wiggle);
208
+ container.classList.remove(_flash);
209
+ }
210
+ }
211
+ if (!userHasInteractedWithStatus) {
212
+ const hoverTarget = targetWindow.document.querySelector('.monaco-workbench .context-view');
213
+ if (isHTMLElement(hoverTarget)) {
214
+ const observer = ( new MutationObserver(() => {
215
+ if (targetWindow.document.contains(element)) {
216
+ this._interactionCounter.increment();
217
+ observer.disconnect();
218
+ }
219
+ }));
220
+ observer.observe(hoverTarget, { childList: true, subtree: true });
221
+ this._renderDisposables.add(toDisposable(() => observer.disconnect()));
222
+ }
223
+ }
224
+ }
225
+ const newDedicatedEntries = ( new Map());
226
+ for (const status of model.dedicated) {
227
+ const props = LanguageStatus_1._asStatusbarEntry(status);
228
+ let entry = this._dedicatedEntries.get(status.id);
229
+ if (!entry) {
230
+ entry = this._statusBarService.addEntry(props, status.id, StatusbarAlignment.RIGHT, { id: 'status.editor.mode', alignment: StatusbarAlignment.RIGHT });
231
+ }
232
+ else {
233
+ entry.update(props);
234
+ this._dedicatedEntries.delete(status.id);
235
+ }
236
+ newDedicatedEntries.set(status.id, entry);
237
+ }
238
+ dispose(( this._dedicatedEntries.values()));
239
+ this._dedicatedEntries = newDedicatedEntries;
240
+ }
241
+ _renderStatus(status, showSeverity, isPinned, store) {
242
+ const parent = document.createElement('div');
243
+ parent.classList.add('hover-language-status');
244
+ const severity = document.createElement('div');
245
+ severity.classList.add('severity', `sev${status.severity}`);
246
+ severity.classList.toggle('show', showSeverity);
247
+ const severityText = LanguageStatus_1._severityToSingleCodicon(status.severity);
248
+ append(severity, ...renderLabelWithIcons(severityText));
249
+ parent.appendChild(severity);
250
+ const element = document.createElement('div');
251
+ element.classList.add('element');
252
+ parent.appendChild(element);
253
+ const left = document.createElement('div');
254
+ left.classList.add('left');
255
+ element.appendChild(left);
256
+ const label = document.createElement('span');
257
+ label.classList.add('label');
258
+ const labelValue = typeof status.label === 'string' ? status.label : status.label.value;
259
+ append(label, ...renderLabelWithIcons(computeText(labelValue, status.busy)));
260
+ left.appendChild(label);
261
+ const detail = document.createElement('span');
262
+ detail.classList.add('detail');
263
+ this._renderTextPlus(detail, status.detail, store);
264
+ left.appendChild(detail);
265
+ const right = document.createElement('div');
266
+ right.classList.add('right');
267
+ element.appendChild(right);
268
+ const { command } = status;
269
+ if (command) {
270
+ store.add(( new Link(right, {
271
+ label: command.title,
272
+ title: command.tooltip,
273
+ href: ( ( URI.from({
274
+ scheme: 'command', path: command.id, query: command.arguments && JSON.stringify(command.arguments)
275
+ })).toString())
276
+ }, { hoverDelegate: nativeHoverDelegate }, this._hoverService, this._openerService)));
277
+ }
278
+ const actionBar = ( new ActionBar(right, { hoverDelegate: nativeHoverDelegate }));
279
+ const actionLabel = isPinned ? ( localize(6939, "Remove from Status Bar")) : ( localize(6940, "Add to Status Bar"));
280
+ actionBar.setAriaLabel(actionLabel);
281
+ store.add(actionBar);
282
+ let action;
283
+ if (!isPinned) {
284
+ action = ( new Action('pin', actionLabel, ThemeIcon.asClassName(Codicon.pin), true, () => {
285
+ this._dedicated.add(status.id);
286
+ this._statusBarService.updateEntryVisibility(status.id, true);
287
+ this._update();
288
+ this._storeState();
289
+ }));
290
+ }
291
+ else {
292
+ action = ( new Action('unpin', actionLabel, ThemeIcon.asClassName(Codicon.pinned), true, () => {
293
+ this._dedicated.delete(status.id);
294
+ this._statusBarService.updateEntryVisibility(status.id, false);
295
+ this._update();
296
+ this._storeState();
297
+ }));
298
+ }
299
+ actionBar.push(action, { icon: true, label: false });
300
+ store.add(action);
301
+ return parent;
302
+ }
303
+ static _severityToComboCodicon(sev) {
304
+ switch (sev) {
305
+ case Severity.Error: return '$(bracket-error)';
306
+ case Severity.Warning: return '$(bracket-dot)';
307
+ default: return '$(bracket)';
308
+ }
309
+ }
310
+ static _severityToSingleCodicon(sev) {
311
+ switch (sev) {
312
+ case Severity.Error: return '$(error)';
313
+ case Severity.Warning: return '$(info)';
314
+ default: return '$(check)';
315
+ }
316
+ }
317
+ _renderTextPlus(target, text, store) {
318
+ for (const node of parseLinkedText(text).nodes) {
319
+ if (typeof node === 'string') {
320
+ const parts = renderLabelWithIcons(node);
321
+ append(target, ...parts);
322
+ }
323
+ else {
324
+ store.add(( new Link(target, node, undefined, this._hoverService, this._openerService)));
325
+ }
326
+ }
327
+ }
328
+ static _accessibilityInformation(status) {
329
+ if (status.accessibilityInfo) {
330
+ return status.accessibilityInfo;
331
+ }
332
+ const textValue = typeof status.label === 'string' ? status.label : status.label.value;
333
+ if (status.detail) {
334
+ return { label: ( localize(6941, '{0}, {1}', textValue, status.detail)) };
335
+ }
336
+ else {
337
+ return { label: ( localize(6942, '{0}', textValue)) };
338
+ }
339
+ }
340
+ static _asStatusbarEntry(item) {
341
+ let kind;
342
+ if (item.severity === Severity.Warning) {
343
+ kind = 'warning';
344
+ }
345
+ else if (item.severity === Severity.Error) {
346
+ kind = 'error';
347
+ }
348
+ const textValue = typeof item.label === 'string' ? item.label : item.label.shortValue;
349
+ return {
350
+ name: ( localize(6943, '{0} (Language Status)', item.name)),
351
+ text: computeText(textValue, item.busy),
352
+ ariaLabel: LanguageStatus_1._accessibilityInformation(item).label,
353
+ role: item.accessibilityInfo?.role,
354
+ tooltip: item.command?.tooltip || ( new MarkdownString(item.detail, { isTrusted: true, supportThemeIcons: true })),
355
+ kind,
356
+ command: item.command
357
+ };
358
+ }
359
+ };
360
+ LanguageStatus = LanguageStatus_1 = ( __decorate([
361
+ ( __param(0, ILanguageStatusService)),
362
+ ( __param(1, IStatusbarService)),
363
+ ( __param(2, IEditorService)),
364
+ ( __param(3, IHoverService)),
365
+ ( __param(4, IOpenerService)),
366
+ ( __param(5, IStorageService))
367
+ ], LanguageStatus));
368
+ class ResetAction extends Action2 {
369
+ constructor() {
370
+ super({
371
+ id: 'editor.inlayHints.Reset',
372
+ title: ( localize2(6944, "Reset Language Status Interaction Counter")),
373
+ category: Categories.View,
374
+ f1: true
375
+ });
376
+ }
377
+ run(accessor) {
378
+ accessor.get(IStorageService).remove('languageStatus.interactCount', StorageScope.PROFILE);
379
+ }
380
+ }
381
+ function computeText(text, loading) {
382
+ return joinStrings([text !== '' && text, loading && '$(loading~spin)'], '\u00A0\u00A0');
383
+ }
384
+
385
+ export { LanguageStatusContribution, ResetAction };
@@ -1,4 +1,4 @@
1
- import n from 'vscode/external/rollup-plugin-styles/dist/runtime/inject-css.js';
1
+ import n from 'vscode/external/rollup-plugin-styles/dist/runtime/inject-css';
2
2
 
3
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;text-decoration:var(--text-link-decoration);white-space:nowrap}.monaco-workbench .hover-language-status>.element .right .monaco-action-bar:not(:first-child){padding-left:8px}";
4
4
  n(css,{});
@@ -0,0 +1,13 @@
1
+ import { Disposable } from "vscode/vscode/vs/base/common/lifecycle";
2
+ import { IEditorService } from "vscode/vscode/vs/workbench/services/editor/common/editorService.service";
3
+ import { ILanguageStatusService } from "vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService.service";
4
+ import { IWorkbenchContribution } from "vscode/vscode/vs/workbench/common/contributions";
5
+ import { Event } from "vscode/vscode/vs/base/common/event";
6
+ export declare class LimitIndicatorContribution extends Disposable implements IWorkbenchContribution {
7
+ constructor(editorService: IEditorService, languageStatusService: ILanguageStatusService);
8
+ }
9
+ export interface LimitInfo {
10
+ readonly onDidChange: Event<void>;
11
+ readonly computed: number;
12
+ readonly limited: number | false;
13
+ }
@@ -1,24 +1,24 @@
1
- import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
1
+
2
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
2
3
  import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
3
- import Severity$1 from 'vscode/vscode/vs/base/common/severity';
4
+ import Severity from 'vscode/vscode/vs/base/common/severity';
4
5
  import { getCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
5
6
  import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
6
7
  import { ILanguageStatusService } from 'vscode/vscode/vs/workbench/services/languageStatus/common/languageStatusService.service';
7
8
  import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
8
9
  import { Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
10
+ import { LifecyclePhase } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
9
11
  import { localize } from 'vscode/vscode/vs/nls';
10
12
  import { FoldingController } from 'vscode/vscode/vs/editor/contrib/folding/browser/folding';
11
13
  import { ColorDetector } from 'vscode/vscode/vs/editor/contrib/colorPicker/browser/colorDetector';
12
14
 
13
15
  const openSettingsCommand = 'workbench.action.openSettings';
14
- const configureSettingsLabel = ( localize(4444, "Configure"));
16
+ const configureSettingsLabel = ( localize(6945, "Configure"));
15
17
  let LimitIndicatorContribution = class LimitIndicatorContribution extends Disposable {
16
18
  constructor(editorService, languageStatusService) {
17
19
  super();
18
- const accessors = [( (new ColorDecorationAccessor())), ( (new FoldingRangeAccessor()))];
19
- const statusEntries = ( (accessors.map(
20
- indicator => ( (new LanguageStatusEntry(languageStatusService, indicator)))
21
- )));
20
+ const accessors = [( new ColorDecorationAccessor()), ( new FoldingRangeAccessor())];
21
+ const statusEntries = ( accessors.map(indicator => ( new LanguageStatusEntry(languageStatusService, indicator))));
22
22
  statusEntries.forEach(entry => this._register(entry));
23
23
  let control;
24
24
  const onActiveEditorChanged = () => {
@@ -34,16 +34,16 @@ let LimitIndicatorContribution = class LimitIndicatorContribution extends Dispos
34
34
  onActiveEditorChanged();
35
35
  }
36
36
  };
37
- LimitIndicatorContribution = ( (__decorate([
38
- ( (__param(0, IEditorService))),
39
- ( (__param(1, ILanguageStatusService)))
40
- ], LimitIndicatorContribution)));
37
+ LimitIndicatorContribution = ( __decorate([
38
+ ( __param(0, IEditorService)),
39
+ ( __param(1, ILanguageStatusService))
40
+ ], LimitIndicatorContribution));
41
41
  class ColorDecorationAccessor {
42
42
  constructor() {
43
43
  this.id = 'decoratorsLimitInfo';
44
- this.name = ( localize(4445, 'Color Decorator Status'));
45
- this.label = ( localize(4446, 'Color Decorators'));
46
- this.source = ( localize(4447, 'Color Decorators'));
44
+ this.name = ( localize(6946, 'Color Decorator Status'));
45
+ this.label = ( localize(6947, 'Color Decorators'));
46
+ this.source = ( localize(6948, 'Color Decorators'));
47
47
  this.settingsId = 'editor.colorDecoratorsLimit';
48
48
  }
49
49
  getLimitReporter(editor) {
@@ -53,9 +53,9 @@ class ColorDecorationAccessor {
53
53
  class FoldingRangeAccessor {
54
54
  constructor() {
55
55
  this.id = 'foldingLimitInfo';
56
- this.name = ( localize(4448, 'Folding Status'));
57
- this.label = ( localize(4449, 'Folding Ranges'));
58
- this.source = ( localize(4450, 'Folding'));
56
+ this.name = ( localize(6949, 'Folding Status'));
57
+ this.label = ( localize(6950, 'Folding Ranges'));
58
+ this.source = ( localize(6951, 'Folding'));
59
59
  this.settingsId = 'editor.foldingMaximumRegions';
60
60
  }
61
61
  getLimitReporter(editor) {
@@ -95,9 +95,9 @@ class LanguageStatusEntry {
95
95
  id: this.accessor.id,
96
96
  selector: '*',
97
97
  name: this.accessor.name,
98
- severity: Severity$1.Warning,
98
+ severity: Severity.Warning,
99
99
  label: this.accessor.label,
100
- detail: ( localize(4451, 'only {0} shown for performance reasons', info.limited)),
100
+ detail: ( localize(6952, 'only {0} shown for performance reasons', info.limited)),
101
101
  command: { id: openSettingsCommand, arguments: [this.accessor.settingsId], title: configureSettingsLabel },
102
102
  accessibilityInfo: undefined,
103
103
  source: this.accessor.source,
@@ -111,6 +111,6 @@ class LanguageStatusEntry {
111
111
  this._indicatorChangeListener = undefined;
112
112
  }
113
113
  }
114
- ( (Registry.as(Extensions.Workbench))).registerWorkbenchContribution(LimitIndicatorContribution, 3 );
114
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(LimitIndicatorContribution, LifecyclePhase.Restored);
115
115
 
116
116
  export { LimitIndicatorContribution };
@@ -0,0 +1,105 @@
1
+ import { Action2, IAction2Options } from "vscode/vscode/vs/platform/actions/common/actions";
2
+ import { ServicesAccessor } from "vscode/vscode/vs/platform/instantiation/common/instantiation";
3
+ import { IEditorIdentifier } from "vscode/vscode/vs/workbench/common/editor";
4
+ import { MergeEditorInput } from "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput";
5
+ import { IMergeEditorInputModel } from "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel";
6
+ import { MergeEditorViewModel } from "../view/viewModel.js";
7
+ declare abstract class MergeEditorAction extends Action2 {
8
+ constructor(desc: Readonly<IAction2Options>);
9
+ run(accessor: ServicesAccessor): void;
10
+ abstract runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
11
+ }
12
+ interface MergeEditorAction2Args {
13
+ inputModel: IMergeEditorInputModel;
14
+ viewModel: MergeEditorViewModel;
15
+ input: MergeEditorInput;
16
+ editorIdentifier: IEditorIdentifier;
17
+ }
18
+ declare abstract class MergeEditorAction2 extends Action2 {
19
+ constructor(desc: Readonly<IAction2Options>);
20
+ run(accessor: ServicesAccessor, ...args: any[]): void;
21
+ abstract runWithMergeEditor(context: MergeEditorAction2Args, accessor: ServicesAccessor, ...args: any[]): unknown;
22
+ }
23
+ export declare class OpenMergeEditor extends Action2 {
24
+ constructor();
25
+ run(accessor: ServicesAccessor, ...args: unknown[]): void;
26
+ }
27
+ export declare class SetMixedLayout extends Action2 {
28
+ constructor();
29
+ run(accessor: ServicesAccessor): void;
30
+ }
31
+ export declare class SetColumnLayout extends Action2 {
32
+ constructor();
33
+ run(accessor: ServicesAccessor): void;
34
+ }
35
+ export declare class ShowNonConflictingChanges extends Action2 {
36
+ constructor();
37
+ run(accessor: ServicesAccessor): void;
38
+ }
39
+ export declare class ShowHideBase extends Action2 {
40
+ constructor();
41
+ run(accessor: ServicesAccessor): void;
42
+ }
43
+ export declare class ShowHideTopBase extends Action2 {
44
+ constructor();
45
+ run(accessor: ServicesAccessor): void;
46
+ }
47
+ export declare class ShowHideCenterBase extends Action2 {
48
+ constructor();
49
+ run(accessor: ServicesAccessor): void;
50
+ }
51
+ export declare class OpenResultResource extends MergeEditorAction {
52
+ constructor();
53
+ runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
54
+ }
55
+ export declare class GoToNextUnhandledConflict extends MergeEditorAction {
56
+ constructor();
57
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
58
+ }
59
+ export declare class GoToPreviousUnhandledConflict extends MergeEditorAction {
60
+ constructor();
61
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
62
+ }
63
+ export declare class ToggleActiveConflictInput1 extends MergeEditorAction {
64
+ constructor();
65
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
66
+ }
67
+ export declare class ToggleActiveConflictInput2 extends MergeEditorAction {
68
+ constructor();
69
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
70
+ }
71
+ export declare class CompareInput1WithBaseCommand extends MergeEditorAction {
72
+ constructor();
73
+ runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
74
+ }
75
+ export declare class CompareInput2WithBaseCommand extends MergeEditorAction {
76
+ constructor();
77
+ runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
78
+ }
79
+ export declare class OpenBaseFile extends MergeEditorAction {
80
+ constructor();
81
+ runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
82
+ }
83
+ export declare class AcceptAllInput1 extends MergeEditorAction {
84
+ constructor();
85
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
86
+ }
87
+ export declare class AcceptAllInput2 extends MergeEditorAction {
88
+ constructor();
89
+ runWithViewModel(viewModel: MergeEditorViewModel): void;
90
+ }
91
+ export declare class ResetToBaseAndAutoMergeCommand extends MergeEditorAction {
92
+ constructor();
93
+ runWithViewModel(viewModel: MergeEditorViewModel, accessor: ServicesAccessor): void;
94
+ }
95
+ export declare class ResetCloseWithConflictsChoice extends Action2 {
96
+ constructor();
97
+ run(accessor: ServicesAccessor): void;
98
+ }
99
+ export declare class AcceptMerge extends MergeEditorAction2 {
100
+ constructor();
101
+ runWithMergeEditor({ inputModel, editorIdentifier, viewModel }: MergeEditorAction2Args, accessor: ServicesAccessor): Promise<{
102
+ successful: boolean;
103
+ }>;
104
+ }
105
+ export {};