@codingame/monaco-vscode-remote-agent-service-override 28.4.1 → 29.1.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/platform/download/common/downloadIpc.d.ts +1 -1
- package/vscode/src/vs/platform/download/common/downloadIpc.js +1 -1
- package/vscode/src/vs/platform/remote/browser/browserSocketFactory.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +1 -1
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +18 -19
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +6 -6
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +25 -25
- 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/vscode/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.d.ts +1 -0
- package/vscode/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.js +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-remote-agent-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "29.1.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": "29.1.0",
|
|
19
|
+
"@codingame/monaco-vscode-environment-service-override": "29.1.0"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -14,5 +14,5 @@ export declare class DownloadServiceChannelClient implements IDownloadService {
|
|
|
14
14
|
private getUriTransformer;
|
|
15
15
|
readonly _serviceBrand: undefined;
|
|
16
16
|
constructor(channel: IChannel, getUriTransformer: () => IURITransformer | null);
|
|
17
|
-
download(from: URI, to: URI): Promise<void>;
|
|
17
|
+
download(from: URI, to: URI, _callSite?: string): Promise<void>;
|
|
18
18
|
}
|
|
@@ -11,7 +11,7 @@ class DownloadServiceChannel {
|
|
|
11
11
|
call(context, command, args) {
|
|
12
12
|
switch (command) {
|
|
13
13
|
case "download":
|
|
14
|
-
return this.service.download(URI.revive(args[0]), URI.revive(args[1]));
|
|
14
|
+
return this.service.download(URI.revive(args[0]), URI.revive(args[1]), args[2] ?? "downloadIpc");
|
|
15
15
|
}
|
|
16
16
|
throw ( new Error("Invalid call"));
|
|
17
17
|
}
|
|
@@ -30,7 +30,7 @@ export interface IWebSocket {
|
|
|
30
30
|
readonly onClose: Event<IWebSocketCloseEvent | void>;
|
|
31
31
|
readonly onError: Event<unknown>;
|
|
32
32
|
traceSocketEvent?(type: SocketDiagnosticsEventType, data?: VSBuffer | Uint8Array | ArrayBuffer | ArrayBufferView | unknown): void;
|
|
33
|
-
send(data: ArrayBuffer | ArrayBufferView): void;
|
|
33
|
+
send(data: ArrayBuffer | ArrayBufferView<ArrayBuffer>): void;
|
|
34
34
|
close(): void;
|
|
35
35
|
}
|
|
36
36
|
export declare class BrowserSocketFactory implements ISocketFactory<RemoteConnectionType.WebSocket> {
|
|
@@ -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(11937, "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(11938, "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(11939, "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(11940, "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(11941, "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(11942, "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(11943, "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(11944, "Remote Help"))
|
|
460
460
|
}
|
|
461
461
|
});
|
|
462
462
|
const model = this._register(( new HelpModel(
|
|
@@ -576,7 +576,7 @@ let RemoteViewPaneContainer = class RemoteViewPaneContainer extends FilterViewPa
|
|
|
576
576
|
}
|
|
577
577
|
}
|
|
578
578
|
_handleRemoteInfoExtensionPoint(extension, helpInformation) {
|
|
579
|
-
if (!isProposedApiEnabled(extension.description
|
|
579
|
+
if (!isProposedApiEnabled(extension.description)) {
|
|
580
580
|
return;
|
|
581
581
|
}
|
|
582
582
|
if (!extension.value.documentation && !extension.value.getStarted && !extension.value.issues) {
|
|
@@ -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(11945, "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(11945, "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(11946, "Attempting to reconnect in {0} second...", remainingTime)));
|
|
721
721
|
} else {
|
|
722
|
-
this._parent.report(( localize(
|
|
722
|
+
this._parent.report(( localize(11947, "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(11948, "Reconnect Now")),
|
|
779
779
|
callback: () => {
|
|
780
780
|
reconnectWaitEvent?.skipWait();
|
|
781
781
|
}
|
|
782
782
|
};
|
|
783
783
|
const reloadButton = {
|
|
784
|
-
label: ( localize(
|
|
784
|
+
label: ( localize(11949, "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(11950, "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(11951, "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);
|
|
@@ -852,13 +852,12 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
852
852
|
hideProgress();
|
|
853
853
|
if (e.handled) {
|
|
854
854
|
logService.info(`Error handled: Not showing a notification for the error.`);
|
|
855
|
-
console.log(`Error handled: Not showing a notification for the error.`);
|
|
856
855
|
} else if (!this._reloadWindowShown) {
|
|
857
856
|
this._reloadWindowShown = true;
|
|
858
857
|
dialogService.confirm({
|
|
859
858
|
type: Severity.Error,
|
|
860
|
-
message: ( localize(
|
|
861
|
-
primaryButton: ( localize(
|
|
859
|
+
message: ( localize(11952, "Cannot reconnect. Please reload the window.")),
|
|
860
|
+
primaryButton: ( localize(11953, "&&Reload Window"))
|
|
862
861
|
}).then(result => {
|
|
863
862
|
if (result.confirmed) {
|
|
864
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
|
+
11954,
|
|
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(11955, "&&Allow")),
|
|
66
66
|
run: () => ConnectionChoice.Allow
|
|
67
67
|
}, {
|
|
68
|
-
label: ( localize(
|
|
68
|
+
label: ( localize(11956, "&&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(11957, "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(11958, "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
|
+
11959,
|
|
121
121
|
"You are connected to an OS version that is unsupported by {0}.",
|
|
122
122
|
this.productService.nameLong
|
|
123
123
|
)),
|
|
@@ -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(11993, "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(11994, "Show Remote Menu")),
|
|
202
202
|
f1: true,
|
|
203
203
|
keybinding: {
|
|
204
204
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -214,7 +214,7 @@ 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(11995, "Close Remote Connection")),
|
|
218
218
|
f1: true,
|
|
219
219
|
precondition: ( ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext))
|
|
220
220
|
});
|
|
@@ -229,7 +229,7 @@ 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(11996, "Close Re&&mote Connection"))
|
|
233
233
|
},
|
|
234
234
|
order: 3.5
|
|
235
235
|
});
|
|
@@ -241,7 +241,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
241
241
|
super({
|
|
242
242
|
id: RemoteStatusIndicator_1.INSTALL_REMOTE_EXTENSIONS_ID,
|
|
243
243
|
category,
|
|
244
|
-
title: ( localize2(
|
|
244
|
+
title: ( localize2(11997, "Install Remote Development Extensions")),
|
|
245
245
|
f1: true
|
|
246
246
|
});
|
|
247
247
|
this.run = (accessor, input) => {
|
|
@@ -456,18 +456,18 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
456
456
|
const hostLabel = this.labelService.getHostLabel(Schemas.vscodeRemote, this.remoteAuthority) || this.remoteAuthority;
|
|
457
457
|
switch (this.connectionState) {
|
|
458
458
|
case "initializing":
|
|
459
|
-
this.renderRemoteStatusIndicator(( localize(
|
|
459
|
+
this.renderRemoteStatusIndicator(( localize(11998, "Opening Remote...")), ( localize(11998, "Opening Remote...")), undefined, true );
|
|
460
460
|
break;
|
|
461
461
|
case "reconnecting":
|
|
462
462
|
this.renderRemoteStatusIndicator(`${( localize(
|
|
463
|
-
|
|
463
|
+
11999,
|
|
464
464
|
"Reconnecting to {0}...",
|
|
465
465
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
466
466
|
))}`, undefined, undefined, true );
|
|
467
467
|
break;
|
|
468
468
|
case "disconnected":
|
|
469
469
|
this.renderRemoteStatusIndicator(`$(alert) ${( localize(
|
|
470
|
-
|
|
470
|
+
12000,
|
|
471
471
|
"Disconnected from {0}",
|
|
472
472
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
473
473
|
))}`);
|
|
@@ -482,7 +482,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
482
482
|
if (hostNameTooltip) {
|
|
483
483
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
484
484
|
} else {
|
|
485
|
-
tooltip.appendText(( localize(
|
|
485
|
+
tooltip.appendText(( localize(12001, "Editing on {0}", hostLabel)));
|
|
486
486
|
}
|
|
487
487
|
this.renderRemoteStatusIndicator(
|
|
488
488
|
`$(remote) ${truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)}`,
|
|
@@ -509,12 +509,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
509
509
|
if (hostNameTooltip) {
|
|
510
510
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
511
511
|
} else {
|
|
512
|
-
tooltip.appendText(( localize(
|
|
512
|
+
tooltip.appendText(( localize(12002, "Editing on {0}", workspaceLabel)));
|
|
513
513
|
}
|
|
514
514
|
if (!isWeb || this.remoteAuthority) {
|
|
515
515
|
tooltip.appendMarkdown("\n\n");
|
|
516
516
|
tooltip.appendMarkdown(( localize(
|
|
517
|
-
|
|
517
|
+
12003,
|
|
518
518
|
"Some [features are not available]({0}) for resources located on a virtual file system.",
|
|
519
519
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
520
520
|
)));
|
|
@@ -526,7 +526,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
526
526
|
return;
|
|
527
527
|
}
|
|
528
528
|
}
|
|
529
|
-
this.renderRemoteStatusIndicator(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, ( localize(
|
|
529
|
+
this.renderRemoteStatusIndicator(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, ( localize(12004, "Open a Remote Window")));
|
|
530
530
|
return;
|
|
531
531
|
}
|
|
532
532
|
renderRemoteStatusIndicator(initialText, initialTooltip, command, showProgress) {
|
|
@@ -536,7 +536,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
536
536
|
ariaLabel
|
|
537
537
|
} = this.withNetworkStatus(initialText, initialTooltip, showProgress);
|
|
538
538
|
const properties = {
|
|
539
|
-
name: ( localize(
|
|
539
|
+
name: ( localize(12005, "Remote Host")),
|
|
540
540
|
kind: this.networkState === "offline" ? "offline" : text !== RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL ? "remote" : undefined,
|
|
541
541
|
ariaLabel,
|
|
542
542
|
text,
|
|
@@ -569,7 +569,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
569
569
|
case "offline":
|
|
570
570
|
{
|
|
571
571
|
const offlineMessage = ( localize(
|
|
572
|
-
|
|
572
|
+
12006,
|
|
573
573
|
"Network appears to be offline, certain features might be unavailable."
|
|
574
574
|
));
|
|
575
575
|
text = textWithAlert();
|
|
@@ -580,7 +580,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
580
580
|
case "high-latency":
|
|
581
581
|
text = textWithAlert();
|
|
582
582
|
tooltip = this.appendTooltipLine(tooltip, ( localize(
|
|
583
|
-
|
|
583
|
+
12007,
|
|
584
584
|
"Network appears to have high latency ({0}ms last, {1}ms average), certain features may be slow to respond.",
|
|
585
585
|
remoteConnectionLatencyMeasurer.latency?.current?.toFixed(2),
|
|
586
586
|
remoteConnectionLatencyMeasurer.latency?.average?.toFixed(2)
|
|
@@ -628,12 +628,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
628
628
|
} = await this.dialogService.confirm({
|
|
629
629
|
type: Severity.Error,
|
|
630
630
|
message: ( localize(
|
|
631
|
-
|
|
631
|
+
12008,
|
|
632
632
|
"An error occurred while setting up {0}. Would you like to try again?",
|
|
633
633
|
remoteLabel
|
|
634
634
|
)),
|
|
635
635
|
detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
|
|
636
|
-
primaryButton: ( localize(
|
|
636
|
+
primaryButton: ( localize(12009, "Retry"))
|
|
637
637
|
});
|
|
638
638
|
if (confirmed) {
|
|
639
639
|
return this.installExtension(extensionId, remoteLabel);
|
|
@@ -724,7 +724,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
724
724
|
const label = metadata.startConnectLabel;
|
|
725
725
|
const buttons = [{
|
|
726
726
|
iconClass: ThemeIcon.asClassName(infoIcon),
|
|
727
|
-
tooltip: ( localize(
|
|
727
|
+
tooltip: ( localize(12010, "Learn More"))
|
|
728
728
|
}];
|
|
729
729
|
notInstalledItems.push({
|
|
730
730
|
type: "item",
|
|
@@ -736,7 +736,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
736
736
|
}
|
|
737
737
|
items.push({
|
|
738
738
|
type: "separator",
|
|
739
|
-
label: ( localize(
|
|
739
|
+
label: ( localize(12011, "Install"))
|
|
740
740
|
});
|
|
741
741
|
items.push(...notInstalledItems);
|
|
742
742
|
}
|
|
@@ -749,20 +749,20 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
749
749
|
items.push({
|
|
750
750
|
type: "item",
|
|
751
751
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
752
|
-
label: ( localize(
|
|
752
|
+
label: ( localize(12012, "Close Remote Connection"))
|
|
753
753
|
});
|
|
754
754
|
if (this.connectionState === "disconnected") {
|
|
755
755
|
items.push({
|
|
756
756
|
type: "item",
|
|
757
757
|
id: ReloadWindowAction.ID,
|
|
758
|
-
label: ( localize(
|
|
758
|
+
label: ( localize(12013, "Reload Window"))
|
|
759
759
|
});
|
|
760
760
|
}
|
|
761
761
|
} else if (this.virtualWorkspaceLocation) {
|
|
762
762
|
items.push({
|
|
763
763
|
type: "item",
|
|
764
764
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
765
|
-
label: ( localize(
|
|
765
|
+
label: ( localize(12014, "Close Remote Workspace"))
|
|
766
766
|
});
|
|
767
767
|
}
|
|
768
768
|
}
|
|
@@ -775,7 +775,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
775
775
|
const quickPick = disposables.add(this.quickInputService.createQuickPick({
|
|
776
776
|
useSeparators: true
|
|
777
777
|
}));
|
|
778
|
-
quickPick.placeholder = ( localize(
|
|
778
|
+
quickPick.placeholder = ( localize(12015, "Select an option to open a Remote Window"));
|
|
779
779
|
quickPick.items = computeItems();
|
|
780
780
|
quickPick.sortByLabel = false;
|
|
781
781
|
quickPick.canSelectMany = false;
|
|
@@ -787,7 +787,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
787
787
|
if (remoteExtension) {
|
|
788
788
|
quickPick.items = [];
|
|
789
789
|
quickPick.busy = true;
|
|
790
|
-
quickPick.placeholder = ( localize(
|
|
790
|
+
quickPick.placeholder = ( localize(12016, "Installing extension... "));
|
|
791
791
|
try {
|
|
792
792
|
await this.installExtension(remoteExtension.id, selectedItems[0].label);
|
|
793
793
|
} catch (error) {
|
|
@@ -836,7 +836,7 @@ RemoteStatusIndicator = RemoteStatusIndicator_1 = ( __decorate([( __param(0, ISt
|
|
|
836
836
|
"workbench.remoteIndicator.showExtensionRecommendations": {
|
|
837
837
|
type: "boolean",
|
|
838
838
|
markdownDescription: ( localize(
|
|
839
|
-
|
|
839
|
+
12017,
|
|
840
840
|
"When enabled, remote extensions recommendations will be shown in the Remote Indicator menu."
|
|
841
841
|
)),
|
|
842
842
|
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(12018, "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(12019, "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(12020, "Private")),
|
|
37
37
|
themeIcon: "lock"
|
|
38
38
|
}, {
|
|
39
39
|
id: "public",
|
|
40
|
-
label: ( localize(
|
|
40
|
+
label: ( localize(12021, "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(12081, "Workspace does not exist")),
|
|
111
|
+
detail: ( localize(12082, "Please select another workspace to open.")),
|
|
112
|
+
primaryButton: ( localize(12083, "&&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(12084, "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(12085, "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
|
+
12086,
|
|
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
|
+
12087,
|
|
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(12088, "Remote")),
|
|
175
175
|
type: "object",
|
|
176
176
|
properties: {
|
|
177
177
|
"remote.extensionKind": {
|
|
178
178
|
type: "object",
|
|
179
179
|
markdownDescription: ( localize(
|
|
180
|
-
|
|
180
|
+
12089,
|
|
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(12090, "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
|
+
12091,
|
|
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
|
+
12092,
|
|
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
|
+
12093,
|
|
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
|
+
12094,
|
|
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
|
+
12095,
|
|
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
|
+
12096,
|
|
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
|
+
12097,
|
|
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
|
+
12098,
|
|
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(12099, "Shows a notification when a port is automatically forwarded.")), ( localize(
|
|
268
|
+
12100,
|
|
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
|
+
12101,
|
|
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
|
+
12102,
|
|
275
275
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
276
276
|
)), ( localize(
|
|
277
|
-
|
|
277
|
+
12103,
|
|
278
278
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
279
|
-
)), ( localize(
|
|
279
|
+
)), ( localize(12104, "This port will not be automatically forwarded."))],
|
|
280
280
|
description: ( localize(
|
|
281
|
-
|
|
281
|
+
12105,
|
|
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
|
+
12106,
|
|
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(12107, "Label that will be shown in the UI for this port.")),
|
|
297
|
+
default: ( localize(12108, "Application"))
|
|
298
298
|
},
|
|
299
299
|
"requireLocalPort": {
|
|
300
300
|
type: "boolean",
|
|
301
301
|
markdownDescription: ( localize(
|
|
302
|
-
|
|
302
|
+
12109,
|
|
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(12110, "The protocol to use when forwarding this port."))
|
|
311
311
|
}
|
|
312
312
|
},
|
|
313
313
|
default: {
|
|
314
|
-
"label": ( localize(
|
|
314
|
+
"label": ( localize(12108, "Application")),
|
|
315
315
|
"onAutoForward": "notify"
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
},
|
|
319
319
|
markdownDescription: ( localize(
|
|
320
|
-
|
|
320
|
+
12111,
|
|
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
|
+
12112,
|
|
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(12099, "Shows a notification when a port is automatically forwarded.")), ( localize(
|
|
352
|
+
12100,
|
|
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
|
+
12102,
|
|
356
356
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
357
357
|
)), ( localize(
|
|
358
|
-
|
|
358
|
+
12103,
|
|
359
359
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
360
|
-
)), ( localize(
|
|
360
|
+
)), ( localize(12104, "This port will not be automatically forwarded."))],
|
|
361
361
|
description: ( localize(
|
|
362
|
-
|
|
362
|
+
12105,
|
|
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
|
+
12106,
|
|
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(12107, "Label that will be shown in the UI for this port.")),
|
|
378
|
+
default: ( localize(12108, "Application"))
|
|
379
379
|
},
|
|
380
380
|
"requireLocalPort": {
|
|
381
381
|
type: "boolean",
|
|
382
382
|
markdownDescription: ( localize(
|
|
383
|
-
|
|
383
|
+
12109,
|
|
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(12110, "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
|
+
12113,
|
|
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
|
+
12114,
|
|
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
|
+
12115,
|
|
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(12116, "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(16247, "An unexpected error occurred that requires a reload of this page.")),
|
|
59
59
|
detail: ( localize(
|
|
60
|
-
|
|
60
|
+
16248,
|
|
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(16249, "&&Reload")),
|
|
66
66
|
run: () => this._hostService.reload()
|
|
67
67
|
}]
|
|
68
68
|
});
|
|
@@ -17,6 +17,7 @@ class RemoteExtensionEnvironmentChannelClient {
|
|
|
17
17
|
pid: data.pid,
|
|
18
18
|
connectionToken: data.connectionToken,
|
|
19
19
|
appRoot: URI.revive(data.appRoot),
|
|
20
|
+
execPath: data.execPath,
|
|
20
21
|
tmpDir: URI.revive(data.tmpDir),
|
|
21
22
|
settingsPath: URI.revive(data.settingsPath),
|
|
22
23
|
mcpResource: URI.revive(data.mcpResource),
|