@codingame/monaco-vscode-remote-agent-service-override 30.0.1 → 31.0.0
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/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +17 -17
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +6 -6
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +28 -27
- 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 +48 -48
- package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-remote-agent-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "31.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - remote-agent service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
19
|
-
"@codingame/monaco-vscode-environment-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "31.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-environment-service-override": "31.0.0"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -35,7 +35,7 @@ let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
|
35
35
|
this.switchRemoteMenu = MenuId.for("workbench.remote.menu.switchRemoteMenu");
|
|
36
36
|
this._register(MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
37
37
|
submenu: this.switchRemoteMenu,
|
|
38
|
-
title: ( localize(
|
|
38
|
+
title: ( localize(12136, "Switch Remote")),
|
|
39
39
|
group: "navigation",
|
|
40
40
|
when: ( ContextKeyExpr.equals("viewContainer", VIEWLET_ID)),
|
|
41
41
|
order: 1,
|
|
@@ -132,27 +132,27 @@ class HelpModel extends Disposable {
|
|
|
132
132
|
const getStarted = this.viewModel.helpInformation.filter(info => info.getStarted);
|
|
133
133
|
if (getStarted.length) {
|
|
134
134
|
const helpItemValues = ( getStarted.map(info => this.createHelpItemValue(info, "getStarted")));
|
|
135
|
-
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( new GetStartedHelpItem(getStartedIcon, ( localize(
|
|
135
|
+
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( new GetStartedHelpItem(getStartedIcon, ( localize(12137, "Get Started")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService, this.commandService));
|
|
136
136
|
getStartedHelpItem.values = helpItemValues;
|
|
137
137
|
helpItems.push(getStartedHelpItem);
|
|
138
138
|
}
|
|
139
139
|
const documentation = this.viewModel.helpInformation.filter(info => info.documentation);
|
|
140
140
|
if (documentation.length) {
|
|
141
141
|
const helpItemValues = ( documentation.map(info => this.createHelpItemValue(info, "documentation")));
|
|
142
|
-
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( new HelpItem(documentationIcon, ( localize(
|
|
142
|
+
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( new HelpItem(documentationIcon, ( localize(12138, "Read Documentation")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
143
143
|
documentationHelpItem.values = helpItemValues;
|
|
144
144
|
helpItems.push(documentationHelpItem);
|
|
145
145
|
}
|
|
146
146
|
const issues = this.viewModel.helpInformation.filter(info => info.issues);
|
|
147
147
|
if (issues.length) {
|
|
148
148
|
const helpItemValues = ( issues.map(info => this.createHelpItemValue(info, "issues")));
|
|
149
|
-
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( new HelpItem(reviewIssuesIcon, ( localize(
|
|
149
|
+
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( new HelpItem(reviewIssuesIcon, ( localize(12139, "Review Issues")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
150
150
|
reviewIssuesHelpItem.values = helpItemValues;
|
|
151
151
|
helpItems.push(reviewIssuesHelpItem);
|
|
152
152
|
}
|
|
153
153
|
if (helpItems.length) {
|
|
154
154
|
const helpItemValues = ( this.viewModel.helpInformation.map(info => this.createHelpItemValue(info, "reportIssue")));
|
|
155
|
-
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( new IssueReporterItem(reportIssuesIcon, ( localize(
|
|
155
|
+
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( new IssueReporterItem(reportIssuesIcon, ( localize(12140, "Report Issue")), helpItemValues, this.quickInputService, this.environmentService, this.commandService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
156
156
|
issueReporterItem.values = helpItemValues;
|
|
157
157
|
helpItems.push(issueReporterItem);
|
|
158
158
|
}
|
|
@@ -281,7 +281,7 @@ class HelpItemBase {
|
|
|
281
281
|
const actions = await this.getActions();
|
|
282
282
|
if (actions.length) {
|
|
283
283
|
const action = await this.quickInputService.pick(actions, {
|
|
284
|
-
placeHolder: ( localize(
|
|
284
|
+
placeHolder: ( localize(12141, "Select url to open"))
|
|
285
285
|
});
|
|
286
286
|
if (action) {
|
|
287
287
|
await this.takeAction(action.extensionDescription, action.url);
|
|
@@ -404,7 +404,7 @@ let HelpPanel = class HelpPanel extends ViewPane {
|
|
|
404
404
|
this.ID = "~remote.helpPanel";
|
|
405
405
|
}
|
|
406
406
|
static {
|
|
407
|
-
this.TITLE = ( localize2(
|
|
407
|
+
this.TITLE = ( localize2(12142, "Help and feedback"));
|
|
408
408
|
}
|
|
409
409
|
constructor(
|
|
410
410
|
viewModel,
|
|
@@ -456,7 +456,7 @@ let HelpPanel = class HelpPanel extends ViewPane {
|
|
|
456
456
|
getAriaLabel: item => {
|
|
457
457
|
return item.label;
|
|
458
458
|
},
|
|
459
|
-
getWidgetAriaLabel: () => ( localize(
|
|
459
|
+
getWidgetAriaLabel: () => ( localize(12143, "Remote Help"))
|
|
460
460
|
}
|
|
461
461
|
});
|
|
462
462
|
const model = this._register(( new HelpModel(
|
|
@@ -599,14 +599,14 @@ let RemoteViewPaneContainer = class RemoteViewPaneContainer extends FilterViewPa
|
|
|
599
599
|
this.remoteExplorerService.targetType = isStringArray(viewDescriptor.remoteAuthority) ? viewDescriptor.remoteAuthority : [viewDescriptor.remoteAuthority];
|
|
600
600
|
}
|
|
601
601
|
getTitle() {
|
|
602
|
-
const title = ( localize(
|
|
602
|
+
const title = ( localize(12144, "Remote Explorer"));
|
|
603
603
|
return title;
|
|
604
604
|
}
|
|
605
605
|
};
|
|
606
606
|
RemoteViewPaneContainer = ( __decorate([( __param(0, IWorkbenchLayoutService)), ( __param(1, ITelemetryService)), ( __param(2, IWorkspaceContextService)), ( __param(3, IStorageService)), ( __param(4, IConfigurationService)), ( __param(5, IInstantiationService)), ( __param(6, IThemeService)), ( __param(7, IContextMenuService)), ( __param(8, IExtensionService)), ( __param(9, IRemoteExplorerService)), ( __param(10, IViewDescriptorService)), ( __param(11, ILogService))], RemoteViewPaneContainer));
|
|
607
607
|
( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
|
|
608
608
|
id: VIEWLET_ID,
|
|
609
|
-
title: ( localize2(
|
|
609
|
+
title: ( localize2(12144, "Remote Explorer")),
|
|
610
610
|
ctorDescriptor: ( new SyncDescriptor(RemoteViewPaneContainer)),
|
|
611
611
|
hideIfEmpty: true,
|
|
612
612
|
viewOrderDelegate: {
|
|
@@ -717,9 +717,9 @@ class ReconnectionTimer {
|
|
|
717
717
|
}
|
|
718
718
|
const remainingTime = Math.ceil(remainingTimeMs / 1000);
|
|
719
719
|
if (remainingTime === 1) {
|
|
720
|
-
this._parent.report(( localize(
|
|
720
|
+
this._parent.report(( localize(12145, "Attempting to reconnect in {0} second...", remainingTime)));
|
|
721
721
|
} else {
|
|
722
|
-
this._parent.report(( localize(
|
|
722
|
+
this._parent.report(( localize(12146, "Attempting to reconnect in {0} seconds...", remainingTime)));
|
|
723
723
|
}
|
|
724
724
|
}
|
|
725
725
|
}
|
|
@@ -775,13 +775,13 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
775
775
|
let lastIncomingDataTime = 0;
|
|
776
776
|
let reconnectionAttempts = 0;
|
|
777
777
|
const reconnectButton = {
|
|
778
|
-
label: ( localize(
|
|
778
|
+
label: ( localize(12147, "Reconnect Now")),
|
|
779
779
|
callback: () => {
|
|
780
780
|
reconnectWaitEvent?.skipWait();
|
|
781
781
|
}
|
|
782
782
|
};
|
|
783
783
|
const reloadButton = {
|
|
784
|
-
label: ( localize(
|
|
784
|
+
label: ( localize(12148, "Reload Window")),
|
|
785
785
|
callback: () => {
|
|
786
786
|
telemetryService.publicLog2("remoteReconnectionReload", {
|
|
787
787
|
remoteName: getRemoteName(environmentService.remoteAuthority),
|
|
@@ -808,7 +808,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
808
808
|
if (!visibleProgress) {
|
|
809
809
|
visibleProgress = showProgress(null, [reconnectButton, reloadButton]);
|
|
810
810
|
}
|
|
811
|
-
visibleProgress.report(( localize(
|
|
811
|
+
visibleProgress.report(( localize(12149, "Connection Lost")));
|
|
812
812
|
}
|
|
813
813
|
break;
|
|
814
814
|
case PersistentConnectionEventType.ReconnectionWait:
|
|
@@ -830,7 +830,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
830
830
|
});
|
|
831
831
|
if (visibleProgress || e.millisSinceLastIncomingData > DISCONNECT_PROMPT_TIME) {
|
|
832
832
|
visibleProgress = showProgress(null, [reloadButton]);
|
|
833
|
-
visibleProgress.report(( localize(
|
|
833
|
+
visibleProgress.report(( localize(12150, "Disconnected. Attempting to reconnect...")));
|
|
834
834
|
disposableListener.value = quickInputService.onShow(() => {
|
|
835
835
|
if (visibleProgress && visibleProgress.location === ProgressLocation.Dialog) {
|
|
836
836
|
visibleProgress = showProgress(ProgressLocation.Notification, [reloadButton], visibleProgress.lastReport);
|
|
@@ -856,8 +856,8 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
856
856
|
this._reloadWindowShown = true;
|
|
857
857
|
dialogService.confirm({
|
|
858
858
|
type: Severity.Error,
|
|
859
|
-
message: ( localize(
|
|
860
|
-
primaryButton: ( localize(
|
|
859
|
+
message: ( localize(12151, "Cannot reconnect. Please reload the window.")),
|
|
860
|
+
primaryButton: ( localize(12152, "&&Reload Window"))
|
|
861
861
|
}).then(result => {
|
|
862
862
|
if (result.confirmed) {
|
|
863
863
|
commandService.executeCommand(ReloadWindowAction.ID);
|
|
@@ -57,15 +57,15 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
57
57
|
} = await this.dialogService.prompt({
|
|
58
58
|
type: Severity.Warning,
|
|
59
59
|
message: ( localize(
|
|
60
|
-
|
|
60
|
+
12153,
|
|
61
61
|
"You are about to connect to an OS version that is unsupported by {0}.",
|
|
62
62
|
this.productService.nameLong
|
|
63
63
|
)),
|
|
64
64
|
buttons: [{
|
|
65
|
-
label: ( localize(
|
|
65
|
+
label: ( localize(12154, "&&Allow")),
|
|
66
66
|
run: () => ConnectionChoice.Allow
|
|
67
67
|
}, {
|
|
68
|
-
label: ( localize(
|
|
68
|
+
label: ( localize(12155, "&&Learn More")),
|
|
69
69
|
run: async () => {
|
|
70
70
|
await this.openerService.open("https://aka.ms/vscode-remote/faq/old-linux");
|
|
71
71
|
return ConnectionChoice.LearnMore;
|
|
@@ -75,7 +75,7 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
75
75
|
run: () => ConnectionChoice.Cancel
|
|
76
76
|
},
|
|
77
77
|
checkbox: {
|
|
78
|
-
label: ( localize(
|
|
78
|
+
label: ( localize(12156, "Do not show again"))
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
if (result === ConnectionChoice.LearnMore) {
|
|
@@ -111,13 +111,13 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
111
111
|
const shouldShowBanner = bannerDismissedVersion.slice(0, bannerDismissedVersion.lastIndexOf(".")) !== this.productService.version.slice(0, this.productService.version.lastIndexOf("."));
|
|
112
112
|
if (shouldShowBanner) {
|
|
113
113
|
const actions = [{
|
|
114
|
-
label: ( localize(
|
|
114
|
+
label: ( localize(12157, "Learn More")),
|
|
115
115
|
href: "https://aka.ms/vscode-remote/faq/old-linux"
|
|
116
116
|
}];
|
|
117
117
|
this.bannerService.show({
|
|
118
118
|
id: "unsupportedGlibcWarning.banner",
|
|
119
119
|
message: ( localize(
|
|
120
|
-
|
|
120
|
+
12158,
|
|
121
121
|
"You are connected to an OS version that is unsupported by {0}.",
|
|
122
122
|
this.productService.nameLong
|
|
123
123
|
)),
|
|
@@ -34,7 +34,7 @@ import { IExtensionGalleryService, IExtensionManagementService } from '@codingam
|
|
|
34
34
|
import { LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions';
|
|
35
35
|
import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
|
|
36
36
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
37
|
-
import { RemoteNameContext, VirtualWorkspaceContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
37
|
+
import { RemoteNameContext, VirtualWorkspaceContext, IsSessionsWindowContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contextkeys';
|
|
38
38
|
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
39
39
|
import { KeybindingWeight } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybindingsRegistry';
|
|
40
40
|
import { KeyMod, KeyCode } from '@codingame/monaco-vscode-api/vscode/vs/base/common/keyCodes';
|
|
@@ -191,14 +191,14 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
191
191
|
this.updateRemoteStatusIndicator();
|
|
192
192
|
}
|
|
193
193
|
registerActions() {
|
|
194
|
-
const category = ( localize2(
|
|
194
|
+
const category = ( localize2(12192, "Remote"));
|
|
195
195
|
const that = this;
|
|
196
196
|
this._register(registerAction2(class extends Action2 {
|
|
197
197
|
constructor() {
|
|
198
198
|
super({
|
|
199
199
|
id: RemoteStatusIndicator_1.REMOTE_ACTIONS_COMMAND_ID,
|
|
200
200
|
category,
|
|
201
|
-
title: ( localize2(
|
|
201
|
+
title: ( localize2(12193, "Show Remote Menu")),
|
|
202
202
|
f1: true,
|
|
203
203
|
keybinding: {
|
|
204
204
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -214,9 +214,9 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
214
214
|
super({
|
|
215
215
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
216
216
|
category,
|
|
217
|
-
title: ( localize2(
|
|
217
|
+
title: ( localize2(12194, "Close Remote Connection")),
|
|
218
218
|
f1: true,
|
|
219
|
-
precondition: ( ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext))
|
|
219
|
+
precondition: ( ContextKeyExpr.and(( ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext)), ( IsSessionsWindowContext.negate())))
|
|
220
220
|
});
|
|
221
221
|
this.run = () => that.hostService.openWindow({
|
|
222
222
|
forceReuseWindow: true,
|
|
@@ -229,8 +229,9 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
229
229
|
group: "6_close",
|
|
230
230
|
command: {
|
|
231
231
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
232
|
-
title: ( localize(
|
|
232
|
+
title: ( localize(12195, "Close Re&&mote Connection"))
|
|
233
233
|
},
|
|
234
|
+
when: ( IsSessionsWindowContext.negate()),
|
|
234
235
|
order: 3.5
|
|
235
236
|
});
|
|
236
237
|
}
|
|
@@ -241,7 +242,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
241
242
|
super({
|
|
242
243
|
id: RemoteStatusIndicator_1.INSTALL_REMOTE_EXTENSIONS_ID,
|
|
243
244
|
category,
|
|
244
|
-
title: ( localize2(
|
|
245
|
+
title: ( localize2(12196, "Install Remote Development Extensions")),
|
|
245
246
|
f1: true
|
|
246
247
|
});
|
|
247
248
|
this.run = (accessor, input) => {
|
|
@@ -456,18 +457,18 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
456
457
|
const hostLabel = this.labelService.getHostLabel(Schemas.vscodeRemote, this.remoteAuthority) || this.remoteAuthority;
|
|
457
458
|
switch (this.connectionState) {
|
|
458
459
|
case "initializing":
|
|
459
|
-
this.renderRemoteStatusIndicator(( localize(
|
|
460
|
+
this.renderRemoteStatusIndicator(( localize(12197, "Opening Remote...")), ( localize(12197, "Opening Remote...")), undefined, true );
|
|
460
461
|
break;
|
|
461
462
|
case "reconnecting":
|
|
462
463
|
this.renderRemoteStatusIndicator(`${( localize(
|
|
463
|
-
|
|
464
|
+
12198,
|
|
464
465
|
"Reconnecting to {0}...",
|
|
465
466
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
466
467
|
))}`, undefined, undefined, true );
|
|
467
468
|
break;
|
|
468
469
|
case "disconnected":
|
|
469
470
|
this.renderRemoteStatusIndicator(`$(alert) ${( localize(
|
|
470
|
-
|
|
471
|
+
12199,
|
|
471
472
|
"Disconnected from {0}",
|
|
472
473
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
473
474
|
))}`);
|
|
@@ -482,7 +483,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
482
483
|
if (hostNameTooltip) {
|
|
483
484
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
484
485
|
} else {
|
|
485
|
-
tooltip.appendText(( localize(
|
|
486
|
+
tooltip.appendText(( localize(12200, "Editing on {0}", hostLabel)));
|
|
486
487
|
}
|
|
487
488
|
this.renderRemoteStatusIndicator(
|
|
488
489
|
`$(remote) ${truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)}`,
|
|
@@ -509,12 +510,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
509
510
|
if (hostNameTooltip) {
|
|
510
511
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
511
512
|
} else {
|
|
512
|
-
tooltip.appendText(( localize(
|
|
513
|
+
tooltip.appendText(( localize(12201, "Editing on {0}", workspaceLabel)));
|
|
513
514
|
}
|
|
514
515
|
if (!isWeb || this.remoteAuthority) {
|
|
515
516
|
tooltip.appendMarkdown("\n\n");
|
|
516
517
|
tooltip.appendMarkdown(( localize(
|
|
517
|
-
|
|
518
|
+
12202,
|
|
518
519
|
"Some [features are not available]({0}) for resources located on a virtual file system.",
|
|
519
520
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
520
521
|
)));
|
|
@@ -526,7 +527,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
526
527
|
return;
|
|
527
528
|
}
|
|
528
529
|
}
|
|
529
|
-
this.renderRemoteStatusIndicator(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, ( localize(
|
|
530
|
+
this.renderRemoteStatusIndicator(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, ( localize(12203, "Open a Remote Window")));
|
|
530
531
|
return;
|
|
531
532
|
}
|
|
532
533
|
renderRemoteStatusIndicator(initialText, initialTooltip, command, showProgress) {
|
|
@@ -536,7 +537,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
536
537
|
ariaLabel
|
|
537
538
|
} = this.withNetworkStatus(initialText, initialTooltip, showProgress);
|
|
538
539
|
const properties = {
|
|
539
|
-
name: ( localize(
|
|
540
|
+
name: ( localize(12204, "Remote Host")),
|
|
540
541
|
kind: this.networkState === "offline" ? "offline" : text !== RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL ? "remote" : undefined,
|
|
541
542
|
ariaLabel,
|
|
542
543
|
text,
|
|
@@ -569,7 +570,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
569
570
|
case "offline":
|
|
570
571
|
{
|
|
571
572
|
const offlineMessage = ( localize(
|
|
572
|
-
|
|
573
|
+
12205,
|
|
573
574
|
"Network appears to be offline, certain features might be unavailable."
|
|
574
575
|
));
|
|
575
576
|
text = textWithAlert();
|
|
@@ -580,7 +581,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
580
581
|
case "high-latency":
|
|
581
582
|
text = textWithAlert();
|
|
582
583
|
tooltip = this.appendTooltipLine(tooltip, ( localize(
|
|
583
|
-
|
|
584
|
+
12206,
|
|
584
585
|
"Network appears to have high latency ({0}ms last, {1}ms average), certain features may be slow to respond.",
|
|
585
586
|
remoteConnectionLatencyMeasurer.latency?.current?.toFixed(2),
|
|
586
587
|
remoteConnectionLatencyMeasurer.latency?.average?.toFixed(2)
|
|
@@ -628,12 +629,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
628
629
|
} = await this.dialogService.confirm({
|
|
629
630
|
type: Severity.Error,
|
|
630
631
|
message: ( localize(
|
|
631
|
-
|
|
632
|
+
12207,
|
|
632
633
|
"An error occurred while setting up {0}. Would you like to try again?",
|
|
633
634
|
remoteLabel
|
|
634
635
|
)),
|
|
635
636
|
detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
|
|
636
|
-
primaryButton: ( localize(
|
|
637
|
+
primaryButton: ( localize(12208, "Retry"))
|
|
637
638
|
});
|
|
638
639
|
if (confirmed) {
|
|
639
640
|
return this.installExtension(extensionId, remoteLabel);
|
|
@@ -724,7 +725,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
724
725
|
const label = metadata.startConnectLabel;
|
|
725
726
|
const buttons = [{
|
|
726
727
|
iconClass: ThemeIcon.asClassName(infoIcon),
|
|
727
|
-
tooltip: ( localize(
|
|
728
|
+
tooltip: ( localize(12209, "Learn More"))
|
|
728
729
|
}];
|
|
729
730
|
notInstalledItems.push({
|
|
730
731
|
type: "item",
|
|
@@ -736,7 +737,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
736
737
|
}
|
|
737
738
|
items.push({
|
|
738
739
|
type: "separator",
|
|
739
|
-
label: ( localize(
|
|
740
|
+
label: ( localize(12210, "Install"))
|
|
740
741
|
});
|
|
741
742
|
items.push(...notInstalledItems);
|
|
742
743
|
}
|
|
@@ -749,20 +750,20 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
749
750
|
items.push({
|
|
750
751
|
type: "item",
|
|
751
752
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
752
|
-
label: ( localize(
|
|
753
|
+
label: ( localize(12211, "Close Remote Connection"))
|
|
753
754
|
});
|
|
754
755
|
if (this.connectionState === "disconnected") {
|
|
755
756
|
items.push({
|
|
756
757
|
type: "item",
|
|
757
758
|
id: ReloadWindowAction.ID,
|
|
758
|
-
label: ( localize(
|
|
759
|
+
label: ( localize(12212, "Reload Window"))
|
|
759
760
|
});
|
|
760
761
|
}
|
|
761
762
|
} else if (this.virtualWorkspaceLocation) {
|
|
762
763
|
items.push({
|
|
763
764
|
type: "item",
|
|
764
765
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
765
|
-
label: ( localize(
|
|
766
|
+
label: ( localize(12213, "Close Remote Workspace"))
|
|
766
767
|
});
|
|
767
768
|
}
|
|
768
769
|
}
|
|
@@ -775,7 +776,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
775
776
|
const quickPick = disposables.add(this.quickInputService.createQuickPick({
|
|
776
777
|
useSeparators: true
|
|
777
778
|
}));
|
|
778
|
-
quickPick.placeholder = ( localize(
|
|
779
|
+
quickPick.placeholder = ( localize(12214, "Select an option to open a Remote Window"));
|
|
779
780
|
quickPick.items = computeItems();
|
|
780
781
|
quickPick.sortByLabel = false;
|
|
781
782
|
quickPick.canSelectMany = false;
|
|
@@ -787,7 +788,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
787
788
|
if (remoteExtension) {
|
|
788
789
|
quickPick.items = [];
|
|
789
790
|
quickPick.busy = true;
|
|
790
|
-
quickPick.placeholder = ( localize(
|
|
791
|
+
quickPick.placeholder = ( localize(12215, "Installing extension... "));
|
|
791
792
|
try {
|
|
792
793
|
await this.installExtension(remoteExtension.id, selectedItems[0].label);
|
|
793
794
|
} catch (error) {
|
|
@@ -836,7 +837,7 @@ RemoteStatusIndicator = RemoteStatusIndicator_1 = ( __decorate([( __param(0, ISt
|
|
|
836
837
|
"workbench.remoteIndicator.showExtensionRecommendations": {
|
|
837
838
|
type: "boolean",
|
|
838
839
|
markdownDescription: ( localize(
|
|
839
|
-
|
|
840
|
+
12216,
|
|
840
841
|
"When enabled, remote extensions recommendations will be shown in the Remote Indicator menu."
|
|
841
842
|
)),
|
|
842
843
|
default: true
|
|
@@ -44,14 +44,14 @@ let RemoteStartEntry = class RemoteStartEntry extends Disposable {
|
|
|
44
44
|
this.registerListeners();
|
|
45
45
|
}
|
|
46
46
|
registerActions() {
|
|
47
|
-
const category = ( localize2(
|
|
47
|
+
const category = ( localize2(12217, "Remote"));
|
|
48
48
|
const startEntry = this;
|
|
49
49
|
this._register(registerAction2(class extends Action2 {
|
|
50
50
|
constructor() {
|
|
51
51
|
super({
|
|
52
52
|
id: RemoteStartEntry_1.REMOTE_WEB_START_ENTRY_ACTIONS_COMMAND_ID,
|
|
53
53
|
category,
|
|
54
|
-
title: ( localize2(
|
|
54
|
+
title: ( localize2(12218, "Show Remote Start Entry for web")),
|
|
55
55
|
f1: false
|
|
56
56
|
});
|
|
57
57
|
}
|
|
@@ -33,11 +33,11 @@ let TunnelFactoryContribution = class TunnelFactoryContribution extends Disposab
|
|
|
33
33
|
if (environmentService.options?.tunnelProvider?.features?.public && (privacyOptions.length === 0)) {
|
|
34
34
|
privacyOptions = [{
|
|
35
35
|
id: "private",
|
|
36
|
-
label: ( localize(
|
|
36
|
+
label: ( localize(12219, "Private")),
|
|
37
37
|
themeIcon: "lock"
|
|
38
38
|
}, {
|
|
39
39
|
id: "public",
|
|
40
|
-
label: ( localize(
|
|
40
|
+
label: ( localize(12220, "Public")),
|
|
41
41
|
themeIcon: "eye"
|
|
42
42
|
}];
|
|
43
43
|
}
|
|
@@ -107,9 +107,9 @@ let RemoteInvalidWorkspaceDetector = class RemoteInvalidWorkspaceDetector extend
|
|
|
107
107
|
}
|
|
108
108
|
const res = await this.dialogService.confirm({
|
|
109
109
|
type: "warning",
|
|
110
|
-
message: ( localize(
|
|
111
|
-
detail: ( localize(
|
|
112
|
-
primaryButton: ( localize(
|
|
110
|
+
message: ( localize(12280, "Workspace does not exist")),
|
|
111
|
+
detail: ( localize(12281, "Please select another workspace to open.")),
|
|
112
|
+
primaryButton: ( localize(12282, "&&Open Workspace..."))
|
|
113
113
|
});
|
|
114
114
|
if (res.confirmed) {
|
|
115
115
|
if (workspace.configuration) {
|
|
@@ -133,7 +133,7 @@ registerWorkbenchContribution2(
|
|
|
133
133
|
constructor() {
|
|
134
134
|
super({
|
|
135
135
|
id: "workbench.action.triggerReconnect",
|
|
136
|
-
title: ( localize2(
|
|
136
|
+
title: ( localize2(12283, "Connection: Trigger Reconnect")),
|
|
137
137
|
category: Categories.Developer,
|
|
138
138
|
f1: true
|
|
139
139
|
});
|
|
@@ -146,7 +146,7 @@ registerWorkbenchContribution2(
|
|
|
146
146
|
constructor() {
|
|
147
147
|
super({
|
|
148
148
|
id: "workbench.action.pauseSocketWriting",
|
|
149
|
-
title: ( localize2(
|
|
149
|
+
title: ( localize2(12284, "Connection: Pause socket writing")),
|
|
150
150
|
category: Categories.Developer,
|
|
151
151
|
f1: true
|
|
152
152
|
});
|
|
@@ -162,22 +162,22 @@ const extensionKindSchema = {
|
|
|
162
162
|
type: "string",
|
|
163
163
|
enum: ["ui", "workspace"],
|
|
164
164
|
enumDescriptions: [( localize(
|
|
165
|
-
|
|
165
|
+
12285,
|
|
166
166
|
"UI extension kind. In a remote window, such extensions are enabled only when available on the local machine."
|
|
167
167
|
)), ( localize(
|
|
168
|
-
|
|
168
|
+
12286,
|
|
169
169
|
"Workspace extension kind. In a remote window, such extensions are enabled only when available on the remote."
|
|
170
170
|
))]
|
|
171
171
|
};
|
|
172
172
|
( Registry.as(Extensions$1.Configuration)).registerConfiguration({
|
|
173
173
|
id: "remote",
|
|
174
|
-
title: ( localize(
|
|
174
|
+
title: ( localize(12287, "Remote")),
|
|
175
175
|
type: "object",
|
|
176
176
|
properties: {
|
|
177
177
|
"remote.extensionKind": {
|
|
178
178
|
type: "object",
|
|
179
179
|
markdownDescription: ( localize(
|
|
180
|
-
|
|
180
|
+
12288,
|
|
181
181
|
"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."
|
|
182
182
|
)),
|
|
183
183
|
patternProperties: {
|
|
@@ -195,13 +195,13 @@ const extensionKindSchema = {
|
|
|
195
195
|
},
|
|
196
196
|
"remote.restoreForwardedPorts": {
|
|
197
197
|
type: "boolean",
|
|
198
|
-
markdownDescription: ( localize(
|
|
198
|
+
markdownDescription: ( localize(12289, "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
|
+
12290,
|
|
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. Also see {0}.",
|
|
206
206
|
"`#remote.autoForwardPortsSource#`"
|
|
207
207
|
)),
|
|
@@ -210,20 +210,20 @@ const extensionKindSchema = {
|
|
|
210
210
|
"remote.autoForwardPortsSource": {
|
|
211
211
|
type: "string",
|
|
212
212
|
markdownDescription: ( localize(
|
|
213
|
-
|
|
213
|
+
12291,
|
|
214
214
|
"Sets the source from which ports are automatically forwarded when {0} is true. When {0} is false, {1} will be used to find information about ports that have already been forwarded. On Windows and macOS remotes, the `process` and `hybrid` options have no effect and `output` will be used.",
|
|
215
215
|
"`#remote.autoForwardPorts#`",
|
|
216
216
|
"`#remote.autoForwardPortsSource#`"
|
|
217
217
|
)),
|
|
218
218
|
enum: ["process", "output", "hybrid"],
|
|
219
219
|
enumDescriptions: [( localize(
|
|
220
|
-
|
|
220
|
+
12292,
|
|
221
221
|
"Ports will be automatically forwarded when discovered by watching for processes that are started and include a port."
|
|
222
222
|
)), ( localize(
|
|
223
|
-
|
|
223
|
+
12293,
|
|
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
|
)), ( localize(
|
|
226
|
-
|
|
226
|
+
12294,
|
|
227
227
|
"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."
|
|
228
228
|
))],
|
|
229
229
|
default: "process"
|
|
@@ -232,14 +232,14 @@ const extensionKindSchema = {
|
|
|
232
232
|
type: "number",
|
|
233
233
|
default: 20,
|
|
234
234
|
markdownDescription: ( localize(
|
|
235
|
-
|
|
235
|
+
12295,
|
|
236
236
|
"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`."
|
|
237
237
|
))
|
|
238
238
|
},
|
|
239
239
|
"remote.forwardOnOpen": {
|
|
240
240
|
type: "boolean",
|
|
241
241
|
description: ( localize(
|
|
242
|
-
|
|
242
|
+
12296,
|
|
243
243
|
"Controls whether local URLs with a port will be forwarded when opened from the terminal and the debug console."
|
|
244
244
|
)),
|
|
245
245
|
default: true
|
|
@@ -250,7 +250,7 @@ const extensionKindSchema = {
|
|
|
250
250
|
"(^\\d+(-\\d+)?$)|(.+)": {
|
|
251
251
|
type: "object",
|
|
252
252
|
description: ( localize(
|
|
253
|
-
|
|
253
|
+
12297,
|
|
254
254
|
"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."
|
|
255
255
|
)),
|
|
256
256
|
properties: {
|
|
@@ -264,21 +264,21 @@ const extensionKindSchema = {
|
|
|
264
264
|
"silent",
|
|
265
265
|
"ignore"
|
|
266
266
|
],
|
|
267
|
-
enumDescriptions: [( localize(
|
|
268
|
-
|
|
267
|
+
enumDescriptions: [( localize(12298, "Shows a notification when a port is automatically forwarded.")), ( localize(
|
|
268
|
+
12299,
|
|
269
269
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
270
270
|
)), ( localize(
|
|
271
|
-
|
|
271
|
+
12300,
|
|
272
272
|
"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."
|
|
273
273
|
)), ( localize(
|
|
274
|
-
|
|
274
|
+
12301,
|
|
275
275
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
276
276
|
)), ( localize(
|
|
277
|
-
|
|
277
|
+
12302,
|
|
278
278
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
279
|
-
)), ( localize(
|
|
279
|
+
)), ( localize(12303, "This port will not be automatically forwarded."))],
|
|
280
280
|
description: ( localize(
|
|
281
|
-
|
|
281
|
+
12304,
|
|
282
282
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
283
283
|
)),
|
|
284
284
|
default: "notify"
|
|
@@ -286,20 +286,20 @@ const extensionKindSchema = {
|
|
|
286
286
|
"elevateIfNeeded": {
|
|
287
287
|
type: "boolean",
|
|
288
288
|
description: ( localize(
|
|
289
|
-
|
|
289
|
+
12305,
|
|
290
290
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
291
291
|
)),
|
|
292
292
|
default: false
|
|
293
293
|
},
|
|
294
294
|
"label": {
|
|
295
295
|
type: "string",
|
|
296
|
-
description: ( localize(
|
|
297
|
-
default: ( localize(
|
|
296
|
+
description: ( localize(12306, "Label that will be shown in the UI for this port.")),
|
|
297
|
+
default: ( localize(12307, "Application"))
|
|
298
298
|
},
|
|
299
299
|
"requireLocalPort": {
|
|
300
300
|
type: "boolean",
|
|
301
301
|
markdownDescription: ( localize(
|
|
302
|
-
|
|
302
|
+
12308,
|
|
303
303
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
304
304
|
)),
|
|
305
305
|
default: false
|
|
@@ -307,17 +307,17 @@ const extensionKindSchema = {
|
|
|
307
307
|
"protocol": {
|
|
308
308
|
type: "string",
|
|
309
309
|
enum: ["http", "https"],
|
|
310
|
-
description: ( localize(
|
|
310
|
+
description: ( localize(12309, "The protocol to use when forwarding this port."))
|
|
311
311
|
}
|
|
312
312
|
},
|
|
313
313
|
default: {
|
|
314
|
-
"label": ( localize(
|
|
314
|
+
"label": ( localize(12307, "Application")),
|
|
315
315
|
"onAutoForward": "notify"
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
},
|
|
319
319
|
markdownDescription: ( localize(
|
|
320
|
-
|
|
320
|
+
12310,
|
|
321
321
|
"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```"
|
|
322
322
|
)),
|
|
323
323
|
defaultSnippets: [{
|
|
@@ -329,7 +329,7 @@ const extensionKindSchema = {
|
|
|
329
329
|
}
|
|
330
330
|
}],
|
|
331
331
|
errorMessage: ( localize(
|
|
332
|
-
|
|
332
|
+
12311,
|
|
333
333
|
"Must be a port number, range of port numbers, or regular expression."
|
|
334
334
|
)),
|
|
335
335
|
additionalProperties: false,
|
|
@@ -348,18 +348,18 @@ const extensionKindSchema = {
|
|
|
348
348
|
"onAutoForward": {
|
|
349
349
|
type: "string",
|
|
350
350
|
enum: ["notify", "openBrowser", "openPreview", "silent", "ignore"],
|
|
351
|
-
enumDescriptions: [( localize(
|
|
352
|
-
|
|
351
|
+
enumDescriptions: [( localize(12298, "Shows a notification when a port is automatically forwarded.")), ( localize(
|
|
352
|
+
12299,
|
|
353
353
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
354
354
|
)), ( localize(
|
|
355
|
-
|
|
355
|
+
12301,
|
|
356
356
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
357
357
|
)), ( localize(
|
|
358
|
-
|
|
358
|
+
12302,
|
|
359
359
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
360
|
-
)), ( localize(
|
|
360
|
+
)), ( localize(12303, "This port will not be automatically forwarded."))],
|
|
361
361
|
description: ( localize(
|
|
362
|
-
|
|
362
|
+
12304,
|
|
363
363
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
364
364
|
)),
|
|
365
365
|
default: "notify"
|
|
@@ -367,20 +367,20 @@ const extensionKindSchema = {
|
|
|
367
367
|
"elevateIfNeeded": {
|
|
368
368
|
type: "boolean",
|
|
369
369
|
description: ( localize(
|
|
370
|
-
|
|
370
|
+
12305,
|
|
371
371
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
372
372
|
)),
|
|
373
373
|
default: false
|
|
374
374
|
},
|
|
375
375
|
"label": {
|
|
376
376
|
type: "string",
|
|
377
|
-
description: ( localize(
|
|
378
|
-
default: ( localize(
|
|
377
|
+
description: ( localize(12306, "Label that will be shown in the UI for this port.")),
|
|
378
|
+
default: ( localize(12307, "Application"))
|
|
379
379
|
},
|
|
380
380
|
"requireLocalPort": {
|
|
381
381
|
type: "boolean",
|
|
382
382
|
markdownDescription: ( localize(
|
|
383
|
-
|
|
383
|
+
12308,
|
|
384
384
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
385
385
|
)),
|
|
386
386
|
default: false
|
|
@@ -388,7 +388,7 @@ const extensionKindSchema = {
|
|
|
388
388
|
"protocol": {
|
|
389
389
|
type: "string",
|
|
390
390
|
enum: ["http", "https"],
|
|
391
|
-
description: ( localize(
|
|
391
|
+
description: ( localize(12309, "The protocol to use when forwarding this port."))
|
|
392
392
|
}
|
|
393
393
|
},
|
|
394
394
|
defaultSnippets: [{
|
|
@@ -397,7 +397,7 @@ const extensionKindSchema = {
|
|
|
397
397
|
}
|
|
398
398
|
}],
|
|
399
399
|
markdownDescription: ( localize(
|
|
400
|
-
|
|
400
|
+
12312,
|
|
401
401
|
"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```",
|
|
402
402
|
"`#remote.portsAttributes#`"
|
|
403
403
|
)),
|
|
@@ -408,21 +408,21 @@ const extensionKindSchema = {
|
|
|
408
408
|
enum: ["localhost", "allInterfaces"],
|
|
409
409
|
default: "localhost",
|
|
410
410
|
description: ( localize(
|
|
411
|
-
|
|
411
|
+
12313,
|
|
412
412
|
"Specifies the local host name that will be used for port forwarding."
|
|
413
413
|
))
|
|
414
414
|
},
|
|
415
415
|
[REMOTE_DEFAULT_IF_LOCAL_EXTENSIONS]: {
|
|
416
416
|
type: "array",
|
|
417
417
|
markdownDescription: ( localize(
|
|
418
|
-
|
|
418
|
+
12314,
|
|
419
419
|
"List of extensions to install upon connection to a remote when already installed locally."
|
|
420
420
|
)),
|
|
421
421
|
default: product?.remoteDefaultExtensionsIfInstalledLocally || [],
|
|
422
422
|
items: {
|
|
423
423
|
type: "string",
|
|
424
424
|
pattern: EXTENSION_IDENTIFIER_PATTERN,
|
|
425
|
-
patternErrorMessage: ( localize(
|
|
425
|
+
patternErrorMessage: ( localize(12315, "Extension identifier must be in format \"publisher.name\"."))
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
}
|
|
@@ -55,14 +55,14 @@ let RemoteConnectionFailureNotificationContribution = class RemoteConnectionFail
|
|
|
55
55
|
async _presentConnectionError(err) {
|
|
56
56
|
await this._dialogService.prompt({
|
|
57
57
|
type: Severity.Error,
|
|
58
|
-
message: ( localize(
|
|
58
|
+
message: ( localize(16550, "An unexpected error occurred that requires a reload of this page.")),
|
|
59
59
|
detail: ( localize(
|
|
60
|
-
|
|
60
|
+
16551,
|
|
61
61
|
"The workbench failed to connect to the server (Error: {0})",
|
|
62
62
|
err ? err.message : ""
|
|
63
63
|
)),
|
|
64
64
|
buttons: [{
|
|
65
|
-
label: ( localize(
|
|
65
|
+
label: ( localize(16552, "&&Reload")),
|
|
66
66
|
run: () => this._hostService.reload()
|
|
67
67
|
}]
|
|
68
68
|
});
|