@codingame/monaco-vscode-api 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 (191) hide show
  1. package/README.md +10 -0
  2. package/contributions.js +1 -0
  3. package/extensions.d.ts +6 -3
  4. package/extensions.js +18 -7
  5. package/lifecycle.js +11 -3
  6. package/missing-services.js +55 -10
  7. package/monaco.js +7 -3
  8. package/package.json +8 -8
  9. package/service-override/tools/editor.js +3 -1
  10. package/service-override/tools/views.d.ts +98 -0
  11. package/service-override/tools/views.js +249 -0
  12. package/services.d.ts +4 -2
  13. package/services.js +11 -9
  14. package/vscode/src/vs/base/browser/deviceAccess.js +60 -0
  15. package/vscode/src/vs/base/browser/dom.js +18 -1
  16. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
  17. package/vscode/src/vs/base/browser/ui/grid/grid.js +492 -0
  18. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +4 -0
  19. package/vscode/src/vs/base/browser/ui/grid/gridview.d.ts +1 -0
  20. package/vscode/src/vs/base/browser/ui/grid/gridview.js +1109 -0
  21. package/vscode/src/vs/base/browser/ui/sash/sash.js +9 -1
  22. package/vscode/src/vs/base/browser/ui/splitview/splitview.d.ts +348 -1
  23. package/vscode/src/vs/base/common/async.js +46 -2
  24. package/vscode/src/vs/base/common/codicons.d.ts +579 -0
  25. package/vscode/src/vs/base/common/event.js +11 -2
  26. package/vscode/src/vs/base/common/keybindingParser.js +87 -0
  27. package/vscode/src/vs/base/common/network.js +1 -2
  28. package/vscode/src/vs/base/common/observableInternal/utils.js +1 -1
  29. package/vscode/src/vs/base/common/platform.js +2 -1
  30. package/vscode/src/vs/base/common/scrollable.d.ts +28 -0
  31. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/colors.js +17 -0
  32. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/diffEditorItemTemplate.js +214 -0
  33. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorViewModel.js +84 -0
  34. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidget.js +54 -0
  35. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidgetImpl.js +324 -0
  36. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/objectPool.js +46 -0
  37. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/style.css.js +4 -0
  38. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/utils.js +11 -0
  39. package/vscode/src/vs/platform/keyboardLayout/common/keyboardLayout.js +61 -1
  40. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +10 -0
  41. package/vscode/src/vs/platform/log/browser/log.js +24 -0
  42. package/vscode/src/vs/platform/product/common/product.js +1 -2
  43. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +772 -0
  44. package/vscode/src/vs/platform/userDataSync/common/userDataSyncStoreService.js +551 -0
  45. package/vscode/src/vs/platform/webview/common/mimeTypes.js +22 -0
  46. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +62 -0
  47. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +788 -0
  48. package/vscode/src/vs/workbench/browser/actions/listCommands.js +763 -0
  49. package/vscode/src/vs/workbench/browser/layout.d.ts +26 -0
  50. package/vscode/src/vs/workbench/browser/media/style.css.js +1 -1
  51. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +610 -0
  52. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
  53. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
  54. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +148 -0
  55. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +4 -0
  56. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +603 -0
  57. package/vscode/src/vs/workbench/browser/parts/compositePart.js +333 -0
  58. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +221 -0
  59. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +1406 -0
  60. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +184 -0
  61. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +509 -0
  62. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +112 -0
  63. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +1018 -0
  64. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +389 -0
  65. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
  66. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
  67. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +4 -0
  68. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
  69. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
  70. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
  71. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
  72. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +213 -0
  73. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +73 -0
  74. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +307 -0
  75. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +226 -0
  76. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +218 -0
  77. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +433 -0
  78. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +436 -0
  79. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +643 -0
  80. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +377 -0
  81. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +66 -0
  82. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +144 -0
  83. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
  84. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +220 -0
  85. package/vscode/src/vs/workbench/browser/window.js +239 -5
  86. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  87. package/vscode/src/vs/workbench/common/theme.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +298 -0
  89. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +363 -0
  90. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +133 -0
  91. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
  92. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +90 -0
  93. package/vscode/src/vs/workbench/contrib/comments/browser/commentMenus.js +43 -0
  94. package/vscode/src/vs/workbench/contrib/comments/browser/commentService.js +317 -2
  95. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +107 -0
  96. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +395 -0
  97. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +1277 -0
  99. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +17 -0
  100. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +123 -0
  101. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +342 -0
  102. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +451 -0
  103. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +176 -0
  104. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +4 -0
  105. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +35 -0
  106. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +16 -0
  107. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +143 -0
  108. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +212 -0
  109. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +4 -0
  110. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +76 -0
  111. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +61 -0
  112. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +117 -0
  113. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessions.js +62 -0
  114. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +5 -0
  115. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +77 -0
  116. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +72 -0
  117. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +254 -0
  118. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +97 -0
  119. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +442 -0
  120. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +430 -0
  121. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +784 -0
  122. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +487 -0
  123. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +521 -0
  124. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +150 -0
  125. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +61 -0
  126. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.js +25 -1
  127. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +178 -0
  128. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +49 -0
  129. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +408 -0
  130. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
  131. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +145 -0
  132. package/vscode/src/vs/workbench/contrib/mappedEdits/common/mappedEdits.contribution.js +22 -0
  133. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +691 -0
  134. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +238 -0
  135. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +76 -0
  136. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +40 -0
  137. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +69 -0
  138. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +346 -0
  139. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +96 -0
  140. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +144 -0
  141. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +103 -0
  142. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +399 -0
  143. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +195 -0
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +39 -0
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +126 -0
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +4 -0
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +611 -0
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +156 -0
  149. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +262 -0
  150. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +171 -0
  151. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.js +41 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +317 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +56 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +315 -0
  155. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +193 -0
  156. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +2 -1
  157. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +37 -0
  158. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +39 -0
  159. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +138 -2
  160. package/vscode/src/vs/workbench/contrib/tags/browser/workspaceTagsService.js +12 -0
  161. package/vscode/src/vs/workbench/contrib/tags/common/workspaceTags.js +3 -0
  162. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
  163. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +281 -0
  164. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +358 -0
  165. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +131 -0
  166. package/vscode/src/vs/workbench/contrib/update/common/update.js +2 -0
  167. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +288 -0
  168. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +94 -0
  169. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +86 -0
  170. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +77 -0
  171. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +646 -0
  172. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +63 -0
  173. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +57 -0
  174. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +140 -0
  175. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +119 -0
  176. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +67 -0
  177. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +233 -0
  178. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +143 -0
  179. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +0 -3
  180. package/vscode/src/vs/workbench/services/driver/browser/driver.js +184 -0
  181. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +668 -0
  182. package/vscode/src/vs/workbench/services/history/browser/historyService.js +1482 -0
  183. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +17 -1
  184. package/vscode/src/vs/workbench/services/lifecycle/common/lifecycle.js +8 -1
  185. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +4 -0
  186. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +521 -0
  187. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +102 -0
  188. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +296 -0
  189. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +99 -0
  190. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +711 -0
  191. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +596 -0
