@codingame/monaco-vscode-api 1.85.1 → 1.85.2

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 (63) hide show
  1. package/README.md +14 -5
  2. package/missing-services.js +305 -63
  3. package/monaco-editor-treemending.patch +946 -946
  4. package/package.json +8 -7
  5. package/service-override/tools/editor.js +1 -1
  6. package/services.js +10 -6
  7. package/vscode/src/vs/base/browser/ui/tree/treeDefaults.js +14 -0
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionEnablementService.js +140 -0
  9. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1062 -93
  10. package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +220 -0
  11. package/vscode/src/vs/platform/quickinput/browser/quickPickPin.js +102 -0
  12. package/vscode/src/vs/platform/userDataSync/common/content.js +9 -0
  13. package/vscode/src/vs/platform/userDataSync/common/settingsMerge.js +514 -0
  14. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +154 -2
  15. package/vscode/src/vs/platform/userDataSync/common/userDataSyncAccount.js +43 -1
  16. package/vscode/src/vs/platform/userDataSync/common/userDataSyncMachines.js +177 -0
  17. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +1 -1
  18. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +1 -1
  19. package/vscode/src/vs/workbench/api/common/extHostWebview.js +2 -2
  20. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +105 -0
  21. package/vscode/src/vs/workbench/browser/parts/views/media/views.css.js +4 -0
  22. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +1614 -0
  23. package/vscode/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.js +7 -7
  24. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +73 -2
  25. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  26. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +12 -2
  27. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +712 -0
  28. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.js +130 -0
  29. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +20 -1
  30. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +205 -0
  31. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +11 -0
  32. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +9 -9
  33. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +1 -1
  34. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +2 -2
  35. package/vscode/src/vs/workbench/services/languageStatus/common/languageStatusService.js +24 -1
  36. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +41 -0
  37. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +588 -0
  38. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +43 -0
  39. package/vscode/src/vs/workbench/services/search/common/search.js +3 -3
  40. package/vscode/src/vs/workbench/services/terminal/common/embedderTerminalService.js +75 -1
  41. package/vscode/src/vs/workbench/services/timer/browser/timerService.js +240 -1
  42. package/vscode/src/vs/workbench/services/userData/browser/userDataInit.js +31 -1
  43. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +25 -1
  44. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +75 -1
  45. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +74 -4
  46. package/vscode/src/vs/base/parts/request/browser/request.js +0 -60
  47. package/vscode/src/vs/platform/request/browser/requestService.js +0 -28
  48. package/vscode/src/vs/platform/request/common/requestIpc.js +0 -17
  49. package/vscode/src/vs/platform/url/common/urlService.js +0 -17
  50. package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +0 -120
  51. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +0 -319
  52. package/vscode/src/vs/workbench/services/files/browser/elevatedFileService.js +0 -9
  53. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +0 -408
  54. package/vscode/src/vs/workbench/services/request/browser/requestService.js +0 -48
  55. package/vscode/src/vs/workbench/services/textfile/browser/browserTextFileService.js +0 -56
  56. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +0 -639
  57. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +0 -402
  58. package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +0 -62
  59. package/vscode/src/vs/workbench/services/themes/browser/browserHostColorSchemeService.js +0 -38
  60. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +0 -295
  61. package/vscode/src/vs/workbench/services/url/browser/urlService.js +0 -47
  62. package/vscode/src/vs/workbench/services/views/common/treeViewsService.js +0 -20
  63. package/vscode/src/vs/workbench/services/workspaces/common/canonicalUriService.js +0 -19
