@codingame/monaco-vscode-api 1.67.12 → 1.67.15

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.
@@ -13,9 +13,11 @@ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configurati
13
13
  import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
14
14
  import { localize } from 'monaco-editor/esm/vs/nls.js';
15
15
  import { raceCancellation, Promises } from 'monaco-editor/esm/vs/base/common/async.js';
16
+ import { TernarySearchTree } from 'monaco-editor/esm/vs/base/common/map.js';
16
17
  import { onUnexpectedError } from 'monaco-editor/esm/vs/base/common/errors.js';
17
18
  import { StopWatch } from 'monaco-editor/esm/vs/base/common/stopwatch.js';
18
19
  import { CancellationToken } from 'monaco-editor/esm/vs/base/common/cancellation.js';
20
+ import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
19
21
  import 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
20
22
  import 'monaco-editor/esm/vs/platform/commands/common/commands.js';
21
23
  import 'monaco-editor/esm/vs/platform/notification/common/notification.js';
@@ -268,6 +270,60 @@ function isValidBasename(name, isWindowsOS = isWindows) {
268
270
  }
269
271
  return true;
270
272
  }
273
+ function sortedDiff(before, after, compare) {
274
+ const result = [];
275
+ function pushSplice(start, deleteCount, toInsert) {
276
+ if (deleteCount === 0 && toInsert.length === 0) {
277
+ return;
278
+ }
279
+ const latest = result[result.length - 1];
280
+ if (latest && latest.start + latest.deleteCount === start) {
281
+ latest.deleteCount += deleteCount;
282
+ latest.toInsert.push(...toInsert);
283
+ }
284
+ else {
285
+ result.push({ start, deleteCount, toInsert });
286
+ }
287
+ }
288
+ let beforeIdx = 0;
289
+ let afterIdx = 0;
290
+ while (true) {
291
+ if (beforeIdx === before.length) {
292
+ pushSplice(beforeIdx, 0, after.slice(afterIdx));
293
+ break;
294
+ }
295
+ if (afterIdx === after.length) {
296
+ pushSplice(beforeIdx, before.length - beforeIdx, []);
297
+ break;
298
+ }
299
+ const beforeElement = before[beforeIdx];
300
+ const afterElement = after[afterIdx];
301
+ const n = compare(beforeElement, afterElement);
302
+ if (n === 0) {
303
+ beforeIdx += 1;
304
+ afterIdx += 1;
305
+ }
306
+ else if (n < 0) {
307
+ pushSplice(beforeIdx, 1, []);
308
+ beforeIdx += 1;
309
+ }
310
+ else if (n > 0) {
311
+ pushSplice(beforeIdx, 0, [afterElement]);
312
+ afterIdx += 1;
313
+ }
314
+ }
315
+ return result;
316
+ }
317
+ function delta(before, after, compare) {
318
+ const splices = sortedDiff(before, after, compare);
319
+ const removed = [];
320
+ const added = [];
321
+ for (const splice of splices) {
322
+ removed.push(...before.slice(splice.start, splice.start + splice.deleteCount));
323
+ added.push(...splice.toInsert);
324
+ }
325
+ return { removed, added };
326
+ }
271
327
  function coalesceInPlace(array) {
272
328
  let to = 0;
273
329
  for (let i = 0; i < array.length; i++) {
@@ -290,6 +346,39 @@ function remove(array, element) {
290
346
  }
291
347
  return undefined;
292
348
  }
349
+ function mapArrayOrNot(items, fn) {
350
+ return Array.isArray(items) ?
351
+ items.map(fn) :
352
+ fn(items);
353
+ }
354
+ var NeverShowAgainScope;
355
+ (function(NeverShowAgainScope) {
356
+ NeverShowAgainScope[NeverShowAgainScope["WORKSPACE"] = 0] = "WORKSPACE";
357
+ NeverShowAgainScope[NeverShowAgainScope["GLOBAL"] = 1] = "GLOBAL";
358
+ })(NeverShowAgainScope || (NeverShowAgainScope = {}));
359
+ var NotificationsFilter;
360
+ (function(NotificationsFilter) {
361
+ NotificationsFilter[NotificationsFilter["OFF"] = 0] = "OFF";
362
+ NotificationsFilter[NotificationsFilter["SILENT"] = 1] = "SILENT";
363
+ NotificationsFilter[NotificationsFilter["ERROR"] = 2] = "ERROR";
364
+ })(NotificationsFilter || (NotificationsFilter = {}));
365
+ class NoOpNotification {
366
+ constructor() {
367
+ this.progress = new NoOpProgress();
368
+ this.onDidClose = Event.None;
369
+ this.onDidChangeVisibility = Event.None;
370
+ }
371
+ updateSeverity(severity) { }
372
+ updateMessage(message) { }
373
+ updateActions(actions) { }
374
+ close() { }
375
+ }
376
+ class NoOpProgress {
377
+ infinite() { }
378
+ done() { }
379
+ total(value) { }
380
+ worked(value) { }
381
+ }
293
382
  function __decorate(decorators, target, key, desc) {
294
383
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
295
384
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -322,6 +411,24 @@ var FilePermission;
322
411
  (function(FilePermission) {
323
412
  FilePermission[FilePermission["Readonly"] = 1] = "Readonly";
324
413
  })(FilePermission || (FilePermission = {}));
414
+ function hasReadWriteCapability(provider) {
415
+ return !!((provider.capabilities & 2) );
416
+ }
417
+ function hasFileFolderCopyCapability(provider) {
418
+ return !!((provider.capabilities & 8) );
419
+ }
420
+ function hasOpenReadWriteCloseCapability(provider) {
421
+ return !!((provider.capabilities & 4) );
422
+ }
423
+ function hasFileReadStreamCapability(provider) {
424
+ return !!((provider.capabilities & 16) );
425
+ }
426
+ function hasFileAtomicReadCapability(provider) {
427
+ if (!hasReadWriteCapability(provider)) {
428
+ return false;
429
+ }
430
+ return !!((provider.capabilities & 16384) );
431
+ }
325
432
  var FileSystemProviderErrorCode;
326
433
  (function(FileSystemProviderErrorCode) {
327
434
  FileSystemProviderErrorCode["FileExists"] = "EntryExists";
@@ -335,10 +442,181 @@ var FileSystemProviderErrorCode;
335
442
  FileSystemProviderErrorCode["Unavailable"] = "Unavailable";
336
443
  FileSystemProviderErrorCode["Unknown"] = "Unknown";
337
444
  })(FileSystemProviderErrorCode || (FileSystemProviderErrorCode = {}));
445
+ class FileSystemProviderError extends Error {
446
+ constructor(message, code) {
447
+ super(message);
448
+ this.code = code;
449
+ }
450
+ }
451
+ function createFileSystemProviderError(error, code) {
452
+ const providerError = new FileSystemProviderError(error.toString(), code);
453
+ markAsFileSystemProviderError(providerError, code);
454
+ return providerError;
455
+ }
456
+ function ensureFileSystemProviderError(error) {
457
+ if (!error) {
458
+ return createFileSystemProviderError( localize('unknownError', "Unknown Error"), FileSystemProviderErrorCode.Unknown);
459
+ }
460
+ return error;
461
+ }
338
462
  function markAsFileSystemProviderError(error, code) {
339
463
  error.name = code ? `${code} (FileSystemError)` : `FileSystemError`;
340
464
  return error;
341
465
  }
466
+ function toFileSystemProviderErrorCode(error) {
467
+ if (!error) {
468
+ return FileSystemProviderErrorCode.Unknown;
469
+ }
470
+ if (error instanceof FileSystemProviderError) {
471
+ return error.code;
472
+ }
473
+ const match = /^(.+) \(FileSystemError\)$/.exec(error.name);
474
+ if (!match) {
475
+ return FileSystemProviderErrorCode.Unknown;
476
+ }
477
+ switch (match[1]) {
478
+ case FileSystemProviderErrorCode.FileExists: return FileSystemProviderErrorCode.FileExists;
479
+ case FileSystemProviderErrorCode.FileIsADirectory: return FileSystemProviderErrorCode.FileIsADirectory;
480
+ case FileSystemProviderErrorCode.FileNotADirectory: return FileSystemProviderErrorCode.FileNotADirectory;
481
+ case FileSystemProviderErrorCode.FileNotFound: return FileSystemProviderErrorCode.FileNotFound;
482
+ case FileSystemProviderErrorCode.FileExceedsMemoryLimit: return FileSystemProviderErrorCode.FileExceedsMemoryLimit;
483
+ case FileSystemProviderErrorCode.FileTooLarge: return FileSystemProviderErrorCode.FileTooLarge;
484
+ case FileSystemProviderErrorCode.FileWriteLocked: return FileSystemProviderErrorCode.FileWriteLocked;
485
+ case FileSystemProviderErrorCode.NoPermissions: return FileSystemProviderErrorCode.NoPermissions;
486
+ case FileSystemProviderErrorCode.Unavailable: return FileSystemProviderErrorCode.Unavailable;
487
+ }
488
+ return FileSystemProviderErrorCode.Unknown;
489
+ }
490
+ function toFileOperationResult(error) {
491
+ if (error instanceof FileOperationError) {
492
+ return error.fileOperationResult;
493
+ }
494
+ switch (toFileSystemProviderErrorCode(error)) {
495
+ case FileSystemProviderErrorCode.FileNotFound:
496
+ return 1 ;
497
+ case FileSystemProviderErrorCode.FileIsADirectory:
498
+ return 0 ;
499
+ case FileSystemProviderErrorCode.FileNotADirectory:
500
+ return 10 ;
501
+ case FileSystemProviderErrorCode.FileWriteLocked:
502
+ return 5 ;
503
+ case FileSystemProviderErrorCode.NoPermissions:
504
+ return 6 ;
505
+ case FileSystemProviderErrorCode.FileExists:
506
+ return 4 ;
507
+ case FileSystemProviderErrorCode.FileExceedsMemoryLimit:
508
+ return 9 ;
509
+ case FileSystemProviderErrorCode.FileTooLarge:
510
+ return 7 ;
511
+ default:
512
+ return 11 ;
513
+ }
514
+ }
515
+ class FileOperationEvent {
516
+ constructor(resource, operation, target) {
517
+ this.resource = resource;
518
+ this.operation = operation;
519
+ this.target = target;
520
+ }
521
+ isOperation(operation) {
522
+ return this.operation === operation;
523
+ }
524
+ }
525
+ class FileChangesEvent {
526
+ constructor(changes, ignorePathCasing) {
527
+ this.added = undefined;
528
+ this.updated = undefined;
529
+ this.deleted = undefined;
530
+ this.rawChanges = [];
531
+ this.rawAdded = [];
532
+ this.rawUpdated = [];
533
+ this.rawDeleted = [];
534
+ this.rawChanges = changes;
535
+ const entriesByType = new Map();
536
+ for (const change of changes) {
537
+ const array = entriesByType.get(change.type);
538
+ if (array) {
539
+ array.push([change.resource, change]);
540
+ }
541
+ else {
542
+ entriesByType.set(change.type, [[change.resource, change]]);
543
+ }
544
+ switch (change.type) {
545
+ case 1 :
546
+ this.rawAdded.push(change.resource);
547
+ break;
548
+ case 0 :
549
+ this.rawUpdated.push(change.resource);
550
+ break;
551
+ case 2 :
552
+ this.rawDeleted.push(change.resource);
553
+ break;
554
+ }
555
+ }
556
+ for (const [key, value] of entriesByType) {
557
+ switch (key) {
558
+ case 1 :
559
+ this.added = TernarySearchTree.forUris(() => ignorePathCasing);
560
+ this.added.fill(value);
561
+ break;
562
+ case 0 :
563
+ this.updated = TernarySearchTree.forUris(() => ignorePathCasing);
564
+ this.updated.fill(value);
565
+ break;
566
+ case 2 :
567
+ this.deleted = TernarySearchTree.forUris(() => ignorePathCasing);
568
+ this.deleted.fill(value);
569
+ break;
570
+ }
571
+ }
572
+ }
573
+ contains(resource, ...types) {
574
+ return this.doContains(resource, { includeChildren: false }, ...types);
575
+ }
576
+ affects(resource, ...types) {
577
+ return this.doContains(resource, { includeChildren: true }, ...types);
578
+ }
579
+ doContains(resource, options, ...types) {
580
+ if (!resource) {
581
+ return false;
582
+ }
583
+ const hasTypesFilter = types.length > 0;
584
+ if (!hasTypesFilter || types.includes(1 )) {
585
+ if (this.added?.get(resource)) {
586
+ return true;
587
+ }
588
+ if (options.includeChildren && this.added?.findSuperstr(resource)) {
589
+ return true;
590
+ }
591
+ }
592
+ if (!hasTypesFilter || types.includes(0 )) {
593
+ if (this.updated?.get(resource)) {
594
+ return true;
595
+ }
596
+ if (options.includeChildren && this.updated?.findSuperstr(resource)) {
597
+ return true;
598
+ }
599
+ }
600
+ if (!hasTypesFilter || types.includes(2 )) {
601
+ if (this.deleted?.findSubstr(resource) ) {
602
+ return true;
603
+ }
604
+ if (options.includeChildren && this.deleted?.findSuperstr(resource)) {
605
+ return true;
606
+ }
607
+ }
608
+ return false;
609
+ }
610
+ gotAdded() {
611
+ return !!this.added;
612
+ }
613
+ gotDeleted() {
614
+ return !!this.deleted;
615
+ }
616
+ gotUpdated() {
617
+ return !!this.updated;
618
+ }
619
+ }
342
620
  class FileOperationError extends ErrorNoTelemetry {
343
621
  constructor(message, fileOperationResult, options) {
344
622
  super(message);
@@ -346,6 +624,19 @@ class FileOperationError extends ErrorNoTelemetry {
346
624
  this.options = options;
347
625
  }
348
626
  }
627
+ class NotModifiedSinceFileOperationError extends FileOperationError {
628
+ constructor(message, stat, options) {
629
+ super(message, 2 , options);
630
+ this.stat = stat;
631
+ }
632
+ }
633
+ const ETAG_DISABLED = '';
634
+ function etag(stat) {
635
+ if (typeof stat.size !== 'number' || typeof stat.mtime !== 'number') {
636
+ return undefined;
637
+ }
638
+ return stat.mtime.toString(29) + stat.size.toString(31);
639
+ }
349
640
  const IEditorGroupsService = createDecorator('editorGroupsService');
350
641
  function isEditorGroup(obj) {
351
642
  const group = obj;
@@ -741,4 +1032,4 @@ var Services;
741
1032
  }
742
1033
  Services.install = install;
743
1034
  })(Services || (Services = {}));
744
- export { ACTIVE_GROUP as A, CancellationTokenSource as C, FileSystemProviderErrorCode as F, IProgressService as I, SIDE_GROUP as S, __classPrivateFieldSet as _, __classPrivateFieldGet as a, __decorate as b, coalesceInPlace as c, __param as d, ITextFileService as e, IFileService as f, IWorkbenchEnvironmentService as g, IUriIdentityService as h, IWorkingCopyFileService as i, IPathService as j, disposed as k, IEditorService as l, markAsFileSystemProviderError as m, IEditorGroupsService as n, IPaneCompositePartService as o, IProductService as p, ILanguageStatusService as q, readonly as r, IHostService as s, Services as t, FileType as u, FilePermission as v, refineServiceDecorator as w, isPreferredGroup as x };
1035
+ export { ACTIVE_GROUP as A, NeverShowAgainScope as B, CancellationTokenSource as C, isPreferredGroup as D, ensureFileSystemProviderError as E, FileSystemProviderErrorCode as F, createFileSystemProviderError as G, FileChangesEvent as H, IProgressService as I, FileOperationError as J, hasOpenReadWriteCloseCapability as K, hasReadWriteCapability as L, hasFileReadStreamCapability as M, NoOpNotification as N, toFileSystemProviderErrorCode as O, etag as P, FileOperationEvent as Q, toFileOperationResult as R, SIDE_GROUP as S, ETAG_DISABLED as T, hasFileAtomicReadCapability as U, NotModifiedSinceFileOperationError as V, hasFileFolderCopyCapability as W, __classPrivateFieldSet as _, __classPrivateFieldGet as a, __decorate as b, coalesceInPlace as c, __param as d, delta as e, mapArrayOrNot as f, ITextFileService as g, IFileService as h, IWorkbenchEnvironmentService as i, IUriIdentityService as j, IWorkingCopyFileService as k, IPathService as l, markAsFileSystemProviderError as m, disposed as n, IEditorService as o, IEditorGroupsService as p, IPaneCompositePartService as q, readonly as r, IProductService as s, ILanguageStatusService as t, IHostService as u, Services as v, FileType as w, FilePermission as x, NotificationsFilter as y, refineServiceDecorator as z };