@@ -0,0 +1,408 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import './media/languageStatus.css.js';
3
+ import { getWindow, addDisposableListener, append } from '../../../../base/browser/dom.js';
4
+ import { renderLabelWithIcons } from '../../../../base/browser/ui/iconLabel/iconLabels.js';
5
+ import { DisposableStore, dispose, toDisposable, Disposable } from '../../../../base/common/lifecycle.js';
6
+ import Severity from '../../../../base/common/severity.js';
7
+ import { getCodeEditor } from '../../../../editor/browser/editorBrowser.js';
8
+ import { localizeWithPath } from '../../../../nls.js';
9
+ import { Registry } from '../../../../platform/registry/common/platform.js';
10
+ import { ThemeIcon } from '../../../../base/common/themables.js';
11
+ import { Extensions } from '../../../common/contributions.js';
12
+ import { IEditorService } from '../../../services/editor/common/editorService.js';
13
+ import { ILanguageStatusService } from '../../../services/languageStatus/common/languageStatusService.js';
14
+ import { ShowTooltipCommand, IStatusbarService } from '../../../services/statusbar/browser/statusbar.js';
15
+ import { parseLinkedText } from '../../../../base/common/linkedText.js';
16
+ import { Link } from '../../../../platform/opener/browser/link.js';
17
+ import { IOpenerService } from '../../../../platform/opener/common/opener.js';
18
+ import { MarkdownString } from '../../../../base/common/htmlContent.js';
19
+ import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';
20
+ import { Action } from '../../../../base/common/actions.js';
21
+ import { Codicon } from '../../../../base/common/codicons.js';
22
+ import { IStorageService } from '../../../../platform/storage/common/storage.js';
23
+ import { equals } from '../../../../base/common/arrays.js';
24
+ import { URI } from '../../../../base/common/uri.js';
25
+ import { registerAction2, Action2 } from '../../../../platform/actions/common/actions.js';
26
+ import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
27
+ import { Categories } from '../../../../platform/action/common/actionCommonCategories.js';
28
+ import { IEditorGroupsService } from '../../../services/editor/common/editorGroupsService.js';
29
+ import { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';
30
+ var LanguageStatus_1;
31
+ class LanguageStatusViewModel {
32
+ constructor(combined, dedicated) {
33
+ this.combined = combined;
34
+ this.dedicated = dedicated;
35
+ }
36
+ isEqual(other) {
37
+ return equals(this.combined, other.combined) && equals(this.dedicated, other.dedicated);
38
+ }
39
+ }
40
+ let StoredCounter = class StoredCounter {
41
+ constructor(_storageService, _key) {
42
+ this._storageService = _storageService;
43
+ this._key = _key;
44
+ }
45
+ get value() {
46
+ return this._storageService.getNumber(this._key, 0 , 0);
47
+ }
48
+ increment() {
49
+ const n = this.value + 1;
50
+ this._storageService.store(this._key, n, 0 , 1 );
51
+ return n;
52
+ }
53
+ };
54
+ StoredCounter = ( __decorate([
55
+ ( __param(0, IStorageService))
56
+ ], StoredCounter));
57
+ let LanguageStatusContribution = class LanguageStatusContribution extends Disposable {
58
+ constructor(instantiationService, editorGroupService, editorService) {
59
+ super();
60
+ const mainInstantiationService = instantiationService.createChild(( new ServiceCollection([IEditorService, editorService.createScoped('main', this._store)])));
61
+ this._register(mainInstantiationService.createInstance(LanguageStatus));
62
+ this._register(editorGroupService.onDidCreateAuxiliaryEditorPart(({ instantiationService, disposables }) => {
63
+ disposables.add(instantiationService.createInstance(LanguageStatus));
64
+ }));
65
+ }
66
+ };
67
+ LanguageStatusContribution = ( __decorate([
68
+ ( __param(0, IInstantiationService)),
69
+ ( __param(1, IEditorGroupsService)),
70
+ ( __param(2, IEditorService))
71
+ ], LanguageStatusContribution));
72
+ let LanguageStatus = class LanguageStatus {
73
+ static { LanguageStatus_1 = this; }
74
+ static { this._id = 'status.languageStatus'; }
75
+ static { this._keyDedicatedItems = 'languageStatus.dedicated'; }
76
+ constructor(_languageStatusService, _statusBarService, _editorService, _openerService, _storageService) {
77
+ this._languageStatusService = _languageStatusService;
78
+ this._statusBarService = _statusBarService;
79
+ this._editorService = _editorService;
80
+ this._openerService = _openerService;
81
+ this._storageService = _storageService;
82
+ this._disposables = ( new DisposableStore());
83
+ this._dedicated = ( new Set());
84
+ this._dedicatedEntries = ( new Map());
85
+ this._renderDisposables = ( new DisposableStore());
86
+ _storageService.onDidChangeValue(0 , LanguageStatus_1._keyDedicatedItems, this._disposables)(this._handleStorageChange, this, this._disposables);
87
+ this._restoreState();
88
+ this._interactionCounter = ( new StoredCounter(_storageService, 'languageStatus.interactCount'));
89
+ _languageStatusService.onDidChange(this._update, this, this._disposables);
90
+ _editorService.onDidActiveEditorChange(this._update, this, this._disposables);
91
+ this._update();
92
+ _statusBarService.onDidChangeEntryVisibility(e => {
93
+ if (!e.visible && ( this._dedicated.has(e.id))) {
94
+ this._dedicated.delete(e.id);
95
+ this._update();
96
+ this._storeState();
97
+ }
98
+ }, this._disposables);
99
+ }
100
+ dispose() {
101
+ this._disposables.dispose();
102
+ this._combinedEntry?.dispose();
103
+ dispose(( this._dedicatedEntries.values()));
104
+ this._renderDisposables.dispose();
105
+ }
106
+ _handleStorageChange() {
107
+ this._restoreState();
108
+ this._update();
109
+ }
110
+ _restoreState() {
111
+ const raw = this._storageService.get(LanguageStatus_1._keyDedicatedItems, 0 , '[]');
112
+ try {
113
+ const ids = JSON.parse(raw);
114
+ this._dedicated = ( new Set(ids));
115
+ }
116
+ catch {
117
+ this._dedicated.clear();
118
+ }
119
+ }
120
+ _storeState() {
121
+ if (this._dedicated.size === 0) {
122
+ this._storageService.remove(LanguageStatus_1._keyDedicatedItems, 0 );
123
+ }
124
+ else {
125
+ const raw = JSON.stringify(Array.from(( this._dedicated.keys())));
126
+ this._storageService.store(LanguageStatus_1._keyDedicatedItems, raw, 0 , 0 );
127
+ }
128
+ }
129
+ _createViewModel(editor) {
130
+ if (!editor?.hasModel()) {
131
+ return ( new LanguageStatusViewModel([], []));
132
+ }
133
+ const all = this._languageStatusService.getLanguageStatus(editor.getModel());
134
+ const combined = [];
135
+ const dedicated = [];
136
+ for (const item of all) {
137
+ if (( this._dedicated.has(item.id))) {
138
+ dedicated.push(item);
139
+ }
140
+ combined.push(item);
141
+ }
142
+ return ( new LanguageStatusViewModel(combined, dedicated));
143
+ }
144
+ _update() {
145
+ const editor = getCodeEditor(this._editorService.activeTextEditorControl);
146
+ const model = this._createViewModel(editor);
147
+ if (this._model?.isEqual(model)) {
148
+ return;
149
+ }
150
+ this._renderDisposables.clear();
151
+ this._model = model;
152
+ editor?.onDidChangeModelLanguage(this._update, this, this._renderDisposables);
153
+ if (model.combined.length === 0) {
154
+ this._combinedEntry?.dispose();
155
+ this._combinedEntry = undefined;
156
+ }
157
+ else {
158
+ const [first] = model.combined;
159
+ const showSeverity = first.severity >= Severity.Warning;
160
+ const text = LanguageStatus_1._severityToComboCodicon(first.severity);
161
+ let isOneBusy = false;
162
+ const ariaLabels = [];
163
+ const element = document.createElement('div');
164
+ for (const status of model.combined) {
165
+ const isPinned = model.dedicated.includes(status);
166
+ element.appendChild(this._renderStatus(status, showSeverity, isPinned, this._renderDisposables));
167
+ ariaLabels.push(LanguageStatus_1._accessibilityInformation(status).label);
168
+ isOneBusy = isOneBusy || (!isPinned && status.busy);
169
+ }
170
+ const props = {
171
+ name: ( localizeWithPath(
172
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
173
+ 'langStatus.name',
174
+ "Editor Language Status"
175
+ )),
176
+ ariaLabel: ( localizeWithPath(
177
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
178
+ 'langStatus.aria',
179
+ "Editor Language Status: {0}",
180
+ ariaLabels.join(', next: ')
181
+ )),
182
+ tooltip: element,
183
+ command: ShowTooltipCommand,
184
+ text: isOneBusy ? `${text}\u00A0\u00A0$(sync~spin)` : text,
185
+ };
186
+ if (!this._combinedEntry) {
187
+ this._combinedEntry = this._statusBarService.addEntry(props, LanguageStatus_1._id, 1 , { id: 'status.editor.mode', alignment: 0 , compact: true });
188
+ }
189
+ else {
190
+ this._combinedEntry.update(props);
191
+ }
192
+ const userHasInteractedWithStatus = this._interactionCounter.value >= 3;
193
+ const targetWindow = getWindow(editor?.getContainerDomNode());
194
+ const node = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus A>SPAN.codicon');
195
+ const container = targetWindow.document.querySelector('.monaco-workbench .statusbar DIV#status\\.languageStatus');
196
+ if (node instanceof HTMLElement && container) {
197
+ const _wiggle = 'wiggle';
198
+ const _flash = 'flash';
199
+ if (!isOneBusy) {
200
+ node.classList.toggle(_wiggle, showSeverity || !userHasInteractedWithStatus);
201
+ this._renderDisposables.add(addDisposableListener(node, 'animationend', _e => node.classList.remove(_wiggle)));
202
+ container.classList.toggle(_flash, showSeverity);
203
+ this._renderDisposables.add(addDisposableListener(container, 'animationend', _e => container.classList.remove(_flash)));
204
+ }
205
+ else {
206
+ node.classList.remove(_wiggle);
207
+ container.classList.remove(_flash);
208
+ }
209
+ }
210
+ if (!userHasInteractedWithStatus) {
211
+ const hoverTarget = targetWindow.document.querySelector('.monaco-workbench .context-view');
212
+ if (hoverTarget instanceof HTMLElement) {
213
+ const observer = ( new MutationObserver(() => {
214
+ if (targetWindow.document.contains(element)) {
215
+ this._interactionCounter.increment();
216
+ observer.disconnect();
217
+ }
218
+ }));
219
+ observer.observe(hoverTarget, { childList: true, subtree: true });
220
+ this._renderDisposables.add(toDisposable(() => observer.disconnect()));
221
+ }
222
+ }
223
+ }
224
+ const newDedicatedEntries = ( new Map());
225
+ for (const status of model.dedicated) {
226
+ const props = LanguageStatus_1._asStatusbarEntry(status);
227
+ let entry = this._dedicatedEntries.get(status.id);
228
+ if (!entry) {
229
+ entry = this._statusBarService.addEntry(props, status.id, 1 , { id: 'status.editor.mode', alignment: 1 });
230
+ }
231
+ else {
232
+ entry.update(props);
233
+ this._dedicatedEntries.delete(status.id);
234
+ }
235
+ newDedicatedEntries.set(status.id, entry);
236
+ }
237
+ dispose(( this._dedicatedEntries.values()));
238
+ this._dedicatedEntries = newDedicatedEntries;
239
+ }
240
+ _renderStatus(status, showSeverity, isPinned, store) {
241
+ const parent = document.createElement('div');
242
+ parent.classList.add('hover-language-status');
243
+ const severity = document.createElement('div');
244
+ severity.classList.add('severity', `sev${status.severity}`);
245
+ severity.classList.toggle('show', showSeverity);
246
+ const severityText = LanguageStatus_1._severityToSingleCodicon(status.severity);
247
+ append(severity, ...renderLabelWithIcons(severityText));
248
+ parent.appendChild(severity);
249
+ const element = document.createElement('div');
250
+ element.classList.add('element');
251
+ parent.appendChild(element);
252
+ const left = document.createElement('div');
253
+ left.classList.add('left');
254
+ element.appendChild(left);
255
+ const label = document.createElement('span');
256
+ label.classList.add('label');
257
+ const labelValue = typeof status.label === 'string' ? status.label : status.label.value;
258
+ append(label, ...renderLabelWithIcons(status.busy ? `$(sync~spin)\u00A0\u00A0${labelValue}` : labelValue));
259
+ left.appendChild(label);
260
+ const detail = document.createElement('span');
261
+ detail.classList.add('detail');
262
+ this._renderTextPlus(detail, status.detail, store);
263
+ left.appendChild(detail);
264
+ const right = document.createElement('div');
265
+ right.classList.add('right');
266
+ element.appendChild(right);
267
+ const { command } = status;
268
+ if (command) {
269
+ store.add(( new Link(right, {
270
+ label: command.title,
271
+ title: command.tooltip,
272
+ href: ( ( URI.from({
273
+ scheme: 'command', path: command.id, query: command.arguments && JSON.stringify(command.arguments)
274
+ })).toString())
275
+ }, undefined, this._openerService)));
276
+ }
277
+ const actionBar = ( new ActionBar(right, {}));
278
+ store.add(actionBar);
279
+ let action;
280
+ if (!isPinned) {
281
+ action = ( new Action('pin', ( localizeWithPath(
282
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
283
+ 'pin',
284
+ "Add to Status Bar"
285
+ )), ThemeIcon.asClassName(Codicon.pin), true, () => {
286
+ this._dedicated.add(status.id);
287
+ this._statusBarService.updateEntryVisibility(status.id, true);
288
+ this._update();
289
+ this._storeState();
290
+ }));
291
+ }
292
+ else {
293
+ action = ( new Action('unpin', ( localizeWithPath(
294
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
295
+ 'unpin',
296
+ "Remove from Status Bar"
297
+ )), ThemeIcon.asClassName(Codicon.pinned), true, () => {
298
+ this._dedicated.delete(status.id);
299
+ this._statusBarService.updateEntryVisibility(status.id, false);
300
+ this._update();
301
+ this._storeState();
302
+ }));
303
+ }
304
+ actionBar.push(action, { icon: true, label: false });
305
+ store.add(action);
306
+ return parent;
307
+ }
308
+ static _severityToComboCodicon(sev) {
309
+ switch (sev) {
310
+ case Severity.Error: return '$(bracket-error)';
311
+ case Severity.Warning: return '$(bracket-dot)';
312
+ default: return '$(bracket)';
313
+ }
314
+ }
315
+ static _severityToSingleCodicon(sev) {
316
+ switch (sev) {
317
+ case Severity.Error: return '$(error)';
318
+ case Severity.Warning: return '$(info)';
319
+ default: return '$(check)';
320
+ }
321
+ }
322
+ _renderTextPlus(target, text, store) {
323
+ for (const node of parseLinkedText(text).nodes) {
324
+ if (typeof node === 'string') {
325
+ const parts = renderLabelWithIcons(node);
326
+ append(target, ...parts);
327
+ }
328
+ else {
329
+ store.add(( new Link(target, node, undefined, this._openerService)));
330
+ }
331
+ }
332
+ }
333
+ static _accessibilityInformation(status) {
334
+ if (status.accessibilityInfo) {
335
+ return status.accessibilityInfo;
336
+ }
337
+ const textValue = typeof status.label === 'string' ? status.label : status.label.value;
338
+ if (status.detail) {
339
+ return { label: ( localizeWithPath(
340
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
341
+ 'aria.1',
342
+ '{0}, {1}',
343
+ textValue,
344
+ status.detail
345
+ )) };
346
+ }
347
+ else {
348
+ return { label: ( localizeWithPath(
349
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
350
+ 'aria.2',
351
+ '{0}',
352
+ textValue
353
+ )) };
354
+ }
355
+ }
356
+ static _asStatusbarEntry(item) {
357
+ let kind;
358
+ if (item.severity === Severity.Warning) {
359
+ kind = 'warning';
360
+ }
361
+ else if (item.severity === Severity.Error) {
362
+ kind = 'error';
363
+ }
364
+ const textValue = typeof item.label === 'string' ? item.label : item.label.shortValue;
365
+ return {
366
+ name: ( localizeWithPath(
367
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
368
+ 'name.pattern',
369
+ '{0} (Language Status)',
370
+ item.name
371
+ )),
372
+ text: item.busy ? `${textValue}\u00A0\u00A0$(sync~spin)` : textValue,
373
+ ariaLabel: LanguageStatus_1._accessibilityInformation(item).label,
374
+ role: item.accessibilityInfo?.role,
375
+ tooltip: item.command?.tooltip || ( new MarkdownString(item.detail, { isTrusted: true, supportThemeIcons: true })),
376
+ kind,
377
+ command: item.command
378
+ };
379
+ }
380
+ };
381
+ LanguageStatus = LanguageStatus_1 = ( __decorate([
382
+ ( __param(0, ILanguageStatusService)),
383
+ ( __param(1, IStatusbarService)),
384
+ ( __param(2, IEditorService)),
385
+ ( __param(3, IOpenerService)),
386
+ ( __param(4, IStorageService))
387
+ ], LanguageStatus));
388
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(LanguageStatusContribution, 3 );
389
+ registerAction2(class extends Action2 {
390
+ constructor() {
391
+ super({
392
+ id: 'editor.inlayHints.Reset',
393
+ title: {
394
+ value: ( localizeWithPath(
395
+ 'vs/workbench/contrib/languageStatus/browser/languageStatus.contribution',
396
+ 'reset',
397
+ 'Reset Language Status Interaction Counter'
398
+ )),
399
+ original: '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,4 @@
1
+ import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
+ 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;padding:4px 8px}.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}";
3
+ n(css,{});
4
+ export { css, css as default };
@@ -0,0 +1,145 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { Disposable } from '../../../../base/common/lifecycle.js';
3
+ import Severity from '../../../../base/common/severity.js';
4
+ import { getCodeEditor } from '../../../../editor/browser/editorBrowser.js';
5
+ import { IEditorService } from '../../../services/editor/common/editorService.js';
6
+ import { ILanguageStatusService } from '../../../services/languageStatus/common/languageStatusService.js';
7
+ import { Registry } from '../../../../platform/registry/common/platform.js';
8
+ import { Extensions } from '../../../common/contributions.js';
9
+ import { localizeWithPath } from '../../../../nls.js';
10
+ import { FoldingController } from '../../../../editor/contrib/folding/browser/folding.js';
11
+ import { ColorDetector } from '../../../../editor/contrib/colorPicker/browser/colorDetector.js';
12
+ const openSettingsCommand = 'workbench.action.openSettings';
13
+ const configureSettingsLabel = ( localizeWithPath(
14
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
15
+ 'status.button.configure',
16
+ "Configure"
17
+ ));
18
+ let LimitIndicatorContribution = class LimitIndicatorContribution extends Disposable {
19
+ constructor(editorService, languageStatusService) {
20
+ super();
21
+ const accessors = [( new ColorDecorationAccessor()), ( new FoldingRangeAccessor())];
22
+ const statusEntries = ( accessors.map(indicator => ( new LanguageStatusEntry(languageStatusService, indicator))));
23
+ statusEntries.forEach(entry => this._register(entry));
24
+ let control;
25
+ const onActiveEditorChanged = () => {
26
+ const activeControl = editorService.activeTextEditorControl;
27
+ if (activeControl === control) {
28
+ return;
29
+ }
30
+ control = activeControl;
31
+ const editor = getCodeEditor(activeControl);
32
+ statusEntries.forEach(statusEntry => statusEntry.onActiveEditorChanged(editor));
33
+ };
34
+ this._register(editorService.onDidActiveEditorChange(onActiveEditorChanged));
35
+ onActiveEditorChanged();
36
+ }
37
+ };
38
+ LimitIndicatorContribution = ( __decorate([
39
+ ( __param(0, IEditorService)),
40
+ ( __param(1, ILanguageStatusService))
41
+ ], LimitIndicatorContribution));
42
+ class ColorDecorationAccessor {
43
+ constructor() {
44
+ this.id = 'decoratorsLimitInfo';
45
+ this.name = ( localizeWithPath(
46
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
47
+ 'colorDecoratorsStatusItem.name',
48
+ 'Color Decorator Status'
49
+ ));
50
+ this.label = ( localizeWithPath(
51
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
52
+ 'status.limitedColorDecorators.short',
53
+ 'Color Decorators'
54
+ ));
55
+ this.source = ( localizeWithPath(
56
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
57
+ 'colorDecoratorsStatusItem.source',
58
+ 'Color Decorators'
59
+ ));
60
+ this.settingsId = 'editor.colorDecoratorsLimit';
61
+ }
62
+ getLimitReporter(editor) {
63
+ return ColorDetector.get(editor)?.limitReporter;
64
+ }
65
+ }
66
+ class FoldingRangeAccessor {
67
+ constructor() {
68
+ this.id = 'foldingLimitInfo';
69
+ this.name = ( localizeWithPath(
70
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
71
+ 'foldingRangesStatusItem.name',
72
+ 'Folding Status'
73
+ ));
74
+ this.label = ( localizeWithPath(
75
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
76
+ 'status.limitedFoldingRanges.short',
77
+ 'Folding Ranges'
78
+ ));
79
+ this.source = ( localizeWithPath(
80
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
81
+ 'foldingRangesStatusItem.source',
82
+ 'Folding'
83
+ ));
84
+ this.settingsId = 'editor.foldingMaximumRegions';
85
+ }
86
+ getLimitReporter(editor) {
87
+ return FoldingController.get(editor)?.limitReporter;
88
+ }
89
+ }
90
+ class LanguageStatusEntry {
91
+ constructor(languageStatusService, accessor) {
92
+ this.languageStatusService = languageStatusService;
93
+ this.accessor = accessor;
94
+ }
95
+ onActiveEditorChanged(editor) {
96
+ if (this._indicatorChangeListener) {
97
+ this._indicatorChangeListener.dispose();
98
+ this._indicatorChangeListener = undefined;
99
+ }
100
+ let info;
101
+ if (editor) {
102
+ info = this.accessor.getLimitReporter(editor);
103
+ }
104
+ this.updateStatusItem(info);
105
+ if (info) {
106
+ this._indicatorChangeListener = info.onDidChange(_ => {
107
+ this.updateStatusItem(info);
108
+ });
109
+ return true;
110
+ }
111
+ return false;
112
+ }
113
+ updateStatusItem(info) {
114
+ if (this._limitStatusItem) {
115
+ this._limitStatusItem.dispose();
116
+ this._limitStatusItem = undefined;
117
+ }
118
+ if (info && info.limited !== false) {
119
+ const status = {
120
+ id: this.accessor.id,
121
+ selector: '*',
122
+ name: this.accessor.name,
123
+ severity: Severity.Warning,
124
+ label: this.accessor.label,
125
+ detail: ( localizeWithPath(
126
+ 'vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution',
127
+ 'status.limited.details',
128
+ 'only {0} shown for performance reasons',
129
+ info.limited
130
+ )),
131
+ command: { id: openSettingsCommand, arguments: [this.accessor.settingsId], title: configureSettingsLabel },
132
+ accessibilityInfo: undefined,
133
+ source: this.accessor.source,
134
+ busy: false
135
+ };
136
+ this._limitStatusItem = this.languageStatusService.addStatus(status);
137
+ }
138
+ }
139
+ dispose() {
140
+ this._limitStatusItem = undefined;
141
+ this._indicatorChangeListener = undefined;
142
+ }
143
+ }
144
+ ( Registry.as(Extensions.Workbench)).registerWorkbenchContribution(LimitIndicatorContribution, 3 );
145
+ export { LimitIndicatorContribution };
@@ -0,0 +1,22 @@
1
+ import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
2
+ import { ILanguageFeaturesService } from '../../../../editor/common/services/languageFeatures.js';
3
+ import { ITextModelService } from '../../../../editor/common/services/resolverService.js';
4
+ import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';
5
+ CommandsRegistry.registerCommand('_executeMappedEditsProvider', async (accessor, documentUri, codeBlocks, context) => {
6
+ const modelService = accessor.get(ITextModelService);
7
+ const langFeaturesService = accessor.get(ILanguageFeaturesService);
8
+ const document = await modelService.createModelReference(documentUri);
9
+ let result = null;
10
+ try {
11
+ const providers = langFeaturesService.mappedEditsProvider.ordered(document.object.textEditorModel);
12
+ if (providers.length > 0) {
13
+ const mostRelevantProvider = providers[0];
14
+ const cancellationTokenSource = ( new CancellationTokenSource());
15
+ result = await mostRelevantProvider.provideMappedEdits(document.object.textEditorModel, codeBlocks, context, cancellationTokenSource.token);
16
+ }
17
+ }
18
+ finally {
19
+ document.dispose();
20
+ }
21
+ return result;
22
+ });