@@ -1,402 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
- import { toErrorMessage } from 'monaco-editor/esm/vs/base/common/errorMessage.js';
4
- import { Emitter, Event } from 'monaco-editor/esm/vs/base/common/event.js';
5
- import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
6
- import { TextFileEditorModel } from './textFileEditorModel.js';
7
- import { Disposable, dispose, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
8
- import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
9
- import { ResourceMap } from 'monaco-editor/esm/vs/base/common/map.js';
10
- import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
11
- import { ResourceQueue, Promises } from 'monaco-editor/esm/vs/base/common/async.js';
12
- import { onUnexpectedError } from 'monaco-editor/esm/vs/base/common/errors.js';
13
- import { TextFileSaveParticipant } from './textFileSaveParticipant.js';
14
- import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
15
- import { IWorkingCopyFileService } from '../../workingCopy/common/workingCopyFileService.js';
16
- import { joinPath, extname } from 'monaco-editor/esm/vs/base/common/resources.js';
17
- import { createTextBufferFactoryFromSnapshot } from 'monaco-editor/esm/vs/editor/common/model/textModel.js';
18
- import { PLAINTEXT_LANGUAGE_ID, PLAINTEXT_EXTENSION } from 'monaco-editor/esm/vs/editor/common/languages/modesRegistry.js';
19
- import { IUriIdentityService } from 'monaco-editor/esm/vs/platform/uriIdentity/common/uriIdentity.js';
20
- let TextFileEditorModelManager = class TextFileEditorModelManager extends Disposable {
21
- get models() {
22
- return [...( this.mapResourceToModel.values())];
23
- }
24
- constructor(instantiationService, fileService, notificationService, workingCopyFileService, uriIdentityService) {
25
- super();
26
- this.instantiationService = instantiationService;
27
- this.fileService = fileService;
28
- this.notificationService = notificationService;
29
- this.workingCopyFileService = workingCopyFileService;
30
- this.uriIdentityService = uriIdentityService;
31
- this._onDidCreate = this._register(( new Emitter()));
32
- this.onDidCreate = this._onDidCreate.event;
33
- this._onDidResolve = this._register(( new Emitter()));
34
- this.onDidResolve = this._onDidResolve.event;
35
- this._onDidRemove = this._register(( new Emitter()));
36
- this.onDidRemove = this._onDidRemove.event;
37
- this._onDidChangeDirty = this._register(( new Emitter()));
38
- this.onDidChangeDirty = this._onDidChangeDirty.event;
39
- this._onDidChangeReadonly = this._register(( new Emitter()));
40
- this.onDidChangeReadonly = this._onDidChangeReadonly.event;
41
- this._onDidChangeOrphaned = this._register(( new Emitter()));
42
- this.onDidChangeOrphaned = this._onDidChangeOrphaned.event;
43
- this._onDidSaveError = this._register(( new Emitter()));
44
- this.onDidSaveError = this._onDidSaveError.event;
45
- this._onDidSave = this._register(( new Emitter()));
46
- this.onDidSave = this._onDidSave.event;
47
- this._onDidRevert = this._register(( new Emitter()));
48
- this.onDidRevert = this._onDidRevert.event;
49
- this._onDidChangeEncoding = this._register(( new Emitter()));
50
- this.onDidChangeEncoding = this._onDidChangeEncoding.event;
51
- this.mapResourceToModel = ( new ResourceMap());
52
- this.mapResourceToModelListeners = ( new ResourceMap());
53
- this.mapResourceToDisposeListener = ( new ResourceMap());
54
- this.mapResourceToPendingModelResolvers = ( new ResourceMap());
55
- this.modelResolveQueue = this._register(( new ResourceQueue()));
56
- this.saveErrorHandler = (() => {
57
- const notificationService = this.notificationService;
58
- return {
59
- onSaveError(error, model) {
60
- notificationService.error(( localizeWithPath(
61
- 'vs/workbench/services/textfile/common/textFileEditorModelManager',
62
- { key: 'genericSaveError', comment: ['{0} is the resource that failed to save and {1} the error message'] },
63
- "Failed to save '{0}': {1}",
64
- model.name,
65
- toErrorMessage(error, false)
66
- )));
67
- }
68
- };
69
- })();
70
- this.mapCorrelationIdToModelsToRestore = ( new Map());
71
- this.saveParticipants = this._register(this.instantiationService.createInstance(TextFileSaveParticipant));
72
- this.registerListeners();
73
- }
74
- registerListeners() {
75
- this._register(this.fileService.onDidFilesChange(e => this.onDidFilesChange(e)));
76
- this._register(this.fileService.onDidChangeFileSystemProviderCapabilities(e => this.onDidChangeFileSystemProviderCapabilities(e)));
77
- this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(e => this.onDidChangeFileSystemProviderRegistrations(e)));
78
- this._register(this.workingCopyFileService.onWillRunWorkingCopyFileOperation(e => this.onWillRunWorkingCopyFileOperation(e)));
79
- this._register(this.workingCopyFileService.onDidFailWorkingCopyFileOperation(e => this.onDidFailWorkingCopyFileOperation(e)));
80
- this._register(this.workingCopyFileService.onDidRunWorkingCopyFileOperation(e => this.onDidRunWorkingCopyFileOperation(e)));
81
- }
82
- onDidFilesChange(e) {
83
- for (const model of this.models) {
84
- if (model.isDirty()) {
85
- continue;
86
- }
87
- if (e.contains(model.resource, 0 , 1 )) {
88
- this.queueModelReload(model);
89
- }
90
- }
91
- }
92
- onDidChangeFileSystemProviderCapabilities(e) {
93
- this.queueModelReloads(e.scheme);
94
- }
95
- onDidChangeFileSystemProviderRegistrations(e) {
96
- if (!e.added) {
97
- return;
98
- }
99
- this.queueModelReloads(e.scheme);
100
- }
101
- queueModelReloads(scheme) {
102
- for (const model of this.models) {
103
- if (model.isDirty()) {
104
- continue;
105
- }
106
- if (scheme === model.resource.scheme) {
107
- this.queueModelReload(model);
108
- }
109
- }
110
- }
111
- queueModelReload(model) {
112
- const queue = this.modelResolveQueue.queueFor(model.resource);
113
- if (queue.size <= 1) {
114
- queue.queue(async () => {
115
- try {
116
- await this.reload(model);
117
- }
118
- catch (error) {
119
- onUnexpectedError(error);
120
- }
121
- });
122
- }
123
- }
124
- onWillRunWorkingCopyFileOperation(e) {
125
- if (e.operation === 2 || e.operation === 3 ) {
126
- const modelsToRestore = [];
127
- for (const { source, target } of e.files) {
128
- if (source) {
129
- if (this.uriIdentityService.extUri.isEqual(source, target)) {
130
- continue;
131
- }
132
- const sourceModels = [];
133
- for (const model of this.models) {
134
- if (this.uriIdentityService.extUri.isEqualOrParent(model.resource, source)) {
135
- sourceModels.push(model);
136
- }
137
- }
138
- for (const sourceModel of sourceModels) {
139
- const sourceModelResource = sourceModel.resource;
140
- let targetModelResource;
141
- if (this.uriIdentityService.extUri.isEqual(sourceModelResource, source)) {
142
- targetModelResource = target;
143
- }
144
- else {
145
- targetModelResource = joinPath(target, sourceModelResource.path.substr(source.path.length + 1));
146
- }
147
- modelsToRestore.push({
148
- source: sourceModelResource,
149
- target: targetModelResource,
150
- languageId: sourceModel.getLanguageId(),
151
- encoding: sourceModel.getEncoding(),
152
- snapshot: sourceModel.isDirty() ? sourceModel.createSnapshot() : undefined
153
- });
154
- }
155
- }
156
- }
157
- this.mapCorrelationIdToModelsToRestore.set(e.correlationId, modelsToRestore);
158
- }
159
- }
160
- onDidFailWorkingCopyFileOperation(e) {
161
- if (((e.operation === 2 || e.operation === 3) )) {
162
- const modelsToRestore = this.mapCorrelationIdToModelsToRestore.get(e.correlationId);
163
- if (modelsToRestore) {
164
- this.mapCorrelationIdToModelsToRestore.delete(e.correlationId);
165
- modelsToRestore.forEach(model => {
166
- if (model.snapshot) {
167
- this.get(model.source)?.setDirty(true);
168
- }
169
- });
170
- }
171
- }
172
- }
173
- onDidRunWorkingCopyFileOperation(e) {
174
- switch (e.operation) {
175
- case 0 :
176
- e.waitUntil((async () => {
177
- for (const { target } of e.files) {
178
- const model = this.get(target);
179
- if (model && !model.isDisposed()) {
180
- await model.revert();
181
- }
182
- }
183
- })());
184
- break;
185
- case 2 :
186
- case 3 :
187
- e.waitUntil((async () => {
188
- const modelsToRestore = this.mapCorrelationIdToModelsToRestore.get(e.correlationId);
189
- if (modelsToRestore) {
190
- this.mapCorrelationIdToModelsToRestore.delete(e.correlationId);
191
- await Promises.settled(( modelsToRestore.map(async (modelToRestore) => {
192
- const restoredModel = await this.resolve(modelToRestore.target, {
193
- reload: { async: false },
194
- contents: modelToRestore.snapshot ? createTextBufferFactoryFromSnapshot(modelToRestore.snapshot) : undefined,
195
- encoding: modelToRestore.encoding
196
- });
197
- if (modelToRestore.languageId &&
198
- modelToRestore.languageId !== PLAINTEXT_LANGUAGE_ID &&
199
- restoredModel.getLanguageId() === PLAINTEXT_LANGUAGE_ID &&
200
- extname(modelToRestore.target) !== PLAINTEXT_EXTENSION) {
201
- restoredModel.updateTextEditorModel(undefined, modelToRestore.languageId);
202
- }
203
- })));
204
- }
205
- })());
206
- break;
207
- }
208
- }
209
- get(resource) {
210
- return this.mapResourceToModel.get(resource);
211
- }
212
- has(resource) {
213
- return ( this.mapResourceToModel.has(resource));
214
- }
215
- async reload(model) {
216
- await this.joinPendingResolves(model.resource);
217
- if (model.isDirty() || model.isDisposed() || !( this.has(model.resource))) {
218
- return;
219
- }
220
- await this.doResolve(model, { reload: { async: false } });
221
- }
222
- async resolve(resource, options) {
223
- const pendingResolve = this.joinPendingResolves(resource);
224
- if (pendingResolve) {
225
- await pendingResolve;
226
- }
227
- return this.doResolve(resource, options);
228
- }
229
- async doResolve(resourceOrModel, options) {
230
- let model;
231
- let resource;
232
- if (URI.isUri(resourceOrModel)) {
233
- resource = resourceOrModel;
234
- model = this.get(resource);
235
- }
236
- else {
237
- resource = resourceOrModel.resource;
238
- model = resourceOrModel;
239
- }
240
- let modelResolve;
241
- let didCreateModel = false;
242
- if (model) {
243
- if (options?.contents) {
244
- modelResolve = model.resolve(options);
245
- }
246
- else if (options?.reload) {
247
- if (options.reload.async) {
248
- modelResolve = Promise.resolve();
249
- (async () => {
250
- try {
251
- await model.resolve(options);
252
- }
253
- catch (error) {
254
- onUnexpectedError(error);
255
- }
256
- })();
257
- }
258
- else {
259
- modelResolve = model.resolve(options);
260
- }
261
- }
262
- else {
263
- modelResolve = Promise.resolve();
264
- }
265
- }
266
- else {
267
- didCreateModel = true;
268
- const newModel = model = this.instantiationService.createInstance(TextFileEditorModel, resource, options ? options.encoding : undefined, options ? options.languageId : undefined);
269
- modelResolve = model.resolve(options);
270
- this.registerModel(newModel);
271
- }
272
- this.mapResourceToPendingModelResolvers.set(resource, modelResolve);
273
- this.add(resource, model);
274
- if (didCreateModel) {
275
- this._onDidCreate.fire(model);
276
- if (model.isDirty()) {
277
- this._onDidChangeDirty.fire(model);
278
- }
279
- }
280
- try {
281
- await modelResolve;
282
- }
283
- catch (error) {
284
- if (didCreateModel) {
285
- model.dispose();
286
- }
287
- throw error;
288
- }
289
- finally {
290
- this.mapResourceToPendingModelResolvers.delete(resource);
291
- }
292
- if (options?.languageId) {
293
- model.setLanguageId(options.languageId);
294
- }
295
- if (didCreateModel && model.isDirty()) {
296
- this._onDidChangeDirty.fire(model);
297
- }
298
- return model;
299
- }
300
- joinPendingResolves(resource) {
301
- const pendingModelResolve = this.mapResourceToPendingModelResolvers.get(resource);
302
- if (!pendingModelResolve) {
303
- return;
304
- }
305
- return this.doJoinPendingResolves(resource);
306
- }
307
- async doJoinPendingResolves(resource) {
308
- let currentModelCopyResolve;
309
- while (( this.mapResourceToPendingModelResolvers.has(resource))) {
310
- const nextPendingModelResolve = this.mapResourceToPendingModelResolvers.get(resource);
311
- if (nextPendingModelResolve === currentModelCopyResolve) {
312
- return;
313
- }
314
- currentModelCopyResolve = nextPendingModelResolve;
315
- try {
316
- await nextPendingModelResolve;
317
- }
318
- catch (error) {
319
- }
320
- }
321
- }
322
- registerModel(model) {
323
- const modelListeners = ( new DisposableStore());
324
- modelListeners.add(model.onDidResolve(reason => this._onDidResolve.fire({ model, reason })));
325
- modelListeners.add(model.onDidChangeDirty(() => this._onDidChangeDirty.fire(model)));
326
- modelListeners.add(model.onDidChangeReadonly(() => this._onDidChangeReadonly.fire(model)));
327
- modelListeners.add(model.onDidChangeOrphaned(() => this._onDidChangeOrphaned.fire(model)));
328
- modelListeners.add(model.onDidSaveError(() => this._onDidSaveError.fire(model)));
329
- modelListeners.add(model.onDidSave(e => this._onDidSave.fire({ model, ...e })));
330
- modelListeners.add(model.onDidRevert(() => this._onDidRevert.fire(model)));
331
- modelListeners.add(model.onDidChangeEncoding(() => this._onDidChangeEncoding.fire(model)));
332
- this.mapResourceToModelListeners.set(model.resource, modelListeners);
333
- }
334
- add(resource, model) {
335
- const knownModel = this.mapResourceToModel.get(resource);
336
- if (knownModel === model) {
337
- return;
338
- }
339
- const disposeListener = this.mapResourceToDisposeListener.get(resource);
340
- disposeListener?.dispose();
341
- this.mapResourceToModel.set(resource, model);
342
- this.mapResourceToDisposeListener.set(resource, model.onWillDispose(() => this.remove(resource)));
343
- }
344
- remove(resource) {
345
- const removed = this.mapResourceToModel.delete(resource);
346
- const disposeListener = this.mapResourceToDisposeListener.get(resource);
347
- if (disposeListener) {
348
- dispose(disposeListener);
349
- this.mapResourceToDisposeListener.delete(resource);
350
- }
351
- const modelListener = this.mapResourceToModelListeners.get(resource);
352
- if (modelListener) {
353
- dispose(modelListener);
354
- this.mapResourceToModelListeners.delete(resource);
355
- }
356
- if (removed) {
357
- this._onDidRemove.fire(resource);
358
- }
359
- }
360
- addSaveParticipant(participant) {
361
- return this.saveParticipants.addSaveParticipant(participant);
362
- }
363
- runSaveParticipants(model, context, token) {
364
- return this.saveParticipants.participate(model, context, token);
365
- }
366
- canDispose(model) {
367
- if (model.isDisposed() ||
368
- (!( this.mapResourceToPendingModelResolvers.has(model.resource)) && !model.isDirty())) {
369
- return true;
370
- }
371
- return this.doCanDispose(model);
372
- }
373
- async doCanDispose(model) {
374
- const pendingResolve = this.joinPendingResolves(model.resource);
375
- if (pendingResolve) {
376
- await pendingResolve;
377
- return this.canDispose(model);
378
- }
379
- if (model.isDirty()) {
380
- await Event.toPromise(model.onDidChangeDirty);
381
- return this.canDispose(model);
382
- }
383
- return true;
384
- }
385
- dispose() {
386
- super.dispose();
387
- this.mapResourceToModel.clear();
388
- this.mapResourceToPendingModelResolvers.clear();
389
- dispose(( this.mapResourceToDisposeListener.values()));
390
- this.mapResourceToDisposeListener.clear();
391
- dispose(( this.mapResourceToModelListeners.values()));
392
- this.mapResourceToModelListeners.clear();
393
- }
394
- };
395
- TextFileEditorModelManager = ( __decorate([
396
- ( __param(0, IInstantiationService)),
397
- ( __param(1, IFileService)),
398
- ( __param(2, INotificationService)),
399
- ( __param(3, IWorkingCopyFileService)),
400
- ( __param(4, IUriIdentityService))
401
- ], TextFileEditorModelManager));
402
- export { TextFileEditorModelManager };
@@ -1,62 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
- import { raceCancellation } from 'monaco-editor/esm/vs/base/common/async.js';
4
- import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
5
- import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
6
- import { IProgressService } from 'monaco-editor/esm/vs/platform/progress/common/progress.js';
7
- import { Disposable, toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
8
- import { insert } from 'monaco-editor/esm/vs/base/common/arrays.js';
9
- let TextFileSaveParticipant = class TextFileSaveParticipant extends Disposable {
10
- constructor(progressService, logService) {
11
- super();
12
- this.progressService = progressService;
13
- this.logService = logService;
14
- this.saveParticipants = [];
15
- }
16
- addSaveParticipant(participant) {
17
- const remove = insert(this.saveParticipants, participant);
18
- return toDisposable(() => remove());
19
- }
20
- participate(model, context, token) {
21
- const cts = ( new CancellationTokenSource(token));
22
- return this.progressService.withProgress({
23
- title: ( localizeWithPath(
24
- 'vs/workbench/services/textfile/common/textFileSaveParticipant',
25
- 'saveParticipants',
26
- "Saving '{0}'",
27
- model.name
28
- )),
29
- location: 15 ,
30
- cancellable: true,
31
- delay: model.isDirty() ? 3000 : 5000
32
- }, async (progress) => {
33
- model.textEditorModel?.pushStackElement();
34
- for (const saveParticipant of this.saveParticipants) {
35
- if (cts.token.isCancellationRequested || !model.textEditorModel ) {
36
- break;
37
- }
38
- try {
39
- const promise = saveParticipant.participate(model, context, progress, cts.token);
40
- await raceCancellation(promise, cts.token);
41
- }
42
- catch (err) {
43
- this.logService.error(err);
44
- }
45
- }
46
- model.textEditorModel?.pushStackElement();
47
- }, () => {
48
- cts.cancel();
49
- }).finally(() => {
50
- cts.dispose();
51
- });
52
- }
53
- dispose() {
54
- this.saveParticipants.splice(0, this.saveParticipants.length);
55
- super.dispose();
56
- }
57
- };
58
- TextFileSaveParticipant = ( __decorate([
59
- ( __param(0, IProgressService)),
60
- ( __param(1, ILogService))
61
- ], TextFileSaveParticipant));
62
- export { TextFileSaveParticipant };
@@ -1,38 +0,0 @@
1
- import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
2
- import { addMatchMediaChangeListener } from 'monaco-editor/esm/vs/base/browser/browser.js';
3
- import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
4
- import { mainWindow } from 'monaco-editor/esm/vs/base/browser/window.js';
5
- class BrowserHostColorSchemeService extends Disposable {
6
- constructor() {
7
- super();
8
- this._onDidSchemeChangeEvent = this._register(( new Emitter()));
9
- this.registerListeners();
10
- }
11
- registerListeners() {
12
- addMatchMediaChangeListener('(prefers-color-scheme: dark)', () => {
13
- this._onDidSchemeChangeEvent.fire();
14
- });
15
- addMatchMediaChangeListener('(forced-colors: active)', () => {
16
- this._onDidSchemeChangeEvent.fire();
17
- });
18
- }
19
- get onDidChangeColorScheme() {
20
- return this._onDidSchemeChangeEvent.event;
21
- }
22
- get dark() {
23
- if (mainWindow.matchMedia(`(prefers-color-scheme: light)`).matches) {
24
- return false;
25
- }
26
- else if (mainWindow.matchMedia(`(prefers-color-scheme: dark)`).matches) {
27
- return true;
28
- }
29
- return false;
30
- }
31
- get highContrast() {
32
- if (mainWindow.matchMedia(`(forced-colors: active)`).matches) {
33
- return true;
34
- }
35
- return false;
36
- }
37
- }
38
- export { BrowserHostColorSchemeService };