@codingame/monaco-vscode-api 1.83.0-next.0 → 1.83.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.
- package/monaco-editor-treemending.patch +919 -919
- package/package.json +1 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
- package/vscode/src/vs/platform/workspaces/common/workspaces.js +15 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +49 -51
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +58 -69
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +23 -23
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +16 -16
- package/vscode/src/vs/workbench/api/common/extHostCommands.js +59 -65
- package/vscode/src/vs/workbench/api/common/extHostConsoleForwarder.js +8 -8
- package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +151 -215
- package/vscode/src/vs/workbench/api/common/extHostSCM.js +54 -58
- package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +53 -55
- package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +28 -28
- package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +265 -277
- package/vscode/src/vs/workbench/api/common/extensionHostMain.js +17 -19
- package/vscode/src/vs/workbench/api/worker/extHostExtensionService.js +5 -5
- package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +26 -32
- package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +20 -26
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +58 -74
- package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +19 -19
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +32 -36
- package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +19 -19
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +73 -126
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +66 -74
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +82 -92
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +27 -29
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +122 -124
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +35 -39
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +25 -25
- package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +30 -32
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +82 -92
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +31 -31
- package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +16 -16
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +32 -42
|
@@ -23,11 +23,7 @@ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
|
|
|
23
23
|
const MISMATCH_LOCAL_PORT_COOLDOWN = 10 * 1000;
|
|
24
24
|
const TUNNELS_TO_RESTORE = 'remote.tunnels.toRestore';
|
|
25
25
|
const ACTIVATION_EVENT = 'onTunnel';
|
|
26
|
-
const forwardedPortsViewEnabled = (
|
|
27
|
-
'forwardedPortsViewEnabled',
|
|
28
|
-
false,
|
|
29
|
-
(nls.localize('tunnel.forwardedPortsViewEnabled', "Whether the Ports view is enabled."))
|
|
30
|
-
)));
|
|
26
|
+
const forwardedPortsViewEnabled = ( new RawContextKey('forwardedPortsViewEnabled', false, ( nls.localize('tunnel.forwardedPortsViewEnabled', "Whether the Ports view is enabled."))));
|
|
31
27
|
function parseAddress(address) {
|
|
32
28
|
const matches = address.match(/^([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*:)?([0-9]+)$/);
|
|
33
29
|
if (!matches) {
|
|
@@ -36,24 +32,24 @@ function parseAddress(address) {
|
|
|
36
32
|
return { host: matches[1]?.substring(0, matches[1].length - 1) || 'localhost', port: Number(matches[2]) };
|
|
37
33
|
}
|
|
38
34
|
var TunnelCloseReason;
|
|
39
|
-
( (
|
|
35
|
+
( (function(TunnelCloseReason) {
|
|
40
36
|
TunnelCloseReason["Other"] = "Other";
|
|
41
37
|
TunnelCloseReason["User"] = "User";
|
|
42
38
|
TunnelCloseReason["AutoForwardEnd"] = "AutoForwardEnd";
|
|
43
|
-
})(TunnelCloseReason || (TunnelCloseReason = {})))
|
|
39
|
+
})(TunnelCloseReason || (TunnelCloseReason = {})));
|
|
44
40
|
var TunnelSource;
|
|
45
|
-
( (
|
|
41
|
+
( (function(TunnelSource) {
|
|
46
42
|
TunnelSource[TunnelSource["User"] = 0] = "User";
|
|
47
43
|
TunnelSource[TunnelSource["Auto"] = 1] = "Auto";
|
|
48
44
|
TunnelSource[TunnelSource["Extension"] = 2] = "Extension";
|
|
49
|
-
})(TunnelSource || (TunnelSource = {})))
|
|
45
|
+
})(TunnelSource || (TunnelSource = {})));
|
|
50
46
|
const UserTunnelSource = {
|
|
51
47
|
source: TunnelSource.User,
|
|
52
|
-
description: (
|
|
48
|
+
description: ( nls.localize('tunnel.source.user', "User Forwarded"))
|
|
53
49
|
};
|
|
54
50
|
const AutoTunnelSource = {
|
|
55
51
|
source: TunnelSource.Auto,
|
|
56
|
-
description: (
|
|
52
|
+
description: ( nls.localize('tunnel.source.auto', "Auto Forwarded"))
|
|
57
53
|
};
|
|
58
54
|
function mapHasAddress(map, host, port) {
|
|
59
55
|
const initialAddress = map.get(makeAddress(host, port));
|
|
@@ -63,7 +59,7 @@ function mapHasAddress(map, host, port) {
|
|
|
63
59
|
if (isLocalhost(host)) {
|
|
64
60
|
for (const testHost of LOCALHOST_ADDRESSES) {
|
|
65
61
|
const testAddress = makeAddress(testHost, port);
|
|
66
|
-
if ((
|
|
62
|
+
if (( map.has(testAddress))) {
|
|
67
63
|
return map.get(testAddress);
|
|
68
64
|
}
|
|
69
65
|
}
|
|
@@ -71,7 +67,7 @@ function mapHasAddress(map, host, port) {
|
|
|
71
67
|
else if (isAllInterfaces(host)) {
|
|
72
68
|
for (const testHost of ALL_INTERFACES_ADDRESSES) {
|
|
73
69
|
const testAddress = makeAddress(testHost, port);
|
|
74
|
-
if ((
|
|
70
|
+
if (( map.has(testAddress))) {
|
|
75
71
|
return map.get(testAddress);
|
|
76
72
|
}
|
|
77
73
|
}
|
|
@@ -93,14 +89,14 @@ function makeAddress(host, port) {
|
|
|
93
89
|
return host + ':' + port;
|
|
94
90
|
}
|
|
95
91
|
var OnPortForward;
|
|
96
|
-
( (
|
|
92
|
+
( (function(OnPortForward) {
|
|
97
93
|
OnPortForward["Notify"] = "notify";
|
|
98
94
|
OnPortForward["OpenBrowser"] = "openBrowser";
|
|
99
95
|
OnPortForward["OpenBrowserOnce"] = "openBrowserOnce";
|
|
100
96
|
OnPortForward["OpenPreview"] = "openPreview";
|
|
101
97
|
OnPortForward["Silent"] = "silent";
|
|
102
98
|
OnPortForward["Ignore"] = "ignore";
|
|
103
|
-
})(OnPortForward || (OnPortForward = {})))
|
|
99
|
+
})(OnPortForward || (OnPortForward = {})));
|
|
104
100
|
function isCandidatePort(candidate) {
|
|
105
101
|
return candidate && 'host' in candidate && typeof candidate.host === 'string'
|
|
106
102
|
&& 'port' in candidate && typeof candidate.port === 'number'
|
|
@@ -116,7 +112,7 @@ class PortsAttributes extends Disposable {
|
|
|
116
112
|
super();
|
|
117
113
|
this.configurationService = configurationService;
|
|
118
114
|
this.portsAttributes = [];
|
|
119
|
-
this._onDidChangeAttributes = (
|
|
115
|
+
this._onDidChangeAttributes = ( new Emitter());
|
|
120
116
|
this.onDidChangeAttributes = this._onDidChangeAttributes.event;
|
|
121
117
|
this._register(configurationService.onDidChangeConfiguration(e => {
|
|
122
118
|
if (e.affectsConfiguration(PortsAttributes.SETTING) || e.affectsConfiguration(PortsAttributes.DEFAULTS)) {
|
|
@@ -317,38 +313,38 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
317
313
|
this.dialogService = dialogService;
|
|
318
314
|
this.extensionService = extensionService;
|
|
319
315
|
this.contextKeyService = contextKeyService;
|
|
320
|
-
this.inProgress = (
|
|
321
|
-
this._onForwardPort = (
|
|
316
|
+
this.inProgress = ( new Map());
|
|
317
|
+
this._onForwardPort = ( new Emitter());
|
|
322
318
|
this.onForwardPort = this._onForwardPort.event;
|
|
323
|
-
this._onClosePort = (
|
|
319
|
+
this._onClosePort = ( new Emitter());
|
|
324
320
|
this.onClosePort = this._onClosePort.event;
|
|
325
|
-
this._onPortName = (
|
|
321
|
+
this._onPortName = ( new Emitter());
|
|
326
322
|
this.onPortName = this._onPortName.event;
|
|
327
|
-
this._onCandidatesChanged = (
|
|
323
|
+
this._onCandidatesChanged = ( new Emitter());
|
|
328
324
|
this.onCandidatesChanged = this._onCandidatesChanged.event;
|
|
329
|
-
this._onEnvironmentTunnelsSet = (
|
|
325
|
+
this._onEnvironmentTunnelsSet = ( new Emitter());
|
|
330
326
|
this.onEnvironmentTunnelsSet = this._onEnvironmentTunnelsSet.event;
|
|
331
327
|
this._environmentTunnelsSet = false;
|
|
332
328
|
this.restoreListener = undefined;
|
|
333
329
|
this.restoreComplete = false;
|
|
334
|
-
this.onRestoreComplete = (
|
|
335
|
-
this.unrestoredExtensionTunnels = (
|
|
336
|
-
this.sessionCachedProperties = (
|
|
330
|
+
this.onRestoreComplete = ( new Emitter());
|
|
331
|
+
this.unrestoredExtensionTunnels = ( new Map());
|
|
332
|
+
this.sessionCachedProperties = ( new Map());
|
|
337
333
|
this.portAttributesProviders = [];
|
|
338
|
-
this.mismatchCooldown = (
|
|
339
|
-
this.configPortsAttributes = (
|
|
334
|
+
this.mismatchCooldown = ( new Date());
|
|
335
|
+
this.configPortsAttributes = ( new PortsAttributes(configurationService));
|
|
340
336
|
this.tunnelRestoreValue = this.getTunnelRestoreValue();
|
|
341
337
|
this._register(this.configPortsAttributes.onDidChangeAttributes(this.updateAttributes, this));
|
|
342
|
-
this.forwarded = (
|
|
343
|
-
this.remoteTunnels = (
|
|
338
|
+
this.forwarded = ( new Map());
|
|
339
|
+
this.remoteTunnels = ( new Map());
|
|
344
340
|
this.tunnelService.tunnels.then(async (tunnels) => {
|
|
345
|
-
const attributes = await this.getAttributes((
|
|
341
|
+
const attributes = await this.getAttributes(( tunnels.map(tunnel => {
|
|
346
342
|
return { port: tunnel.tunnelRemotePort, host: tunnel.tunnelRemoteHost };
|
|
347
|
-
})))
|
|
343
|
+
})));
|
|
348
344
|
for (const tunnel of tunnels) {
|
|
349
345
|
if (tunnel.localAddress) {
|
|
350
346
|
const key = makeAddress(tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort);
|
|
351
|
-
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? (
|
|
347
|
+
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? ( new Map()), tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort);
|
|
352
348
|
this.forwarded.set(key, {
|
|
353
349
|
remotePort: tunnel.tunnelRemotePort,
|
|
354
350
|
remoteHost: tunnel.tunnelRemoteHost,
|
|
@@ -366,14 +362,14 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
366
362
|
}
|
|
367
363
|
}
|
|
368
364
|
});
|
|
369
|
-
this.detected = (
|
|
365
|
+
this.detected = ( new Map());
|
|
370
366
|
this._register(this.tunnelService.onTunnelOpened(async (tunnel) => {
|
|
371
367
|
const key = makeAddress(tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort);
|
|
372
368
|
if (!mapHasAddressLocalhostOrAllInterfaces(this.forwarded, tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort)
|
|
373
369
|
&& !mapHasAddressLocalhostOrAllInterfaces(this.detected, tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort)
|
|
374
370
|
&& !mapHasAddressLocalhostOrAllInterfaces(this.inProgress, tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort)
|
|
375
371
|
&& tunnel.localAddress) {
|
|
376
|
-
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? (
|
|
372
|
+
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? ( new Map()), tunnel.tunnelRemoteHost, tunnel.tunnelRemotePort);
|
|
377
373
|
const attributes = (await this.getAttributes([{ port: tunnel.tunnelRemotePort, host: tunnel.tunnelRemoteHost }]))?.get(tunnel.tunnelRemotePort);
|
|
378
374
|
this.forwarded.set(key, {
|
|
379
375
|
remoteHost: tunnel.tunnelRemoteHost,
|
|
@@ -418,7 +414,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
418
414
|
}
|
|
419
415
|
async onTunnelClosed(address, reason) {
|
|
420
416
|
const key = makeAddress(address.host, address.port);
|
|
421
|
-
if ((
|
|
417
|
+
if (( this.forwarded.has(key))) {
|
|
422
418
|
this.forwarded.delete(key);
|
|
423
419
|
await this.storeForwarded();
|
|
424
420
|
this._onClosePort.fire(address);
|
|
@@ -426,14 +422,10 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
426
422
|
}
|
|
427
423
|
makeLocalUri(localAddress, attributes) {
|
|
428
424
|
if (localAddress.startsWith('http')) {
|
|
429
|
-
return (
|
|
430
|
-
(URI.parse(localAddress))
|
|
431
|
-
);
|
|
425
|
+
return ( URI.parse(localAddress));
|
|
432
426
|
}
|
|
433
427
|
const protocol = attributes?.protocol ?? 'http';
|
|
434
|
-
return (
|
|
435
|
-
(URI.parse(`${protocol}://${localAddress}`))
|
|
436
|
-
);
|
|
428
|
+
return ( URI.parse(`${protocol}://${localAddress}`));
|
|
437
429
|
}
|
|
438
430
|
async getStorageKey() {
|
|
439
431
|
const workspace = this.workspaceContextService.getWorkspace();
|
|
@@ -462,7 +454,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
462
454
|
const tunnelRestoreValue = await this.tunnelRestoreValue;
|
|
463
455
|
if (tunnelRestoreValue && (tunnelRestoreValue !== this.knownPortsRestoreValue)) {
|
|
464
456
|
const tunnels = JSON.parse(tunnelRestoreValue) ?? [];
|
|
465
|
-
this.logService.trace(`ForwardedPorts: (TunnelModel) restoring ports ${(
|
|
457
|
+
this.logService.trace(`ForwardedPorts: (TunnelModel) restoring ports ${( tunnels.map(tunnel => tunnel.remotePort)).join(', ')}`);
|
|
466
458
|
for (const tunnel of tunnels) {
|
|
467
459
|
const alreadyForwarded = mapHasAddressLocalhostOrAllInterfaces(this.detected, tunnel.remoteHost, tunnel.remotePort);
|
|
468
460
|
if ((tunnel.source.source !== TunnelSource.Extension && !alreadyForwarded) || (tunnel.source.source === TunnelSource.Extension && alreadyForwarded)) {
|
|
@@ -485,7 +477,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
485
477
|
this.onRestoreComplete.fire();
|
|
486
478
|
if (!this.restoreListener) {
|
|
487
479
|
const key = await this.getStorageKey();
|
|
488
|
-
this.restoreListener = this._register((
|
|
480
|
+
this.restoreListener = this._register(( new DisposableStore()));
|
|
489
481
|
this.restoreListener.add(this.storageService.onDidChangeValue(0 , undefined, this.restoreListener)(async (e) => {
|
|
490
482
|
if (e.key === key) {
|
|
491
483
|
this.tunnelRestoreValue = Promise.resolve(this.storageService.get(key, 0 ));
|
|
@@ -496,7 +488,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
496
488
|
}
|
|
497
489
|
async storeForwarded() {
|
|
498
490
|
if (this.configurationService.getValue('remote.restoreForwardedPorts')) {
|
|
499
|
-
const valueToStore = JSON.stringify(Array.from((
|
|
491
|
+
const valueToStore = JSON.stringify(Array.from(( this.forwarded.values())));
|
|
500
492
|
if (valueToStore !== this.knownPortsRestoreValue) {
|
|
501
493
|
this.knownPortsRestoreValue = valueToStore;
|
|
502
494
|
const key = await this.getStorageKey();
|
|
@@ -513,18 +505,18 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
513
505
|
if (tunnel.tunnelLocalPort === expectedLocal) {
|
|
514
506
|
return;
|
|
515
507
|
}
|
|
516
|
-
const newCooldown = (
|
|
508
|
+
const newCooldown = ( new Date());
|
|
517
509
|
if ((this.mismatchCooldown.getTime() + MISMATCH_LOCAL_PORT_COOLDOWN) > newCooldown.getTime()) {
|
|
518
510
|
return;
|
|
519
511
|
}
|
|
520
512
|
this.mismatchCooldown = newCooldown;
|
|
521
|
-
const mismatchString = (
|
|
513
|
+
const mismatchString = ( nls.localize(
|
|
522
514
|
'remote.localPortMismatch.single',
|
|
523
515
|
"Local port {0} could not be used for forwarding to remote port {1}.\n\nThis usually happens when there is already another process using local port {0}.\n\nPort number {2} has been used instead.",
|
|
524
516
|
expectedLocal,
|
|
525
517
|
tunnel.tunnelRemotePort,
|
|
526
518
|
tunnel.tunnelLocalPort
|
|
527
|
-
))
|
|
519
|
+
));
|
|
528
520
|
return this.dialogService.info(mismatchString);
|
|
529
521
|
}
|
|
530
522
|
async forward(tunnelProperties, attributes) {
|
|
@@ -555,7 +547,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
555
547
|
noTunnelValue = tunnel;
|
|
556
548
|
}
|
|
557
549
|
else if (tunnel && tunnel.localAddress) {
|
|
558
|
-
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? (
|
|
550
|
+
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? ( new Map()), tunnelProperties.remote.host, tunnelProperties.remote.port);
|
|
559
551
|
const protocol = (tunnel.protocol ?
|
|
560
552
|
((tunnel.protocol === TunnelProtocol.Https) ? TunnelProtocol.Https : TunnelProtocol.Http)
|
|
561
553
|
: (attributes?.protocol ?? TunnelProtocol.Http));
|
|
@@ -590,7 +582,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
590
582
|
return noTunnelValue;
|
|
591
583
|
}
|
|
592
584
|
mergeCachedAndUnrestoredProperties(key, tunnelProperties) {
|
|
593
|
-
const map = (
|
|
585
|
+
const map = ( this.unrestoredExtensionTunnels.has(key)) ? this.unrestoredExtensionTunnels : (( this.sessionCachedProperties.has(key)) ? this.sessionCachedProperties : undefined);
|
|
594
586
|
if (map) {
|
|
595
587
|
const updateProps = map.get(key);
|
|
596
588
|
map.delete(key);
|
|
@@ -605,11 +597,11 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
605
597
|
async mergeAttributesIntoExistingTunnel(existingTunnel, tunnelProperties, attributes) {
|
|
606
598
|
const newName = attributes?.label ?? tunnelProperties.name;
|
|
607
599
|
let MergedAttributeAction;
|
|
608
|
-
( (
|
|
600
|
+
( (function(MergedAttributeAction) {
|
|
609
601
|
MergedAttributeAction[MergedAttributeAction["None"] = 0] = "None";
|
|
610
602
|
MergedAttributeAction[MergedAttributeAction["Fire"] = 1] = "Fire";
|
|
611
603
|
MergedAttributeAction[MergedAttributeAction["Reopen"] = 2] = "Reopen";
|
|
612
|
-
})(MergedAttributeAction || (MergedAttributeAction = {})))
|
|
604
|
+
})(MergedAttributeAction || (MergedAttributeAction = {})));
|
|
613
605
|
let mergedAction = MergedAttributeAction.None;
|
|
614
606
|
if (newName !== existingTunnel.name) {
|
|
615
607
|
existingTunnel.name = newName;
|
|
@@ -643,7 +635,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
643
635
|
this._onPortName.fire({ host, port });
|
|
644
636
|
return;
|
|
645
637
|
}
|
|
646
|
-
else if ((
|
|
638
|
+
else if (( this.detected.has(key))) {
|
|
647
639
|
this.detected.get(key).name = name;
|
|
648
640
|
this._onPortName.fire({ host, port });
|
|
649
641
|
}
|
|
@@ -671,7 +663,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
671
663
|
addEnvironmentTunnels(tunnels) {
|
|
672
664
|
if (tunnels) {
|
|
673
665
|
for (const tunnel of tunnels) {
|
|
674
|
-
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? (
|
|
666
|
+
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? ( new Map()), tunnel.remoteAddress.host, tunnel.remoteAddress.port);
|
|
675
667
|
const localAddress = typeof tunnel.localAddress === 'string' ? tunnel.localAddress : makeAddress(tunnel.localAddress.host, tunnel.localAddress.port);
|
|
676
668
|
this.detected.set(makeAddress(tunnel.remoteAddress.host, tunnel.remoteAddress.port), {
|
|
677
669
|
remoteHost: tunnel.remoteAddress.host,
|
|
@@ -686,7 +678,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
686
678
|
privacy: TunnelPrivacyId.ConstantPrivate,
|
|
687
679
|
source: {
|
|
688
680
|
source: TunnelSource.Extension,
|
|
689
|
-
description: (
|
|
681
|
+
description: ( nls.localize('tunnel.staticallyForwarded', "Statically Forwarded"))
|
|
690
682
|
}
|
|
691
683
|
});
|
|
692
684
|
this.tunnelService.setEnvironmentTunnel(tunnel.remoteAddress.host, tunnel.remoteAddress.port, localAddress, TunnelPrivacyId.ConstantPrivate, TunnelProtocol.Http);
|
|
@@ -705,12 +697,12 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
705
697
|
processedCandidates = await this._candidateFilter(candidates);
|
|
706
698
|
}
|
|
707
699
|
const removedCandidates = this.updateInResponseToCandidates(processedCandidates);
|
|
708
|
-
this.logService.trace(`ForwardedPorts: (TunnelModel) removed candidates ${(
|
|
700
|
+
this.logService.trace(`ForwardedPorts: (TunnelModel) removed candidates ${( Array.from(( removedCandidates.values())).map(candidate => candidate.port)).join(', ')}`);
|
|
709
701
|
this._onCandidatesChanged.fire(removedCandidates);
|
|
710
702
|
}
|
|
711
703
|
updateInResponseToCandidates(candidates) {
|
|
712
|
-
const removedCandidates = this._candidates ?? (
|
|
713
|
-
const candidatesMap = (
|
|
704
|
+
const removedCandidates = this._candidates ?? ( new Map());
|
|
705
|
+
const candidatesMap = ( new Map());
|
|
714
706
|
this._candidates = candidatesMap;
|
|
715
707
|
candidates.forEach(value => {
|
|
716
708
|
const addressKey = makeAddress(value.host, value.port);
|
|
@@ -720,7 +712,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
720
712
|
detail: value.detail,
|
|
721
713
|
pid: value.pid
|
|
722
714
|
});
|
|
723
|
-
if ((
|
|
715
|
+
if (( removedCandidates.has(addressKey))) {
|
|
724
716
|
removedCandidates.delete(addressKey);
|
|
725
717
|
}
|
|
726
718
|
const forwardedValue = mapHasAddressLocalhostOrAllInterfaces(this.forwarded, value.host, value.port);
|
|
@@ -751,16 +743,16 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
751
743
|
return removedCandidates;
|
|
752
744
|
}
|
|
753
745
|
get candidates() {
|
|
754
|
-
return this._candidates ? Array.from((
|
|
746
|
+
return this._candidates ? Array.from(( this._candidates.values())) : [];
|
|
755
747
|
}
|
|
756
748
|
get candidatesOrUndefined() {
|
|
757
749
|
return this._candidates ? this.candidates : undefined;
|
|
758
750
|
}
|
|
759
751
|
async updateAttributes() {
|
|
760
|
-
const tunnels = Array.from((
|
|
761
|
-
const allAttributes = await this.getAttributes((
|
|
752
|
+
const tunnels = Array.from(( this.forwarded.values()));
|
|
753
|
+
const allAttributes = await this.getAttributes(( tunnels.map(tunnel => {
|
|
762
754
|
return { port: tunnel.remotePort, host: tunnel.remoteHost };
|
|
763
|
-
}))
|
|
755
|
+
})), false);
|
|
764
756
|
if (!allAttributes) {
|
|
765
757
|
return;
|
|
766
758
|
}
|
|
@@ -783,20 +775,20 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
783
775
|
}
|
|
784
776
|
}
|
|
785
777
|
async getAttributes(forwardedPorts, checkProviders = true) {
|
|
786
|
-
const matchingCandidates = (
|
|
787
|
-
const pidToPortsMapping = (
|
|
778
|
+
const matchingCandidates = ( new Map());
|
|
779
|
+
const pidToPortsMapping = ( new Map());
|
|
788
780
|
forwardedPorts.forEach(forwardedPort => {
|
|
789
|
-
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? (
|
|
781
|
+
const matchingCandidate = mapHasAddressLocalhostOrAllInterfaces(this._candidates ?? ( new Map()), LOCALHOST_ADDRESSES[0], forwardedPort.port) ?? forwardedPort;
|
|
790
782
|
if (matchingCandidate) {
|
|
791
783
|
matchingCandidates.set(forwardedPort.port, matchingCandidate);
|
|
792
784
|
const pid = isCandidatePort(matchingCandidate) ? matchingCandidate.pid : undefined;
|
|
793
|
-
if (!(
|
|
785
|
+
if (!( pidToPortsMapping.has(pid))) {
|
|
794
786
|
pidToPortsMapping.set(pid, []);
|
|
795
787
|
}
|
|
796
788
|
pidToPortsMapping.get(pid)?.push(forwardedPort.port);
|
|
797
789
|
}
|
|
798
790
|
});
|
|
799
|
-
const configAttributes = (
|
|
791
|
+
const configAttributes = ( new Map());
|
|
800
792
|
forwardedPorts.forEach(forwardedPort => {
|
|
801
793
|
const attributes = this.configPortsAttributes.getAttributes(forwardedPort.port, forwardedPort.host, matchingCandidates.get(forwardedPort.port)?.detail);
|
|
802
794
|
if (attributes) {
|
|
@@ -806,16 +798,14 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
806
798
|
if ((this.portAttributesProviders.length === 0) || !checkProviders) {
|
|
807
799
|
return (configAttributes.size > 0) ? configAttributes : undefined;
|
|
808
800
|
}
|
|
809
|
-
const allProviderResults = await Promise.all(flatten((
|
|
810
|
-
return (
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
})))));
|
|
818
|
-
const providedAttributes = ( (new Map()));
|
|
801
|
+
const allProviderResults = await Promise.all(flatten(( this.portAttributesProviders.map(provider => {
|
|
802
|
+
return ( Array.from(pidToPortsMapping.entries()).map(entry => {
|
|
803
|
+
const portGroup = entry[1];
|
|
804
|
+
const matchingCandidate = matchingCandidates.get(portGroup[0]);
|
|
805
|
+
return provider.providePortAttributes(portGroup, matchingCandidate?.pid, matchingCandidate?.detail, ( new CancellationTokenSource()).token);
|
|
806
|
+
}));
|
|
807
|
+
}))));
|
|
808
|
+
const providedAttributes = ( new Map());
|
|
819
809
|
allProviderResults.forEach(attributes => attributes.forEach(attribute => {
|
|
820
810
|
if (attribute) {
|
|
821
811
|
providedAttributes.set(attribute.port, attribute);
|
|
@@ -824,7 +814,7 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
824
814
|
if (!configAttributes && !providedAttributes) {
|
|
825
815
|
return undefined;
|
|
826
816
|
}
|
|
827
|
-
const mergedAttributes = (
|
|
817
|
+
const mergedAttributes = ( new Map());
|
|
828
818
|
forwardedPorts.forEach(forwardedPorts => {
|
|
829
819
|
const config = configAttributes.get(forwardedPorts.port);
|
|
830
820
|
const provider = providedAttributes.get(forwardedPorts.port);
|
|
@@ -842,19 +832,19 @@ let TunnelModel = class TunnelModel extends Disposable {
|
|
|
842
832
|
this.portAttributesProviders.push(provider);
|
|
843
833
|
}
|
|
844
834
|
};
|
|
845
|
-
TunnelModel.__decorator = (
|
|
835
|
+
TunnelModel.__decorator = ( __decorate([
|
|
846
836
|
debounce(1000)
|
|
847
|
-
], TunnelModel.prototype, "storeForwarded", null))
|
|
848
|
-
TunnelModel = (
|
|
849
|
-
(
|
|
850
|
-
(
|
|
851
|
-
(
|
|
852
|
-
(
|
|
853
|
-
(
|
|
854
|
-
(
|
|
855
|
-
(
|
|
856
|
-
(
|
|
857
|
-
(
|
|
858
|
-
(
|
|
859
|
-
], TunnelModel))
|
|
837
|
+
], TunnelModel.prototype, "storeForwarded", null));
|
|
838
|
+
TunnelModel = ( __decorate([
|
|
839
|
+
( __param(0, ITunnelService)),
|
|
840
|
+
( __param(1, IStorageService)),
|
|
841
|
+
( __param(2, IConfigurationService)),
|
|
842
|
+
( __param(3, IWorkbenchEnvironmentService)),
|
|
843
|
+
( __param(4, IRemoteAuthorityResolverService)),
|
|
844
|
+
( __param(5, IWorkspaceContextService)),
|
|
845
|
+
( __param(6, ILogService)),
|
|
846
|
+
( __param(7, IDialogService)),
|
|
847
|
+
( __param(8, IExtensionService)),
|
|
848
|
+
( __param(9, IContextKeyService))
|
|
849
|
+
], TunnelModel));
|
|
860
850
|
export { ACTIVATION_EVENT, AutoTunnelSource, OnPortForward, PortsAttributes, TunnelCloseReason, TunnelModel, TunnelSource, UserTunnelSource, forwardedPortsViewEnabled, isCandidatePort, makeAddress, mapHasAddress, mapHasAddressLocalhostOrAllInterfaces, parseAddress };
|
|
@@ -29,7 +29,7 @@ import { IExtensionService } from '../../extensions/common/extensions.js';
|
|
|
29
29
|
var TextFileEditorModel_1;
|
|
30
30
|
let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel {
|
|
31
31
|
static { TextFileEditorModel_1 = this; }
|
|
32
|
-
static { this.TEXTFILE_SAVE_ENCODING_SOURCE = SaveSourceRegistry.registerSource('textFileEncoding.source', (
|
|
32
|
+
static { this.TEXTFILE_SAVE_ENCODING_SOURCE = SaveSourceRegistry.registerSource('textFileEncoding.source', ( localize('textFileCreate.source', "File Encoding Changed"))); }
|
|
33
33
|
static { this.UNDO_REDO_SAVE_PARTICIPANTS_AUTO_SAVE_THROTTLE_THRESHOLD = 500; }
|
|
34
34
|
constructor(resource, preferredEncoding,
|
|
35
35
|
preferredLanguageId, languageService, modelService, fileService, textFileService, workingCopyBackupService, logService, workingCopyService, filesConfigurationService, labelService, languageDetectionService, accessibilityService, pathService, extensionService) {
|
|
@@ -46,23 +46,23 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
46
46
|
this.labelService = labelService;
|
|
47
47
|
this.pathService = pathService;
|
|
48
48
|
this.extensionService = extensionService;
|
|
49
|
-
this._onDidChangeContent = this._register((
|
|
49
|
+
this._onDidChangeContent = this._register(( new Emitter()));
|
|
50
50
|
this.onDidChangeContent = this._onDidChangeContent.event;
|
|
51
|
-
this._onDidResolve = this._register((
|
|
51
|
+
this._onDidResolve = this._register(( new Emitter()));
|
|
52
52
|
this.onDidResolve = this._onDidResolve.event;
|
|
53
|
-
this._onDidChangeDirty = this._register((
|
|
53
|
+
this._onDidChangeDirty = this._register(( new Emitter()));
|
|
54
54
|
this.onDidChangeDirty = this._onDidChangeDirty.event;
|
|
55
|
-
this._onDidSaveError = this._register((
|
|
55
|
+
this._onDidSaveError = this._register(( new Emitter()));
|
|
56
56
|
this.onDidSaveError = this._onDidSaveError.event;
|
|
57
|
-
this._onDidSave = this._register((
|
|
57
|
+
this._onDidSave = this._register(( new Emitter()));
|
|
58
58
|
this.onDidSave = this._onDidSave.event;
|
|
59
|
-
this._onDidRevert = this._register((
|
|
59
|
+
this._onDidRevert = this._register(( new Emitter()));
|
|
60
60
|
this.onDidRevert = this._onDidRevert.event;
|
|
61
|
-
this._onDidChangeEncoding = this._register((
|
|
61
|
+
this._onDidChangeEncoding = this._register(( new Emitter()));
|
|
62
62
|
this.onDidChangeEncoding = this._onDidChangeEncoding.event;
|
|
63
|
-
this._onDidChangeOrphaned = this._register((
|
|
63
|
+
this._onDidChangeOrphaned = this._register(( new Emitter()));
|
|
64
64
|
this.onDidChangeOrphaned = this._onDidChangeOrphaned.event;
|
|
65
|
-
this._onDidChangeReadonly = this._register((
|
|
65
|
+
this._onDidChangeReadonly = this._register(( new Emitter()));
|
|
66
66
|
this.onDidChangeReadonly = this._onDidChangeReadonly.event;
|
|
67
67
|
this.typeId = NO_TYPE_ID;
|
|
68
68
|
this.capabilities = 0 ;
|
|
@@ -72,7 +72,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
72
72
|
this.ignoreDirtyOnModelContentChange = false;
|
|
73
73
|
this.ignoreSaveFromSaveParticipants = false;
|
|
74
74
|
this.lastModelContentChangeFromUndoRedo = undefined;
|
|
75
|
-
this.saveSequentializer = (
|
|
75
|
+
this.saveSequentializer = ( new TaskSequentializer());
|
|
76
76
|
this.dirty = false;
|
|
77
77
|
this.inConflictMode = false;
|
|
78
78
|
this.inOrphanMode = false;
|
|
@@ -494,7 +494,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
494
494
|
if (this.isResolved()) {
|
|
495
495
|
this.textEditorModel.pushStackElement();
|
|
496
496
|
}
|
|
497
|
-
const saveCancellation = (
|
|
497
|
+
const saveCancellation = ( new CancellationTokenSource());
|
|
498
498
|
return this.saveSequentializer.run(versionId, (async () => {
|
|
499
499
|
if (this.isResolved() && !options.skipSaveParticipants) {
|
|
500
500
|
try {
|
|
@@ -515,7 +515,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
517
|
catch (error) {
|
|
518
|
-
this.logService.error(`[text file model] runSaveParticipants(${versionId}) - resulted in an error: ${(
|
|
518
|
+
this.logService.error(`[text file model] runSaveParticipants(${versionId}) - resulted in an error: ${( error.toString())}`, ( this.resource.toString()));
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
521
|
if (saveCancellation.token.isCancellationRequested) {
|
|
@@ -565,7 +565,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
565
565
|
this._onDidSave.fire({ reason: options.reason, stat, source: options.source });
|
|
566
566
|
}
|
|
567
567
|
handleSaveError(error, versionId, options) {
|
|
568
|
-
(options.ignoreErrorHandler ? this.logService.trace : this.logService.error).apply(this.logService, [`[text file model] handleSaveError(${versionId}) - exit - resulted in a save error: ${(
|
|
568
|
+
(options.ignoreErrorHandler ? this.logService.trace : this.logService.error).apply(this.logService, [`[text file model] handleSaveError(${versionId}) - exit - resulted in a save error: ${( error.toString())}`, ( this.resource.toString())]);
|
|
569
569
|
if (options.ignoreErrorHandler) {
|
|
570
570
|
throw error;
|
|
571
571
|
}
|
|
@@ -637,7 +637,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
637
637
|
this.trace('onMaybeShouldChangeEncoding() - ignoring because model is dirty');
|
|
638
638
|
return;
|
|
639
639
|
}
|
|
640
|
-
this.logService.info(`Adjusting encoding based on configured language override to '${encoding}' for ${(
|
|
640
|
+
this.logService.info(`Adjusting encoding based on configured language override to '${encoding}' for ${( this.resource.toString(true))}.`);
|
|
641
641
|
return this.setEncodingInternal(encoding, 1 );
|
|
642
642
|
}
|
|
643
643
|
setEncoding(encoding, mode) {
|
|
@@ -686,7 +686,7 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
686
686
|
return this.preferredEncoding || this.contentEncoding;
|
|
687
687
|
}
|
|
688
688
|
trace(msg) {
|
|
689
|
-
this.logService.trace(`[text file model] ${msg}`, (
|
|
689
|
+
this.logService.trace(`[text file model] ${msg}`, ( this.resource.toString()));
|
|
690
690
|
}
|
|
691
691
|
isResolved() {
|
|
692
692
|
return !!this.textEditorModel;
|
|
@@ -702,19 +702,19 @@ let TextFileEditorModel = class TextFileEditorModel extends BaseTextEditorModel
|
|
|
702
702
|
super.dispose();
|
|
703
703
|
}
|
|
704
704
|
};
|
|
705
|
-
TextFileEditorModel = TextFileEditorModel_1 = (
|
|
706
|
-
(
|
|
707
|
-
(
|
|
708
|
-
(
|
|
709
|
-
(
|
|
710
|
-
(
|
|
711
|
-
(
|
|
712
|
-
(
|
|
713
|
-
(
|
|
714
|
-
(
|
|
715
|
-
(
|
|
716
|
-
(
|
|
717
|
-
(
|
|
718
|
-
(
|
|
719
|
-
], TextFileEditorModel))
|
|
705
|
+
TextFileEditorModel = TextFileEditorModel_1 = ( __decorate([
|
|
706
|
+
( __param(3, ILanguageService)),
|
|
707
|
+
( __param(4, IModelService)),
|
|
708
|
+
( __param(5, IFileService)),
|
|
709
|
+
( __param(6, ITextFileService)),
|
|
710
|
+
( __param(7, IWorkingCopyBackupService)),
|
|
711
|
+
( __param(8, ILogService)),
|
|
712
|
+
( __param(9, IWorkingCopyService)),
|
|
713
|
+
( __param(10, IFilesConfigurationService)),
|
|
714
|
+
( __param(11, ILabelService)),
|
|
715
|
+
( __param(12, ILanguageDetectionService)),
|
|
716
|
+
( __param(13, IAccessibilityService)),
|
|
717
|
+
( __param(14, IPathService)),
|
|
718
|
+
( __param(15, IExtensionService))
|
|
719
|
+
], TextFileEditorModel));
|
|
720
720
|
export { TextFileEditorModel };
|
|
@@ -8,7 +8,7 @@ import { ResourceMap } from 'monaco-editor/esm/vs/base/common/map.js';
|
|
|
8
8
|
import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
|
|
9
9
|
import { Disposable, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
10
10
|
var UntitledTextEditorService_1;
|
|
11
|
-
const IUntitledTextEditorService = (
|
|
11
|
+
const IUntitledTextEditorService = ( createDecorator('untitledTextEditorService'));
|
|
12
12
|
let UntitledTextEditorService = class UntitledTextEditorService extends Disposable {
|
|
13
13
|
static { UntitledTextEditorService_1 = this; }
|
|
14
14
|
static { this.UNTITLED_WITHOUT_ASSOCIATED_RESOURCE_REGEX = /Untitled-\d+/; }
|
|
@@ -16,15 +16,15 @@ let UntitledTextEditorService = class UntitledTextEditorService extends Disposab
|
|
|
16
16
|
super();
|
|
17
17
|
this.instantiationService = instantiationService;
|
|
18
18
|
this.configurationService = configurationService;
|
|
19
|
-
this._onDidChangeDirty = this._register((
|
|
19
|
+
this._onDidChangeDirty = this._register(( new Emitter()));
|
|
20
20
|
this.onDidChangeDirty = this._onDidChangeDirty.event;
|
|
21
|
-
this._onDidChangeEncoding = this._register((
|
|
21
|
+
this._onDidChangeEncoding = this._register(( new Emitter()));
|
|
22
22
|
this.onDidChangeEncoding = this._onDidChangeEncoding.event;
|
|
23
|
-
this._onWillDispose = this._register((
|
|
23
|
+
this._onWillDispose = this._register(( new Emitter()));
|
|
24
24
|
this.onWillDispose = this._onWillDispose.event;
|
|
25
|
-
this._onDidChangeLabel = this._register((
|
|
25
|
+
this._onDidChangeLabel = this._register(( new Emitter()));
|
|
26
26
|
this.onDidChangeLabel = this._onDidChangeLabel.event;
|
|
27
|
-
this.mapResourceToModel = (
|
|
27
|
+
this.mapResourceToModel = ( new ResourceMap());
|
|
28
28
|
}
|
|
29
29
|
get(resource) {
|
|
30
30
|
return this.mapResourceToModel.get(resource);
|
|
@@ -42,7 +42,7 @@ let UntitledTextEditorService = class UntitledTextEditorService extends Disposab
|
|
|
42
42
|
}
|
|
43
43
|
doCreateOrGet(options = Object.create(null)) {
|
|
44
44
|
const massagedOptions = this.massageOptions(options);
|
|
45
|
-
if (massagedOptions.untitledResource && (
|
|
45
|
+
if (massagedOptions.untitledResource && ( this.mapResourceToModel.has(massagedOptions.untitledResource))) {
|
|
46
46
|
return this.mapResourceToModel.get(massagedOptions.untitledResource);
|
|
47
47
|
}
|
|
48
48
|
return this.doCreate(massagedOptions);
|
|
@@ -50,13 +50,13 @@ let UntitledTextEditorService = class UntitledTextEditorService extends Disposab
|
|
|
50
50
|
massageOptions(options) {
|
|
51
51
|
const massagedOptions = Object.create(null);
|
|
52
52
|
if (options.associatedResource) {
|
|
53
|
-
massagedOptions.untitledResource = (
|
|
53
|
+
massagedOptions.untitledResource = ( URI.from({
|
|
54
54
|
scheme: Schemas.untitled,
|
|
55
55
|
authority: options.associatedResource.authority,
|
|
56
56
|
fragment: options.associatedResource.fragment,
|
|
57
57
|
path: options.associatedResource.path,
|
|
58
58
|
query: options.associatedResource.query
|
|
59
|
-
}))
|
|
59
|
+
}));
|
|
60
60
|
massagedOptions.associatedResource = options.associatedResource;
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
@@ -82,16 +82,16 @@ let UntitledTextEditorService = class UntitledTextEditorService extends Disposab
|
|
|
82
82
|
if (!untitledResource) {
|
|
83
83
|
let counter = 1;
|
|
84
84
|
do {
|
|
85
|
-
untitledResource = (
|
|
85
|
+
untitledResource = ( URI.from({ scheme: Schemas.untitled, path: `Untitled-${counter}` }));
|
|
86
86
|
counter++;
|
|
87
|
-
} while ((
|
|
87
|
+
} while (( this.mapResourceToModel.has(untitledResource)));
|
|
88
88
|
}
|
|
89
89
|
const model = this._register(this.instantiationService.createInstance(UntitledTextEditorModel, untitledResource, !!options.associatedResource, options.initialValue, options.languageId, options.encoding));
|
|
90
90
|
this.registerModel(model);
|
|
91
91
|
return model;
|
|
92
92
|
}
|
|
93
93
|
registerModel(model) {
|
|
94
|
-
const modelListeners = (
|
|
94
|
+
const modelListeners = ( new DisposableStore());
|
|
95
95
|
modelListeners.add(model.onDidChangeDirty(() => this._onDidChangeDirty.fire(model)));
|
|
96
96
|
modelListeners.add(model.onDidChangeName(() => this._onDidChangeLabel.fire(model)));
|
|
97
97
|
modelListeners.add(model.onDidChangeEncoding(() => this._onDidChangeEncoding.fire(model)));
|
|
@@ -109,8 +109,8 @@ let UntitledTextEditorService = class UntitledTextEditorService extends Disposab
|
|
|
109
109
|
return resource.scheme === Schemas.untitled && resource.path.length > 1 && !UntitledTextEditorService_1.UNTITLED_WITHOUT_ASSOCIATED_RESOURCE_REGEX.test(resource.path);
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
-
UntitledTextEditorService = UntitledTextEditorService_1 = (
|
|
113
|
-
(
|
|
114
|
-
(
|
|
115
|
-
], UntitledTextEditorService))
|
|
112
|
+
UntitledTextEditorService = UntitledTextEditorService_1 = ( __decorate([
|
|
113
|
+
( __param(0, IInstantiationService)),
|
|
114
|
+
( __param(1, IConfigurationService))
|
|
115
|
+
], UntitledTextEditorService));
|
|
116
116
|
export { IUntitledTextEditorService, UntitledTextEditorService };
|