@codingame/monaco-vscode-remote-agent-service-override 8.0.4 → 9.0.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/package.json +3 -3
- package/remoteAgent.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +19 -19
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +6 -6
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +33 -33
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.js +2 -2
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelFactory.js +2 -2
- package/vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js +46 -46
- package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +3 -3
- package/vscode/src/vs/workbench/services/remote/common/abstractRemoteAgentService.js +6 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-remote-agent-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
30
|
-
"@codingame/monaco-vscode-environment-service-override": "
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@9.0.2",
|
|
30
|
+
"@codingame/monaco-vscode-environment-service-override": "9.0.2"
|
|
31
31
|
}
|
|
32
32
|
}
|
package/remoteAgent.js
CHANGED
|
@@ -67,7 +67,7 @@ let CustomRemoteExtensionsScannerService = class CustomRemoteExtensionsScannerSe
|
|
|
67
67
|
if (!this.scanRemoteExtensions) {
|
|
68
68
|
return [];
|
|
69
69
|
}
|
|
70
|
-
return super.scanExtensions();
|
|
70
|
+
return await super.scanExtensions();
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
73
|
CustomRemoteExtensionsScannerService = __decorate([
|
|
@@ -28,7 +28,7 @@ let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
|
28
28
|
this.switchRemoteMenu = MenuId.for('workbench.remote.menu.switchRemoteMenu');
|
|
29
29
|
this._register(MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
30
30
|
submenu: this.switchRemoteMenu,
|
|
31
|
-
title: ( localize(
|
|
31
|
+
title: ( localize(10897, "Switch Remote")),
|
|
32
32
|
group: 'navigation',
|
|
33
33
|
when: ( (ContextKeyExpr.equals('viewContainer', VIEWLET_ID))),
|
|
34
34
|
order: 1,
|
|
@@ -119,27 +119,27 @@ class HelpModel {
|
|
|
119
119
|
const getStarted = this.viewModel.helpInformation.filter(info => info.getStarted);
|
|
120
120
|
if (getStarted.length) {
|
|
121
121
|
const helpItemValues = ( (getStarted.map((info) => this.createHelpItemValue(info, 'getStarted'))));
|
|
122
|
-
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( (new GetStartedHelpItem(getStartedIcon, ( localize(
|
|
122
|
+
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( (new GetStartedHelpItem(getStartedIcon, ( localize(8737, "Get Started")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService, this.commandService)));
|
|
123
123
|
getStartedHelpItem.values = helpItemValues;
|
|
124
124
|
helpItems.push(getStartedHelpItem);
|
|
125
125
|
}
|
|
126
126
|
const documentation = this.viewModel.helpInformation.filter(info => info.documentation);
|
|
127
127
|
if (documentation.length) {
|
|
128
128
|
const helpItemValues = ( (documentation.map((info) => this.createHelpItemValue(info, 'documentation'))));
|
|
129
|
-
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( (new HelpItem(documentationIcon, ( localize(
|
|
129
|
+
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( (new HelpItem(documentationIcon, ( localize(8738, "Read Documentation")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
130
130
|
documentationHelpItem.values = helpItemValues;
|
|
131
131
|
helpItems.push(documentationHelpItem);
|
|
132
132
|
}
|
|
133
133
|
const issues = this.viewModel.helpInformation.filter(info => info.issues);
|
|
134
134
|
if (issues.length) {
|
|
135
135
|
const helpItemValues = ( (issues.map((info) => this.createHelpItemValue(info, 'issues'))));
|
|
136
|
-
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( (new HelpItem(reviewIssuesIcon, ( localize(
|
|
136
|
+
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( (new HelpItem(reviewIssuesIcon, ( localize(8739, "Review Issues")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
137
137
|
reviewIssuesHelpItem.values = helpItemValues;
|
|
138
138
|
helpItems.push(reviewIssuesHelpItem);
|
|
139
139
|
}
|
|
140
140
|
if (helpItems.length) {
|
|
141
141
|
const helpItemValues = ( (this.viewModel.helpInformation.map(info => this.createHelpItemValue(info, 'reportIssue'))));
|
|
142
|
-
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( (new IssueReporterItem(reportIssuesIcon, ( localize(
|
|
142
|
+
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( (new IssueReporterItem(reportIssuesIcon, ( localize(8740, "Report Issue")), helpItemValues, this.quickInputService, this.environmentService, this.commandService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
143
143
|
issueReporterItem.values = helpItemValues;
|
|
144
144
|
helpItems.push(issueReporterItem);
|
|
145
145
|
}
|
|
@@ -256,7 +256,7 @@ class HelpItemBase {
|
|
|
256
256
|
if (this.values.length > 1) {
|
|
257
257
|
const actions = await this.getActions();
|
|
258
258
|
if (actions.length) {
|
|
259
|
-
const action = await this.quickInputService.pick(actions, { placeHolder: ( localize(
|
|
259
|
+
const action = await this.quickInputService.pick(actions, { placeHolder: ( localize(8741, "Select url to open")) });
|
|
260
260
|
if (action) {
|
|
261
261
|
await this.takeAction(action.extensionDescription, action.url);
|
|
262
262
|
}
|
|
@@ -317,7 +317,7 @@ class IssueReporterItem extends HelpItemBase {
|
|
|
317
317
|
}
|
|
318
318
|
let HelpPanel = class HelpPanel extends ViewPane {
|
|
319
319
|
static { this.ID = '~remote.helpPanel'; }
|
|
320
|
-
static { this.TITLE = ( localize2(
|
|
320
|
+
static { this.TITLE = ( localize2(8742, "Help and feedback")); }
|
|
321
321
|
constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, remoteExplorerService, environmentService, themeService, telemetryService, hoverService, workspaceContextService, walkthroughsService) {
|
|
322
322
|
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
323
323
|
this.viewModel = viewModel;
|
|
@@ -339,7 +339,7 @@ let HelpPanel = class HelpPanel extends ViewPane {
|
|
|
339
339
|
getAriaLabel: (item) => {
|
|
340
340
|
return item.label;
|
|
341
341
|
},
|
|
342
|
-
getWidgetAriaLabel: () => ( localize(
|
|
342
|
+
getWidgetAriaLabel: () => ( localize(8743, "Remote Help"))
|
|
343
343
|
}
|
|
344
344
|
});
|
|
345
345
|
const model = ( (new HelpModel(
|
|
@@ -469,7 +469,7 @@ let RemoteViewPaneContainer = class RemoteViewPaneContainer extends FilterViewPa
|
|
|
469
469
|
this.remoteExplorerService.targetType = isStringArray(viewDescriptor.remoteAuthority) ? viewDescriptor.remoteAuthority : [viewDescriptor.remoteAuthority];
|
|
470
470
|
}
|
|
471
471
|
getTitle() {
|
|
472
|
-
const title = ( localize(
|
|
472
|
+
const title = ( localize(8744, "Remote Explorer"));
|
|
473
473
|
return title;
|
|
474
474
|
}
|
|
475
475
|
};
|
|
@@ -488,7 +488,7 @@ RemoteViewPaneContainer = ( (__decorate([
|
|
|
488
488
|
], RemoteViewPaneContainer)));
|
|
489
489
|
( (Registry.as(Extensions.ViewContainersRegistry))).registerViewContainer({
|
|
490
490
|
id: VIEWLET_ID,
|
|
491
|
-
title: ( localize2(
|
|
491
|
+
title: ( localize2(8744, "Remote Explorer")),
|
|
492
492
|
ctorDescriptor: ( (new SyncDescriptor(RemoteViewPaneContainer))),
|
|
493
493
|
hideIfEmpty: true,
|
|
494
494
|
viewOrderDelegate: {
|
|
@@ -594,10 +594,10 @@ class ReconnectionTimer {
|
|
|
594
594
|
}
|
|
595
595
|
const remainingTime = Math.ceil(remainingTimeMs / 1000);
|
|
596
596
|
if (remainingTime === 1) {
|
|
597
|
-
this._parent.report(( localize(
|
|
597
|
+
this._parent.report(( localize(8745, "Attempting to reconnect in {0} second...", remainingTime)));
|
|
598
598
|
}
|
|
599
599
|
else {
|
|
600
|
-
this._parent.report(( localize(
|
|
600
|
+
this._parent.report(( localize(8746, "Attempting to reconnect in {0} seconds...", remainingTime)));
|
|
601
601
|
}
|
|
602
602
|
}
|
|
603
603
|
}
|
|
@@ -609,8 +609,8 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
609
609
|
const connection = remoteAgentService.getConnection();
|
|
610
610
|
if (connection) {
|
|
611
611
|
let quickInputVisible = false;
|
|
612
|
-
quickInputService.onShow(() => quickInputVisible = true);
|
|
613
|
-
quickInputService.onHide(() => quickInputVisible = false);
|
|
612
|
+
this._register(quickInputService.onShow(() => quickInputVisible = true));
|
|
613
|
+
this._register(quickInputService.onHide(() => quickInputVisible = false));
|
|
614
614
|
let visibleProgress = null;
|
|
615
615
|
let reconnectWaitEvent = null;
|
|
616
616
|
let disposableListener = null;
|
|
@@ -654,13 +654,13 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
654
654
|
let lastIncomingDataTime = 0;
|
|
655
655
|
let reconnectionAttempts = 0;
|
|
656
656
|
const reconnectButton = {
|
|
657
|
-
label: ( localize(
|
|
657
|
+
label: ( localize(8747, "Reconnect Now")),
|
|
658
658
|
callback: () => {
|
|
659
659
|
reconnectWaitEvent?.skipWait();
|
|
660
660
|
}
|
|
661
661
|
};
|
|
662
662
|
const reloadButton = {
|
|
663
|
-
label: ( localize(
|
|
663
|
+
label: ( localize(8748, "Reload Window")),
|
|
664
664
|
callback: () => {
|
|
665
665
|
telemetryService.publicLog2('remoteReconnectionReload', {
|
|
666
666
|
remoteName: getRemoteName(environmentService.remoteAuthority),
|
|
@@ -690,7 +690,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
690
690
|
if (!visibleProgress) {
|
|
691
691
|
visibleProgress = showProgress(null, [reconnectButton, reloadButton]);
|
|
692
692
|
}
|
|
693
|
-
visibleProgress.report(( localize(
|
|
693
|
+
visibleProgress.report(( localize(8749, "Connection Lost")));
|
|
694
694
|
}
|
|
695
695
|
break;
|
|
696
696
|
case PersistentConnectionEventType.ReconnectionWait:
|
|
@@ -712,7 +712,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
712
712
|
});
|
|
713
713
|
if (visibleProgress || e.millisSinceLastIncomingData > DISCONNECT_PROMPT_TIME) {
|
|
714
714
|
visibleProgress = showProgress(null, [reloadButton]);
|
|
715
|
-
visibleProgress.report(( localize(
|
|
715
|
+
visibleProgress.report(( localize(8750, "Disconnected. Attempting to reconnect...")));
|
|
716
716
|
disposableListener = quickInputService.onShow(() => {
|
|
717
717
|
if (visibleProgress && visibleProgress.location === ProgressLocation.Dialog) {
|
|
718
718
|
visibleProgress = showProgress(ProgressLocation.Notification, [reloadButton], visibleProgress.lastReport);
|
|
@@ -740,8 +740,8 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
740
740
|
this._reloadWindowShown = true;
|
|
741
741
|
dialogService.confirm({
|
|
742
742
|
type: Severity$1.Error,
|
|
743
|
-
message: ( localize(
|
|
744
|
-
primaryButton: ( localize(
|
|
743
|
+
message: ( localize(8751, "Cannot reconnect. Please reload the window.")),
|
|
744
|
+
primaryButton: ( localize(8752, "&&Reload Window"))
|
|
745
745
|
}).then(result => {
|
|
746
746
|
if (result.confirmed) {
|
|
747
747
|
commandService.executeCommand(ReloadWindowAction.ID);
|
|
@@ -43,17 +43,17 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
43
43
|
const { result, checkboxChecked } = await this.dialogService.prompt({
|
|
44
44
|
type: Severity$1.Warning,
|
|
45
45
|
message: ( localize(
|
|
46
|
-
|
|
46
|
+
8792,
|
|
47
47
|
"You are about to connect to an OS version that is unsupported by {0}.",
|
|
48
48
|
this.productService.nameLong
|
|
49
49
|
)),
|
|
50
50
|
buttons: [
|
|
51
51
|
{
|
|
52
|
-
label: ( localize(
|
|
52
|
+
label: ( localize(8793, "&&Allow")),
|
|
53
53
|
run: () => ConnectionChoice.Allow
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
label: ( localize(
|
|
56
|
+
label: ( localize(8794, "&&Learn More")),
|
|
57
57
|
run: async () => { await this.openerService.open('https://aka.ms/vscode-remote/faq/old-linux'); return ConnectionChoice.LearnMore; }
|
|
58
58
|
}
|
|
59
59
|
],
|
|
@@ -61,7 +61,7 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
61
61
|
run: () => ConnectionChoice.Cancel
|
|
62
62
|
},
|
|
63
63
|
checkbox: {
|
|
64
|
-
label: ( localize(
|
|
64
|
+
label: ( localize(8795, "Do not show again")),
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
if (result === ConnectionChoice.LearnMore) {
|
|
@@ -87,14 +87,14 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
87
87
|
if (shouldShowBanner) {
|
|
88
88
|
const actions = [
|
|
89
89
|
{
|
|
90
|
-
label: ( localize(
|
|
90
|
+
label: ( localize(8796, "Learn More")),
|
|
91
91
|
href: 'https://aka.ms/vscode-remote/faq/old-linux'
|
|
92
92
|
}
|
|
93
93
|
];
|
|
94
94
|
this.bannerService.show({
|
|
95
95
|
id: 'unsupportedGlibcWarning.banner',
|
|
96
96
|
message: ( localize(
|
|
97
|
-
|
|
97
|
+
8797,
|
|
98
98
|
"You are connected to an OS version that is unsupported by {0}.",
|
|
99
99
|
this.productService.nameLong
|
|
100
100
|
)),
|
|
@@ -4,7 +4,7 @@ import { remoteConnectionLatencyMeasurer } from '../../../services/remote/common
|
|
|
4
4
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
5
5
|
import { RunOnceScheduler, retry } from 'vscode/vscode/vs/base/common/async';
|
|
6
6
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
7
|
-
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
7
|
+
import { Disposable, DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
8
8
|
import { MenuId, registerAction2, Action2, MenuRegistry, MenuItemAction } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
9
9
|
import { IMenuService } from 'vscode/vscode/vs/platform/actions/common/actions.service';
|
|
10
10
|
import { StatusbarAlignment } from 'vscode/vscode/vs/workbench/services/statusbar/browser/statusbar';
|
|
@@ -132,14 +132,14 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
132
132
|
this.updateRemoteStatusIndicator();
|
|
133
133
|
}
|
|
134
134
|
registerActions() {
|
|
135
|
-
const category = ( localize2(
|
|
135
|
+
const category = ( localize2(8753, "Remote"));
|
|
136
136
|
const that = this;
|
|
137
137
|
this._register(registerAction2(class extends Action2 {
|
|
138
138
|
constructor() {
|
|
139
139
|
super({
|
|
140
140
|
id: RemoteStatusIndicator_1.REMOTE_ACTIONS_COMMAND_ID,
|
|
141
141
|
category,
|
|
142
|
-
title: ( localize2(
|
|
142
|
+
title: ( localize2(8754, "Show Remote Menu")),
|
|
143
143
|
f1: true,
|
|
144
144
|
keybinding: {
|
|
145
145
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -155,7 +155,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
155
155
|
super({
|
|
156
156
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
157
157
|
category,
|
|
158
|
-
title: ( localize2(
|
|
158
|
+
title: ( localize2(8755, "Close Remote Connection")),
|
|
159
159
|
f1: true,
|
|
160
160
|
precondition: ( (ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext)))
|
|
161
161
|
});
|
|
@@ -167,7 +167,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
167
167
|
group: '6_close',
|
|
168
168
|
command: {
|
|
169
169
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
170
|
-
title: ( localize(
|
|
170
|
+
title: ( localize(8756, "Close Re&&mote Connection"))
|
|
171
171
|
},
|
|
172
172
|
order: 3.5
|
|
173
173
|
});
|
|
@@ -179,7 +179,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
179
179
|
super({
|
|
180
180
|
id: RemoteStatusIndicator_1.INSTALL_REMOTE_EXTENSIONS_ID,
|
|
181
181
|
category,
|
|
182
|
-
title: ( localize2(
|
|
182
|
+
title: ( localize2(8757, "Install Remote Development Extensions")),
|
|
183
183
|
f1: true
|
|
184
184
|
});
|
|
185
185
|
this.run = (accessor, input) => {
|
|
@@ -392,18 +392,18 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
392
392
|
const hostLabel = this.labelService.getHostLabel(Schemas.vscodeRemote, this.remoteAuthority) || this.remoteAuthority;
|
|
393
393
|
switch (this.connectionState) {
|
|
394
394
|
case 'initializing':
|
|
395
|
-
this.renderRemoteStatusIndicator(( localize(
|
|
395
|
+
this.renderRemoteStatusIndicator(( localize(8758, "Opening Remote...")), ( localize(8758, "Opening Remote...")), undefined, true );
|
|
396
396
|
break;
|
|
397
397
|
case 'reconnecting':
|
|
398
398
|
this.renderRemoteStatusIndicator(`${( localize(
|
|
399
|
-
|
|
399
|
+
8759,
|
|
400
400
|
"Reconnecting to {0}...",
|
|
401
401
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
402
402
|
))}`, undefined, undefined, true );
|
|
403
403
|
break;
|
|
404
404
|
case 'disconnected':
|
|
405
405
|
this.renderRemoteStatusIndicator(`$(alert) ${( localize(
|
|
406
|
-
|
|
406
|
+
8760,
|
|
407
407
|
"Disconnected from {0}",
|
|
408
408
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
409
409
|
))}`);
|
|
@@ -415,7 +415,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
415
415
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
416
416
|
}
|
|
417
417
|
else {
|
|
418
|
-
tooltip.appendText(( localize(
|
|
418
|
+
tooltip.appendText(( localize(8761, "Editing on {0}", hostLabel)));
|
|
419
419
|
}
|
|
420
420
|
this.renderRemoteStatusIndicator(`$(remote) ${truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)}`, tooltip);
|
|
421
421
|
}
|
|
@@ -431,12 +431,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
431
431
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
432
432
|
}
|
|
433
433
|
else {
|
|
434
|
-
tooltip.appendText(( localize(
|
|
434
|
+
tooltip.appendText(( localize(8762, "Editing on {0}", workspaceLabel)));
|
|
435
435
|
}
|
|
436
436
|
if (!isWeb || this.remoteAuthority) {
|
|
437
437
|
tooltip.appendMarkdown('\n\n');
|
|
438
438
|
tooltip.appendMarkdown(( localize(
|
|
439
|
-
|
|
439
|
+
8763,
|
|
440
440
|
"Some [features are not available]({0}) for resources located on a virtual file system.",
|
|
441
441
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
442
442
|
)));
|
|
@@ -445,13 +445,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
445
445
|
return;
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
|
-
this.renderRemoteStatusIndicator(`$(remote)`, ( localize(
|
|
448
|
+
this.renderRemoteStatusIndicator(`$(remote)`, ( localize(8764, "Open a Remote Window")));
|
|
449
449
|
return;
|
|
450
450
|
}
|
|
451
451
|
renderRemoteStatusIndicator(initialText, initialTooltip, command, showProgress) {
|
|
452
452
|
const { text, tooltip, ariaLabel } = this.withNetworkStatus(initialText, initialTooltip, showProgress);
|
|
453
453
|
const properties = {
|
|
454
|
-
name: ( localize(
|
|
454
|
+
name: ( localize(8765, "Remote Host")),
|
|
455
455
|
kind: this.networkState === 'offline' ? 'offline' : 'remote',
|
|
456
456
|
ariaLabel,
|
|
457
457
|
text,
|
|
@@ -479,7 +479,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
479
479
|
switch (this.networkState) {
|
|
480
480
|
case 'offline': {
|
|
481
481
|
const offlineMessage = ( localize(
|
|
482
|
-
|
|
482
|
+
8766,
|
|
483
483
|
"Network appears to be offline, certain features might be unavailable."
|
|
484
484
|
));
|
|
485
485
|
text = textWithAlert();
|
|
@@ -490,7 +490,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
490
490
|
case 'high-latency':
|
|
491
491
|
text = textWithAlert();
|
|
492
492
|
tooltip = this.appendTooltipLine(tooltip, ( localize(
|
|
493
|
-
|
|
493
|
+
8767,
|
|
494
494
|
"Network appears to have high latency ({0}ms last, {1}ms average), certain features may be slow to respond.",
|
|
495
495
|
remoteConnectionLatencyMeasurer.latency?.current?.toFixed(2),
|
|
496
496
|
remoteConnectionLatencyMeasurer.latency?.average?.toFixed(2)
|
|
@@ -606,13 +606,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
606
606
|
const label = metadata.startConnectLabel;
|
|
607
607
|
const buttons = [{
|
|
608
608
|
iconClass: ThemeIcon.asClassName(infoIcon),
|
|
609
|
-
tooltip: ( localize(
|
|
609
|
+
tooltip: ( localize(8768, "Learn More"))
|
|
610
610
|
}];
|
|
611
611
|
notInstalledItems.push({ type: 'item', id: metadata.id, label: label, buttons: buttons });
|
|
612
612
|
}
|
|
613
613
|
}
|
|
614
614
|
items.push({
|
|
615
|
-
type: 'separator', label: ( localize(
|
|
615
|
+
type: 'separator', label: ( localize(8769, 'Install'))
|
|
616
616
|
});
|
|
617
617
|
items.push(...notInstalledItems);
|
|
618
618
|
}
|
|
@@ -625,13 +625,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
625
625
|
items.push({
|
|
626
626
|
type: 'item',
|
|
627
627
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
628
|
-
label: ( localize(
|
|
628
|
+
label: ( localize(8770, 'Close Remote Connection'))
|
|
629
629
|
});
|
|
630
630
|
if (this.connectionState === 'disconnected') {
|
|
631
631
|
items.push({
|
|
632
632
|
type: 'item',
|
|
633
633
|
id: ReloadWindowAction.ID,
|
|
634
|
-
label: ( localize(
|
|
634
|
+
label: ( localize(8771, 'Reload Window'))
|
|
635
635
|
});
|
|
636
636
|
}
|
|
637
637
|
}
|
|
@@ -639,7 +639,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
639
639
|
items.push({
|
|
640
640
|
type: 'item',
|
|
641
641
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
642
|
-
label: ( localize(
|
|
642
|
+
label: ( localize(8772, 'Close Remote Workspace'))
|
|
643
643
|
});
|
|
644
644
|
}
|
|
645
645
|
}
|
|
@@ -648,12 +648,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
648
648
|
}
|
|
649
649
|
return items;
|
|
650
650
|
};
|
|
651
|
-
const
|
|
652
|
-
quickPick
|
|
651
|
+
const disposables = ( (new DisposableStore()));
|
|
652
|
+
const quickPick = disposables.add(this.quickInputService.createQuickPick({ useSeparators: true }));
|
|
653
|
+
quickPick.placeholder = ( localize(8773, "Select an option to open a Remote Window"));
|
|
653
654
|
quickPick.items = computeItems();
|
|
654
655
|
quickPick.sortByLabel = false;
|
|
655
656
|
quickPick.canSelectMany = false;
|
|
656
|
-
Event.once(quickPick.onDidAccept)((async (_) => {
|
|
657
|
+
disposables.add(Event.once(quickPick.onDidAccept)((async (_) => {
|
|
657
658
|
const selectedItems = quickPick.selectedItems;
|
|
658
659
|
if (selectedItems.length === 1) {
|
|
659
660
|
const commandId = selectedItems[0].id;
|
|
@@ -661,7 +662,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
661
662
|
if (remoteExtension) {
|
|
662
663
|
quickPick.items = [];
|
|
663
664
|
quickPick.busy = true;
|
|
664
|
-
quickPick.placeholder = ( localize(
|
|
665
|
+
quickPick.placeholder = ( localize(8774, 'Installing extension... '));
|
|
665
666
|
await this.installExtension(remoteExtension.id);
|
|
666
667
|
quickPick.hide();
|
|
667
668
|
await this.runRemoteStartCommand(remoteExtension.id, remoteExtension.startCommand);
|
|
@@ -675,17 +676,16 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
675
676
|
quickPick.hide();
|
|
676
677
|
}
|
|
677
678
|
}
|
|
678
|
-
}));
|
|
679
|
-
Event.once(quickPick.onDidTriggerItemButton)(async (e) => {
|
|
679
|
+
})));
|
|
680
|
+
disposables.add(Event.once(quickPick.onDidTriggerItemButton)(async (e) => {
|
|
680
681
|
const remoteExtension = this.remoteExtensionMetadata.find(value => ExtensionIdentifier.equals(value.id, e.item.id));
|
|
681
682
|
if (remoteExtension) {
|
|
682
683
|
await this.openerService.open(( (URI.parse(remoteExtension.helpLink))));
|
|
683
684
|
}
|
|
684
|
-
});
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
quickPick.onDidHide(itemUpdater.dispose);
|
|
685
|
+
}));
|
|
686
|
+
disposables.add(this.legacyIndicatorMenu.onDidChange(() => quickPick.items = computeItems()));
|
|
687
|
+
disposables.add(this.remoteIndicatorMenu.onDidChange(() => quickPick.items = computeItems()));
|
|
688
|
+
disposables.add(quickPick.onDidHide(() => disposables.dispose()));
|
|
689
689
|
if (!this.remoteMetadataInitialized) {
|
|
690
690
|
quickPick.busy = true;
|
|
691
691
|
this._register(this.onDidChangeEntries(() => {
|
|
@@ -724,7 +724,7 @@ RemoteStatusIndicator = RemoteStatusIndicator_1 = ( (__decorate([
|
|
|
724
724
|
'workbench.remoteIndicator.showExtensionRecommendations': {
|
|
725
725
|
type: 'boolean',
|
|
726
726
|
markdownDescription: ( localize(
|
|
727
|
-
|
|
727
|
+
8775,
|
|
728
728
|
"When enabled, remote extensions recommendations will be shown in the Remote Indicator menu."
|
|
729
729
|
)),
|
|
730
730
|
default: true
|
|
@@ -32,14 +32,14 @@ let RemoteStartEntry = class RemoteStartEntry extends Disposable {
|
|
|
32
32
|
this.registerListeners();
|
|
33
33
|
}
|
|
34
34
|
registerActions() {
|
|
35
|
-
const category = ( localize2(
|
|
35
|
+
const category = ( localize2(8798, "Remote"));
|
|
36
36
|
const startEntry = this;
|
|
37
37
|
this._register(registerAction2(class extends Action2 {
|
|
38
38
|
constructor() {
|
|
39
39
|
super({
|
|
40
40
|
id: RemoteStartEntry_1.REMOTE_WEB_START_ENTRY_ACTIONS_COMMAND_ID,
|
|
41
41
|
category,
|
|
42
|
-
title: ( localize2(
|
|
42
|
+
title: ( localize2(8799, "Show Remote Start Entry for web")),
|
|
43
43
|
f1: false
|
|
44
44
|
});
|
|
45
45
|
}
|
|
@@ -25,12 +25,12 @@ let TunnelFactoryContribution = class TunnelFactoryContribution extends Disposab
|
|
|
25
25
|
privacyOptions = [
|
|
26
26
|
{
|
|
27
27
|
id: 'private',
|
|
28
|
-
label: ( localize(
|
|
28
|
+
label: ( localize(8735, "Private")),
|
|
29
29
|
themeIcon: 'lock'
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
id: 'public',
|
|
33
|
-
label: ( localize(
|
|
33
|
+
label: ( localize(8736, "Public")),
|
|
34
34
|
themeIcon: 'eye'
|
|
35
35
|
}
|
|
36
36
|
];
|
|
@@ -100,9 +100,9 @@ let RemoteInvalidWorkspaceDetector = class RemoteInvalidWorkspaceDetector extend
|
|
|
100
100
|
}
|
|
101
101
|
const res = await this.dialogService.confirm({
|
|
102
102
|
type: 'warning',
|
|
103
|
-
message: ( localize(
|
|
104
|
-
detail: ( localize(
|
|
105
|
-
primaryButton: ( localize(
|
|
103
|
+
message: ( localize(3567, "Workspace does not exist")),
|
|
104
|
+
detail: ( localize(3568, "Please select another workspace to open.")),
|
|
105
|
+
primaryButton: ( localize(3569, "&&Open Workspace..."))
|
|
106
106
|
});
|
|
107
107
|
if (res.confirmed) {
|
|
108
108
|
if (workspace.configuration) {
|
|
@@ -129,7 +129,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
129
129
|
constructor() {
|
|
130
130
|
super({
|
|
131
131
|
id: 'workbench.action.triggerReconnect',
|
|
132
|
-
title: ( localize2(
|
|
132
|
+
title: ( localize2(3570, 'Connection: Trigger Reconnect')),
|
|
133
133
|
category: Categories.Developer,
|
|
134
134
|
f1: true,
|
|
135
135
|
});
|
|
@@ -142,7 +142,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
142
142
|
constructor() {
|
|
143
143
|
super({
|
|
144
144
|
id: 'workbench.action.pauseSocketWriting',
|
|
145
|
-
title: ( localize2(
|
|
145
|
+
title: ( localize2(3571, 'Connection: Pause socket writing')),
|
|
146
146
|
category: Categories.Developer,
|
|
147
147
|
f1: true,
|
|
148
148
|
});
|
|
@@ -162,11 +162,11 @@ const extensionKindSchema = {
|
|
|
162
162
|
],
|
|
163
163
|
enumDescriptions: [
|
|
164
164
|
( localize(
|
|
165
|
-
|
|
165
|
+
3572,
|
|
166
166
|
"UI extension kind. In a remote window, such extensions are enabled only when available on the local machine."
|
|
167
167
|
)),
|
|
168
168
|
( localize(
|
|
169
|
-
|
|
169
|
+
3573,
|
|
170
170
|
"Workspace extension kind. In a remote window, such extensions are enabled only when available on the remote."
|
|
171
171
|
))
|
|
172
172
|
],
|
|
@@ -174,13 +174,13 @@ const extensionKindSchema = {
|
|
|
174
174
|
( (Registry.as(Extensions$1.Configuration)))
|
|
175
175
|
.registerConfiguration({
|
|
176
176
|
id: 'remote',
|
|
177
|
-
title: ( localize(
|
|
177
|
+
title: ( localize(3574, "Remote")),
|
|
178
178
|
type: 'object',
|
|
179
179
|
properties: {
|
|
180
180
|
'remote.extensionKind': {
|
|
181
181
|
type: 'object',
|
|
182
182
|
markdownDescription: ( localize(
|
|
183
|
-
|
|
183
|
+
3575,
|
|
184
184
|
"Override the kind of an extension. `ui` extensions are installed and run on the local machine while `workspace` extensions are run on the remote. By overriding an extension's default kind using this setting, you specify if that extension should be installed and enabled locally or remotely."
|
|
185
185
|
)),
|
|
186
186
|
patternProperties: {
|
|
@@ -195,13 +195,13 @@ const extensionKindSchema = {
|
|
|
195
195
|
},
|
|
196
196
|
'remote.restoreForwardedPorts': {
|
|
197
197
|
type: 'boolean',
|
|
198
|
-
markdownDescription: ( localize(
|
|
198
|
+
markdownDescription: ( localize(3576, "Restores the ports you forwarded in a workspace.")),
|
|
199
199
|
default: true
|
|
200
200
|
},
|
|
201
201
|
'remote.autoForwardPorts': {
|
|
202
202
|
type: 'boolean',
|
|
203
203
|
markdownDescription: ( localize(
|
|
204
|
-
|
|
204
|
+
3577,
|
|
205
205
|
"When enabled, new running processes are detected and ports that they listen on are automatically forwarded. Disabling this setting will not prevent all ports from being forwarded. Even when disabled, extensions will still be able to cause ports to be forwarded, and opening some URLs will still cause ports to forwarded."
|
|
206
206
|
)),
|
|
207
207
|
default: true
|
|
@@ -209,22 +209,22 @@ const extensionKindSchema = {
|
|
|
209
209
|
'remote.autoForwardPortsSource': {
|
|
210
210
|
type: 'string',
|
|
211
211
|
markdownDescription: ( localize(
|
|
212
|
-
|
|
212
|
+
3578,
|
|
213
213
|
"Sets the source from which ports are automatically forwarded when {0} is true. On Windows and macOS remotes, the `process` and `hybrid` options have no effect and `output` will be used.",
|
|
214
214
|
'`#remote.autoForwardPorts#`'
|
|
215
215
|
)),
|
|
216
216
|
enum: ['process', 'output', 'hybrid'],
|
|
217
217
|
enumDescriptions: [
|
|
218
218
|
( localize(
|
|
219
|
-
|
|
219
|
+
3579,
|
|
220
220
|
"Ports will be automatically forwarded when discovered by watching for processes that are started and include a port."
|
|
221
221
|
)),
|
|
222
222
|
( localize(
|
|
223
|
-
|
|
223
|
+
3580,
|
|
224
224
|
"Ports will be automatically forwarded when discovered by reading terminal and debug output. Not all processes that use ports will print to the integrated terminal or debug console, so some ports will be missed. Ports forwarded based on output will not be \"un-forwarded\" until reload or until the port is closed by the user in the Ports view."
|
|
225
225
|
)),
|
|
226
226
|
( localize(
|
|
227
|
-
|
|
227
|
+
3581,
|
|
228
228
|
"Ports will be automatically forwarded when discovered by reading terminal and debug output. Not all processes that use ports will print to the integrated terminal or debug console, so some ports will be missed. Ports will be \"un-forwarded\" by watching for processes that listen on that port to be terminated."
|
|
229
229
|
))
|
|
230
230
|
],
|
|
@@ -234,14 +234,14 @@ const extensionKindSchema = {
|
|
|
234
234
|
type: 'number',
|
|
235
235
|
default: 20,
|
|
236
236
|
markdownDescription: ( localize(
|
|
237
|
-
|
|
237
|
+
3582,
|
|
238
238
|
"The number of auto forwarded ports that will trigger the switch from `process` to `hybrid` when automatically forwarding ports and `remote.autoForwardPortsSource` is set to `process` by default. Set to `0` to disable the fallback. When `remote.autoForwardPortsFallback` hasn't been configured, but `remote.autoForwardPortsSource` has, `remote.autoForwardPortsFallback` will be treated as though it's set to `0`."
|
|
239
239
|
))
|
|
240
240
|
},
|
|
241
241
|
'remote.forwardOnOpen': {
|
|
242
242
|
type: 'boolean',
|
|
243
243
|
description: ( localize(
|
|
244
|
-
|
|
244
|
+
3583,
|
|
245
245
|
"Controls whether local URLs with a port will be forwarded when opened from the terminal and the debug console."
|
|
246
246
|
)),
|
|
247
247
|
default: true
|
|
@@ -252,7 +252,7 @@ const extensionKindSchema = {
|
|
|
252
252
|
'(^\\d+(-\\d+)?$)|(.+)': {
|
|
253
253
|
type: 'object',
|
|
254
254
|
description: ( localize(
|
|
255
|
-
|
|
255
|
+
3584,
|
|
256
256
|
"A port, range of ports (ex. \"40000-55000\"), host and port (ex. \"db:1234\"), or regular expression (ex. \".+\\\\/server.js\"). For a port number or range, the attributes will apply to that port number or range of port numbers. Attributes which use a regular expression will apply to ports whose associated process command line matches the expression."
|
|
257
257
|
)),
|
|
258
258
|
properties: {
|
|
@@ -260,27 +260,27 @@ const extensionKindSchema = {
|
|
|
260
260
|
type: 'string',
|
|
261
261
|
enum: ['notify', 'openBrowser', 'openBrowserOnce', 'openPreview', 'silent', 'ignore'],
|
|
262
262
|
enumDescriptions: [
|
|
263
|
-
( localize(
|
|
263
|
+
( localize(3585, "Shows a notification when a port is automatically forwarded.")),
|
|
264
264
|
( localize(
|
|
265
|
-
|
|
265
|
+
3586,
|
|
266
266
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
267
267
|
)),
|
|
268
268
|
( localize(
|
|
269
|
-
|
|
269
|
+
3587,
|
|
270
270
|
"Opens the browser when the port is automatically forwarded, but only the first time the port is forward during a session. Depending on your settings, this could open an embedded browser."
|
|
271
271
|
)),
|
|
272
272
|
( localize(
|
|
273
|
-
|
|
273
|
+
3588,
|
|
274
274
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
275
275
|
)),
|
|
276
276
|
( localize(
|
|
277
|
-
|
|
277
|
+
3589,
|
|
278
278
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
279
279
|
)),
|
|
280
|
-
( localize(
|
|
280
|
+
( localize(3590, "This port will not be automatically forwarded."))
|
|
281
281
|
],
|
|
282
282
|
description: ( localize(
|
|
283
|
-
|
|
283
|
+
3591,
|
|
284
284
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
285
285
|
)),
|
|
286
286
|
default: 'notify'
|
|
@@ -288,20 +288,20 @@ const extensionKindSchema = {
|
|
|
288
288
|
'elevateIfNeeded': {
|
|
289
289
|
type: 'boolean',
|
|
290
290
|
description: ( localize(
|
|
291
|
-
|
|
291
|
+
3592,
|
|
292
292
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
293
293
|
)),
|
|
294
294
|
default: false
|
|
295
295
|
},
|
|
296
296
|
'label': {
|
|
297
297
|
type: 'string',
|
|
298
|
-
description: ( localize(
|
|
299
|
-
default: ( localize(
|
|
298
|
+
description: ( localize(3593, "Label that will be shown in the UI for this port.")),
|
|
299
|
+
default: ( localize(3594, "Application"))
|
|
300
300
|
},
|
|
301
301
|
'requireLocalPort': {
|
|
302
302
|
type: 'boolean',
|
|
303
303
|
markdownDescription: ( localize(
|
|
304
|
-
|
|
304
|
+
3595,
|
|
305
305
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
306
306
|
)),
|
|
307
307
|
default: false
|
|
@@ -309,22 +309,22 @@ const extensionKindSchema = {
|
|
|
309
309
|
'protocol': {
|
|
310
310
|
type: 'string',
|
|
311
311
|
enum: ['http', 'https'],
|
|
312
|
-
description: ( localize(
|
|
312
|
+
description: ( localize(3596, "The protocol to use when forwarding this port."))
|
|
313
313
|
}
|
|
314
314
|
},
|
|
315
315
|
default: {
|
|
316
|
-
'label': ( localize(
|
|
316
|
+
'label': ( localize(3594, "Application")),
|
|
317
317
|
'onAutoForward': 'notify'
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
},
|
|
321
321
|
markdownDescription: ( localize(
|
|
322
|
-
|
|
322
|
+
3597,
|
|
323
323
|
"Set properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Application\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n},\n\".+\\\\/server.js\": {\n \"onAutoForward\": \"openPreview\"\n}\n```"
|
|
324
324
|
)),
|
|
325
325
|
defaultSnippets: [{ body: { '${1:3000}': { label: '${2:Application}', onAutoForward: 'openPreview' } } }],
|
|
326
326
|
errorMessage: ( localize(
|
|
327
|
-
|
|
327
|
+
3598,
|
|
328
328
|
"Must be a port number, range of port numbers, or regular expression."
|
|
329
329
|
)),
|
|
330
330
|
additionalProperties: false,
|
|
@@ -344,23 +344,23 @@ const extensionKindSchema = {
|
|
|
344
344
|
type: 'string',
|
|
345
345
|
enum: ['notify', 'openBrowser', 'openPreview', 'silent', 'ignore'],
|
|
346
346
|
enumDescriptions: [
|
|
347
|
-
( localize(
|
|
347
|
+
( localize(3585, "Shows a notification when a port is automatically forwarded.")),
|
|
348
348
|
( localize(
|
|
349
|
-
|
|
349
|
+
3586,
|
|
350
350
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
351
351
|
)),
|
|
352
352
|
( localize(
|
|
353
|
-
|
|
353
|
+
3588,
|
|
354
354
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
355
355
|
)),
|
|
356
356
|
( localize(
|
|
357
|
-
|
|
357
|
+
3589,
|
|
358
358
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
359
359
|
)),
|
|
360
|
-
( localize(
|
|
360
|
+
( localize(3590, "This port will not be automatically forwarded."))
|
|
361
361
|
],
|
|
362
362
|
description: ( localize(
|
|
363
|
-
|
|
363
|
+
3591,
|
|
364
364
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
365
365
|
)),
|
|
366
366
|
default: 'notify'
|
|
@@ -368,20 +368,20 @@ const extensionKindSchema = {
|
|
|
368
368
|
'elevateIfNeeded': {
|
|
369
369
|
type: 'boolean',
|
|
370
370
|
description: ( localize(
|
|
371
|
-
|
|
371
|
+
3592,
|
|
372
372
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
373
373
|
)),
|
|
374
374
|
default: false
|
|
375
375
|
},
|
|
376
376
|
'label': {
|
|
377
377
|
type: 'string',
|
|
378
|
-
description: ( localize(
|
|
379
|
-
default: ( localize(
|
|
378
|
+
description: ( localize(3593, "Label that will be shown in the UI for this port.")),
|
|
379
|
+
default: ( localize(3594, "Application"))
|
|
380
380
|
},
|
|
381
381
|
'requireLocalPort': {
|
|
382
382
|
type: 'boolean',
|
|
383
383
|
markdownDescription: ( localize(
|
|
384
|
-
|
|
384
|
+
3595,
|
|
385
385
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
386
386
|
)),
|
|
387
387
|
default: false
|
|
@@ -389,12 +389,12 @@ const extensionKindSchema = {
|
|
|
389
389
|
'protocol': {
|
|
390
390
|
type: 'string',
|
|
391
391
|
enum: ['http', 'https'],
|
|
392
|
-
description: ( localize(
|
|
392
|
+
description: ( localize(3596, "The protocol to use when forwarding this port."))
|
|
393
393
|
}
|
|
394
394
|
},
|
|
395
395
|
defaultSnippets: [{ body: { onAutoForward: 'ignore' } }],
|
|
396
396
|
markdownDescription: ( localize(
|
|
397
|
-
|
|
397
|
+
3599,
|
|
398
398
|
"Set default properties that are applied to all ports that don't get properties from the setting {0}. For example:\n\n```\n{\n \"onAutoForward\": \"ignore\"\n}\n```",
|
|
399
399
|
'`#remote.portsAttributes#`'
|
|
400
400
|
)),
|
|
@@ -405,7 +405,7 @@ const extensionKindSchema = {
|
|
|
405
405
|
enum: ['localhost', 'allInterfaces'],
|
|
406
406
|
default: 'localhost',
|
|
407
407
|
description: ( localize(
|
|
408
|
-
|
|
408
|
+
3600,
|
|
409
409
|
"Specifies the local host name that will be used for port forwarding."
|
|
410
410
|
))
|
|
411
411
|
}
|
|
@@ -45,15 +45,15 @@ let RemoteConnectionFailureNotificationContribution = class RemoteConnectionFail
|
|
|
45
45
|
async _presentConnectionError(err) {
|
|
46
46
|
await this._dialogService.prompt({
|
|
47
47
|
type: Severity$1.Error,
|
|
48
|
-
message: ( localize(
|
|
48
|
+
message: ( localize(3552, "An unexpected error occurred that requires a reload of this page.")),
|
|
49
49
|
detail: ( localize(
|
|
50
|
-
|
|
50
|
+
3553,
|
|
51
51
|
"The workbench failed to connect to the server (Error: {0})",
|
|
52
52
|
err ? err.message : ''
|
|
53
53
|
)),
|
|
54
54
|
buttons: [
|
|
55
55
|
{
|
|
56
|
-
label: ( localize(
|
|
56
|
+
label: ( localize(3554, "&&Reload")),
|
|
57
57
|
run: () => this._hostService.reload()
|
|
58
58
|
}
|
|
59
59
|
]
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
3
2
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
3
|
import { getDelayedChannel } from 'vscode/vscode/vs/base/parts/ipc/common/ipc';
|
|
5
|
-
import {
|
|
6
|
-
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
4
|
+
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
7
5
|
import { connectRemoteAgentManagement } from 'vscode/vscode/vs/platform/remote/common/remoteAgentConnection';
|
|
8
6
|
import { IRemoteAuthorityResolverService } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver.service';
|
|
9
|
-
import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService.service';
|
|
10
|
-
import { ISignService } from 'vscode/vscode/vs/platform/sign/common/sign.service';
|
|
11
|
-
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
12
7
|
import { RemoteExtensionEnvironmentChannelClient } from './remoteAgentEnvironmentChannel.js';
|
|
8
|
+
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
9
|
+
import { ISignService } from 'vscode/vscode/vs/platform/sign/common/sign.service';
|
|
10
|
+
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
11
|
+
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
13
12
|
import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
13
|
+
import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService.service';
|
|
14
14
|
|
|
15
15
|
let AbstractRemoteAgentService = class AbstractRemoteAgentService extends Disposable {
|
|
16
16
|
constructor(remoteSocketFactoryService, userDataProfileService, _environmentService, productService, _remoteAuthorityResolverService, signService, logService) {
|