@codingame/monaco-vscode-remote-agent-service-override 22.1.8 → 23.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 +11 -11
- 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.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +30 -29
- 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": "23.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,16 +15,16 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common": "
|
|
19
|
-
"@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "
|
|
20
|
-
"@codingame/monaco-vscode-
|
|
21
|
-
"@codingame/monaco-vscode-
|
|
22
|
-
"@codingame/monaco-vscode-
|
|
23
|
-
"@codingame/monaco-vscode-
|
|
24
|
-
"@codingame/monaco-vscode-
|
|
25
|
-
"@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "
|
|
26
|
-
"@codingame/monaco-vscode-api": "
|
|
27
|
-
"@codingame/monaco-vscode-environment-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-158b9837-fc78-5d9c-86f5-9134e4358643-common": "23.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-1b4486de-4fe4-59c4-9e6d-34f265ff6625-common": "23.0.0",
|
|
20
|
+
"@codingame/monaco-vscode-2a04f0cd-b806-5886-909e-418183d32279-common": "23.0.0",
|
|
21
|
+
"@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "23.0.0",
|
|
22
|
+
"@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "23.0.0",
|
|
23
|
+
"@codingame/monaco-vscode-4bf376c2-03c7-58cb-8303-c67aeefa3d3d-common": "23.0.0",
|
|
24
|
+
"@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common": "23.0.0",
|
|
25
|
+
"@codingame/monaco-vscode-abed5a84-8a82-5f84-9412-88a736235bae-common": "23.0.0",
|
|
26
|
+
"@codingame/monaco-vscode-api": "23.0.0",
|
|
27
|
+
"@codingame/monaco-vscode-environment-service-override": "23.0.0"
|
|
28
28
|
},
|
|
29
29
|
"main": "index.js",
|
|
30
30
|
"module": "index.js",
|
|
@@ -29,7 +29,7 @@ let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
|
29
29
|
this.switchRemoteMenu = MenuId.for('workbench.remote.menu.switchRemoteMenu');
|
|
30
30
|
this._register(MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
31
31
|
submenu: this.switchRemoteMenu,
|
|
32
|
-
title: ( localize(
|
|
32
|
+
title: ( localize(10041, "Switch Remote")),
|
|
33
33
|
group: 'navigation',
|
|
34
34
|
when: ( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)),
|
|
35
35
|
order: 1,
|
|
@@ -121,27 +121,27 @@ class HelpModel extends Disposable {
|
|
|
121
121
|
const getStarted = this.viewModel.helpInformation.filter(info => info.getStarted);
|
|
122
122
|
if (getStarted.length) {
|
|
123
123
|
const helpItemValues = ( getStarted.map((info) => this.createHelpItemValue(info, 'getStarted')));
|
|
124
|
-
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( new GetStartedHelpItem(getStartedIcon, ( localize(
|
|
124
|
+
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( new GetStartedHelpItem(getStartedIcon, ( localize(10042, "Get Started")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService, this.commandService));
|
|
125
125
|
getStartedHelpItem.values = helpItemValues;
|
|
126
126
|
helpItems.push(getStartedHelpItem);
|
|
127
127
|
}
|
|
128
128
|
const documentation = this.viewModel.helpInformation.filter(info => info.documentation);
|
|
129
129
|
if (documentation.length) {
|
|
130
130
|
const helpItemValues = ( documentation.map((info) => this.createHelpItemValue(info, 'documentation')));
|
|
131
|
-
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( new HelpItem(documentationIcon, ( localize(
|
|
131
|
+
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( new HelpItem(documentationIcon, ( localize(10043, "Read Documentation")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
132
132
|
documentationHelpItem.values = helpItemValues;
|
|
133
133
|
helpItems.push(documentationHelpItem);
|
|
134
134
|
}
|
|
135
135
|
const issues = this.viewModel.helpInformation.filter(info => info.issues);
|
|
136
136
|
if (issues.length) {
|
|
137
137
|
const helpItemValues = ( issues.map((info) => this.createHelpItemValue(info, 'issues')));
|
|
138
|
-
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( new HelpItem(reviewIssuesIcon, ( localize(
|
|
138
|
+
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( new HelpItem(reviewIssuesIcon, ( localize(10044, "Review Issues")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
139
139
|
reviewIssuesHelpItem.values = helpItemValues;
|
|
140
140
|
helpItems.push(reviewIssuesHelpItem);
|
|
141
141
|
}
|
|
142
142
|
if (helpItems.length) {
|
|
143
143
|
const helpItemValues = ( this.viewModel.helpInformation.map(info => this.createHelpItemValue(info, 'reportIssue')));
|
|
144
|
-
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( new IssueReporterItem(reportIssuesIcon, ( localize(
|
|
144
|
+
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( new IssueReporterItem(reportIssuesIcon, ( localize(10045, "Report Issue")), helpItemValues, this.quickInputService, this.environmentService, this.commandService, this.openerService, this.remoteExplorerService, this.workspaceContextService));
|
|
145
145
|
issueReporterItem.values = helpItemValues;
|
|
146
146
|
helpItems.push(issueReporterItem);
|
|
147
147
|
}
|
|
@@ -258,7 +258,7 @@ class HelpItemBase {
|
|
|
258
258
|
if (this.values.length > 1) {
|
|
259
259
|
const actions = await this.getActions();
|
|
260
260
|
if (actions.length) {
|
|
261
|
-
const action = await this.quickInputService.pick(actions, { placeHolder: ( localize(
|
|
261
|
+
const action = await this.quickInputService.pick(actions, { placeHolder: ( localize(10046, "Select url to open")) });
|
|
262
262
|
if (action) {
|
|
263
263
|
await this.takeAction(action.extensionDescription, action.url);
|
|
264
264
|
}
|
|
@@ -319,7 +319,7 @@ class IssueReporterItem extends HelpItemBase {
|
|
|
319
319
|
}
|
|
320
320
|
let HelpPanel = class HelpPanel extends ViewPane {
|
|
321
321
|
static { this.ID = '~remote.helpPanel'; }
|
|
322
|
-
static { this.TITLE = ( localize2(
|
|
322
|
+
static { this.TITLE = ( localize2(10047, "Help and feedback")); }
|
|
323
323
|
constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, remoteExplorerService, environmentService, themeService, hoverService, workspaceContextService, walkthroughsService) {
|
|
324
324
|
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService);
|
|
325
325
|
this.viewModel = viewModel;
|
|
@@ -341,7 +341,7 @@ let HelpPanel = class HelpPanel extends ViewPane {
|
|
|
341
341
|
getAriaLabel: (item) => {
|
|
342
342
|
return item.label;
|
|
343
343
|
},
|
|
344
|
-
getWidgetAriaLabel: () => ( localize(
|
|
344
|
+
getWidgetAriaLabel: () => ( localize(10048, "Remote Help"))
|
|
345
345
|
}
|
|
346
346
|
});
|
|
347
347
|
const model = this._register(( new HelpModel(
|
|
@@ -470,7 +470,7 @@ let RemoteViewPaneContainer = class RemoteViewPaneContainer extends FilterViewPa
|
|
|
470
470
|
this.remoteExplorerService.targetType = isStringArray(viewDescriptor.remoteAuthority) ? viewDescriptor.remoteAuthority : [viewDescriptor.remoteAuthority];
|
|
471
471
|
}
|
|
472
472
|
getTitle() {
|
|
473
|
-
const title = ( localize(
|
|
473
|
+
const title = ( localize(10049, "Remote Explorer"));
|
|
474
474
|
return title;
|
|
475
475
|
}
|
|
476
476
|
};
|
|
@@ -490,7 +490,7 @@ RemoteViewPaneContainer = ( __decorate([
|
|
|
490
490
|
], RemoteViewPaneContainer));
|
|
491
491
|
( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
|
|
492
492
|
id: VIEWLET_ID,
|
|
493
|
-
title: ( localize2(
|
|
493
|
+
title: ( localize2(10049, "Remote Explorer")),
|
|
494
494
|
ctorDescriptor: ( new SyncDescriptor(RemoteViewPaneContainer)),
|
|
495
495
|
hideIfEmpty: true,
|
|
496
496
|
viewOrderDelegate: {
|
|
@@ -596,10 +596,10 @@ class ReconnectionTimer {
|
|
|
596
596
|
}
|
|
597
597
|
const remainingTime = Math.ceil(remainingTimeMs / 1000);
|
|
598
598
|
if (remainingTime === 1) {
|
|
599
|
-
this._parent.report(( localize(
|
|
599
|
+
this._parent.report(( localize(10050, "Attempting to reconnect in {0} second...", remainingTime)));
|
|
600
600
|
}
|
|
601
601
|
else {
|
|
602
|
-
this._parent.report(( localize(
|
|
602
|
+
this._parent.report(( localize(10051, "Attempting to reconnect in {0} seconds...", remainingTime)));
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
605
|
}
|
|
@@ -648,13 +648,13 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
648
648
|
let lastIncomingDataTime = 0;
|
|
649
649
|
let reconnectionAttempts = 0;
|
|
650
650
|
const reconnectButton = {
|
|
651
|
-
label: ( localize(
|
|
651
|
+
label: ( localize(10052, "Reconnect Now")),
|
|
652
652
|
callback: () => {
|
|
653
653
|
reconnectWaitEvent?.skipWait();
|
|
654
654
|
}
|
|
655
655
|
};
|
|
656
656
|
const reloadButton = {
|
|
657
|
-
label: ( localize(
|
|
657
|
+
label: ( localize(10053, "Reload Window")),
|
|
658
658
|
callback: () => {
|
|
659
659
|
telemetryService.publicLog2('remoteReconnectionReload', {
|
|
660
660
|
remoteName: getRemoteName(environmentService.remoteAuthority),
|
|
@@ -681,7 +681,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
681
681
|
if (!visibleProgress) {
|
|
682
682
|
visibleProgress = showProgress(null, [reconnectButton, reloadButton]);
|
|
683
683
|
}
|
|
684
|
-
visibleProgress.report(( localize(
|
|
684
|
+
visibleProgress.report(( localize(10054, "Connection Lost")));
|
|
685
685
|
}
|
|
686
686
|
break;
|
|
687
687
|
case PersistentConnectionEventType.ReconnectionWait:
|
|
@@ -703,7 +703,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
703
703
|
});
|
|
704
704
|
if (visibleProgress || e.millisSinceLastIncomingData > DISCONNECT_PROMPT_TIME) {
|
|
705
705
|
visibleProgress = showProgress(null, [reloadButton]);
|
|
706
|
-
visibleProgress.report(( localize(
|
|
706
|
+
visibleProgress.report(( localize(10055, "Disconnected. Attempting to reconnect...")));
|
|
707
707
|
disposableListener.value = quickInputService.onShow(() => {
|
|
708
708
|
if (visibleProgress && visibleProgress.location === ProgressLocation.Dialog) {
|
|
709
709
|
visibleProgress = showProgress(ProgressLocation.Notification, [reloadButton], visibleProgress.lastReport);
|
|
@@ -731,8 +731,8 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
731
731
|
this._reloadWindowShown = true;
|
|
732
732
|
dialogService.confirm({
|
|
733
733
|
type: Severity.Error,
|
|
734
|
-
message: ( localize(
|
|
735
|
-
primaryButton: ( localize(
|
|
734
|
+
message: ( localize(10056, "Cannot reconnect. Please reload the window.")),
|
|
735
|
+
primaryButton: ( localize(10057, "&&Reload Window"))
|
|
736
736
|
}).then(result => {
|
|
737
737
|
if (result.confirmed) {
|
|
738
738
|
commandService.executeCommand(ReloadWindowAction.ID);
|
|
@@ -44,17 +44,17 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
44
44
|
const { result, checkboxChecked } = await this.dialogService.prompt({
|
|
45
45
|
type: Severity.Warning,
|
|
46
46
|
message: ( localize(
|
|
47
|
-
|
|
47
|
+
10058,
|
|
48
48
|
"You are about to connect to an OS version that is unsupported by {0}.",
|
|
49
49
|
this.productService.nameLong
|
|
50
50
|
)),
|
|
51
51
|
buttons: [
|
|
52
52
|
{
|
|
53
|
-
label: ( localize(
|
|
53
|
+
label: ( localize(10059, "&&Allow")),
|
|
54
54
|
run: () => ConnectionChoice.Allow
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
label: ( localize(
|
|
57
|
+
label: ( localize(10060, "&&Learn More")),
|
|
58
58
|
run: async () => { await this.openerService.open('https://aka.ms/vscode-remote/faq/old-linux'); return ConnectionChoice.LearnMore; }
|
|
59
59
|
}
|
|
60
60
|
],
|
|
@@ -62,7 +62,7 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
62
62
|
run: () => ConnectionChoice.Cancel
|
|
63
63
|
},
|
|
64
64
|
checkbox: {
|
|
65
|
-
label: ( localize(
|
|
65
|
+
label: ( localize(10061, "Do not show again")),
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
if (result === ConnectionChoice.LearnMore) {
|
|
@@ -88,14 +88,14 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
88
88
|
if (shouldShowBanner) {
|
|
89
89
|
const actions = [
|
|
90
90
|
{
|
|
91
|
-
label: ( localize(
|
|
91
|
+
label: ( localize(10062, "Learn More")),
|
|
92
92
|
href: 'https://aka.ms/vscode-remote/faq/old-linux'
|
|
93
93
|
}
|
|
94
94
|
];
|
|
95
95
|
this.bannerService.show({
|
|
96
96
|
id: 'unsupportedGlibcWarning.banner',
|
|
97
97
|
message: ( localize(
|
|
98
|
-
|
|
98
|
+
10063,
|
|
99
99
|
"You are connected to an OS version that is unsupported by {0}.",
|
|
100
100
|
this.productService.nameLong
|
|
101
101
|
)),
|
|
@@ -50,6 +50,7 @@ export declare class RemoteStatusIndicator extends Disposable implements IWorkbe
|
|
|
50
50
|
private static readonly CLOSE_REMOTE_COMMAND_ID;
|
|
51
51
|
private static readonly SHOW_CLOSE_REMOTE_COMMAND_ID;
|
|
52
52
|
private static readonly INSTALL_REMOTE_EXTENSIONS_ID;
|
|
53
|
+
private static readonly DEFAULT_REMOTE_STATUS_LABEL;
|
|
53
54
|
private static readonly REMOTE_STATUS_LABEL_MAX_LENGTH;
|
|
54
55
|
private static readonly REMOTE_CONNECTION_LATENCY_SCHEDULER_DELAY;
|
|
55
56
|
private static readonly REMOTE_CONNECTION_LATENCY_SCHEDULER_FIRST_RUN_DELAY;
|
|
@@ -42,7 +42,7 @@ import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform
|
|
|
42
42
|
import { DomEmitter } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/event';
|
|
43
43
|
import { ExtensionIdentifier } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
|
|
44
44
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
45
|
-
import { infoIcon } from '@codingame/monaco-vscode-
|
|
45
|
+
import { infoIcon } from '@codingame/monaco-vscode-2a04f0cd-b806-5886-909e-418183d32279-common/vscode/vs/workbench/contrib/extensions/browser/extensionsIcons';
|
|
46
46
|
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
47
47
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
48
48
|
import { mainWindow } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/window';
|
|
@@ -64,6 +64,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
64
64
|
static { this.CLOSE_REMOTE_COMMAND_ID = 'workbench.action.remote.close'; }
|
|
65
65
|
static { this.SHOW_CLOSE_REMOTE_COMMAND_ID = !isWeb; }
|
|
66
66
|
static { this.INSTALL_REMOTE_EXTENSIONS_ID = 'workbench.action.remote.extensions'; }
|
|
67
|
+
static { this.DEFAULT_REMOTE_STATUS_LABEL = '$(remote)'; }
|
|
67
68
|
static { this.REMOTE_STATUS_LABEL_MAX_LENGTH = 40; }
|
|
68
69
|
static { this.REMOTE_CONNECTION_LATENCY_SCHEDULER_DELAY = 60 * 1000; }
|
|
69
70
|
static { this.REMOTE_CONNECTION_LATENCY_SCHEDULER_FIRST_RUN_DELAY = 10 * 1000; }
|
|
@@ -141,14 +142,14 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
141
142
|
this.updateRemoteStatusIndicator();
|
|
142
143
|
}
|
|
143
144
|
registerActions() {
|
|
144
|
-
const category = ( localize2(
|
|
145
|
+
const category = ( localize2(10097, "Remote"));
|
|
145
146
|
const that = this;
|
|
146
147
|
this._register(registerAction2(class extends Action2 {
|
|
147
148
|
constructor() {
|
|
148
149
|
super({
|
|
149
150
|
id: RemoteStatusIndicator_1.REMOTE_ACTIONS_COMMAND_ID,
|
|
150
151
|
category,
|
|
151
|
-
title: ( localize2(
|
|
152
|
+
title: ( localize2(10098, "Show Remote Menu")),
|
|
152
153
|
f1: true,
|
|
153
154
|
keybinding: {
|
|
154
155
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -164,7 +165,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
164
165
|
super({
|
|
165
166
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
166
167
|
category,
|
|
167
|
-
title: ( localize2(
|
|
168
|
+
title: ( localize2(10099, "Close Remote Connection")),
|
|
168
169
|
f1: true,
|
|
169
170
|
precondition: ( ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext))
|
|
170
171
|
});
|
|
@@ -176,7 +177,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
176
177
|
group: '6_close',
|
|
177
178
|
command: {
|
|
178
179
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
179
|
-
title: ( localize(
|
|
180
|
+
title: ( localize(10100, "Close Re&&mote Connection"))
|
|
180
181
|
},
|
|
181
182
|
order: 3.5
|
|
182
183
|
});
|
|
@@ -188,7 +189,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
188
189
|
super({
|
|
189
190
|
id: RemoteStatusIndicator_1.INSTALL_REMOTE_EXTENSIONS_ID,
|
|
190
191
|
category,
|
|
191
|
-
title: ( localize2(
|
|
192
|
+
title: ( localize2(10101, "Install Remote Development Extensions")),
|
|
192
193
|
f1: true
|
|
193
194
|
});
|
|
194
195
|
this.run = (accessor, input) => {
|
|
@@ -396,18 +397,18 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
396
397
|
const hostLabel = this.labelService.getHostLabel(Schemas.vscodeRemote, this.remoteAuthority) || this.remoteAuthority;
|
|
397
398
|
switch (this.connectionState) {
|
|
398
399
|
case 'initializing':
|
|
399
|
-
this.renderRemoteStatusIndicator(( localize(
|
|
400
|
+
this.renderRemoteStatusIndicator(( localize(10102, "Opening Remote...")), ( localize(10102, "Opening Remote...")), undefined, true );
|
|
400
401
|
break;
|
|
401
402
|
case 'reconnecting':
|
|
402
403
|
this.renderRemoteStatusIndicator(`${( localize(
|
|
403
|
-
|
|
404
|
+
10103,
|
|
404
405
|
"Reconnecting to {0}...",
|
|
405
406
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
406
407
|
))}`, undefined, undefined, true );
|
|
407
408
|
break;
|
|
408
409
|
case 'disconnected':
|
|
409
410
|
this.renderRemoteStatusIndicator(`$(alert) ${( localize(
|
|
410
|
-
|
|
411
|
+
10104,
|
|
411
412
|
"Disconnected from {0}",
|
|
412
413
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
413
414
|
))}`);
|
|
@@ -419,7 +420,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
419
420
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
420
421
|
}
|
|
421
422
|
else {
|
|
422
|
-
tooltip.appendText(( localize(
|
|
423
|
+
tooltip.appendText(( localize(10105, "Editing on {0}", hostLabel)));
|
|
423
424
|
}
|
|
424
425
|
this.renderRemoteStatusIndicator(`$(remote) ${truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)}`, tooltip);
|
|
425
426
|
}
|
|
@@ -435,12 +436,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
435
436
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
436
437
|
}
|
|
437
438
|
else {
|
|
438
|
-
tooltip.appendText(( localize(
|
|
439
|
+
tooltip.appendText(( localize(10106, "Editing on {0}", workspaceLabel)));
|
|
439
440
|
}
|
|
440
441
|
if (!isWeb || this.remoteAuthority) {
|
|
441
442
|
tooltip.appendMarkdown('\n\n');
|
|
442
443
|
tooltip.appendMarkdown(( localize(
|
|
443
|
-
|
|
444
|
+
10107,
|
|
444
445
|
"Some [features are not available]({0}) for resources located on a virtual file system.",
|
|
445
446
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
446
447
|
)));
|
|
@@ -449,14 +450,14 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
449
450
|
return;
|
|
450
451
|
}
|
|
451
452
|
}
|
|
452
|
-
this.renderRemoteStatusIndicator(
|
|
453
|
+
this.renderRemoteStatusIndicator(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, ( localize(10108, "Open a Remote Window")));
|
|
453
454
|
return;
|
|
454
455
|
}
|
|
455
456
|
renderRemoteStatusIndicator(initialText, initialTooltip, command, showProgress) {
|
|
456
457
|
const { text, tooltip, ariaLabel } = this.withNetworkStatus(initialText, initialTooltip, showProgress);
|
|
457
458
|
const properties = {
|
|
458
|
-
name: ( localize(
|
|
459
|
-
kind: this.networkState === 'offline' ? 'offline' : 'remote',
|
|
459
|
+
name: ( localize(10109, "Remote Host")),
|
|
460
|
+
kind: this.networkState === 'offline' ? 'offline' : text !== RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL ? 'remote' : undefined,
|
|
460
461
|
ariaLabel,
|
|
461
462
|
text,
|
|
462
463
|
showProgress,
|
|
@@ -475,15 +476,15 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
475
476
|
let tooltip = initialTooltip;
|
|
476
477
|
let ariaLabel = getCodiconAriaLabel(text);
|
|
477
478
|
function textWithAlert() {
|
|
478
|
-
if (!showProgress && initialText.startsWith(
|
|
479
|
-
return initialText.replace(
|
|
479
|
+
if (!showProgress && initialText.startsWith(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL)) {
|
|
480
|
+
return initialText.replace(RemoteStatusIndicator_1.DEFAULT_REMOTE_STATUS_LABEL, '$(alert)');
|
|
480
481
|
}
|
|
481
482
|
return initialText;
|
|
482
483
|
}
|
|
483
484
|
switch (this.networkState) {
|
|
484
485
|
case 'offline': {
|
|
485
486
|
const offlineMessage = ( localize(
|
|
486
|
-
|
|
487
|
+
10110,
|
|
487
488
|
"Network appears to be offline, certain features might be unavailable."
|
|
488
489
|
));
|
|
489
490
|
text = textWithAlert();
|
|
@@ -494,7 +495,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
494
495
|
case 'high-latency':
|
|
495
496
|
text = textWithAlert();
|
|
496
497
|
tooltip = this.appendTooltipLine(tooltip, ( localize(
|
|
497
|
-
|
|
498
|
+
10111,
|
|
498
499
|
"Network appears to have high latency ({0}ms last, {1}ms average), certain features may be slow to respond.",
|
|
499
500
|
remoteConnectionLatencyMeasurer.latency?.current?.toFixed(2),
|
|
500
501
|
remoteConnectionLatencyMeasurer.latency?.average?.toFixed(2)
|
|
@@ -530,12 +531,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
530
531
|
const { confirmed } = await this.dialogService.confirm({
|
|
531
532
|
type: Severity.Error,
|
|
532
533
|
message: ( localize(
|
|
533
|
-
|
|
534
|
+
10112,
|
|
534
535
|
"An error occurred while setting up {0}. Would you like to try again?",
|
|
535
536
|
remoteLabel
|
|
536
537
|
)),
|
|
537
538
|
detail: error && !isCancellationError(error) ? toErrorMessage(error) : undefined,
|
|
538
|
-
primaryButton: ( localize(
|
|
539
|
+
primaryButton: ( localize(10113, "Retry"))
|
|
539
540
|
});
|
|
540
541
|
if (confirmed) {
|
|
541
542
|
return this.installExtension(extensionId, remoteLabel);
|
|
@@ -625,13 +626,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
625
626
|
const label = metadata.startConnectLabel;
|
|
626
627
|
const buttons = [{
|
|
627
628
|
iconClass: ThemeIcon.asClassName(infoIcon),
|
|
628
|
-
tooltip: ( localize(
|
|
629
|
+
tooltip: ( localize(10114, "Learn More"))
|
|
629
630
|
}];
|
|
630
631
|
notInstalledItems.push({ type: 'item', id: metadata.id, label: label, buttons: buttons });
|
|
631
632
|
}
|
|
632
633
|
}
|
|
633
634
|
items.push({
|
|
634
|
-
type: 'separator', label: ( localize(
|
|
635
|
+
type: 'separator', label: ( localize(10115, 'Install'))
|
|
635
636
|
});
|
|
636
637
|
items.push(...notInstalledItems);
|
|
637
638
|
}
|
|
@@ -644,13 +645,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
644
645
|
items.push({
|
|
645
646
|
type: 'item',
|
|
646
647
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
647
|
-
label: ( localize(
|
|
648
|
+
label: ( localize(10116, 'Close Remote Connection'))
|
|
648
649
|
});
|
|
649
650
|
if (this.connectionState === 'disconnected') {
|
|
650
651
|
items.push({
|
|
651
652
|
type: 'item',
|
|
652
653
|
id: ReloadWindowAction.ID,
|
|
653
|
-
label: ( localize(
|
|
654
|
+
label: ( localize(10117, 'Reload Window'))
|
|
654
655
|
});
|
|
655
656
|
}
|
|
656
657
|
}
|
|
@@ -658,7 +659,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
658
659
|
items.push({
|
|
659
660
|
type: 'item',
|
|
660
661
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
661
|
-
label: ( localize(
|
|
662
|
+
label: ( localize(10118, 'Close Remote Workspace'))
|
|
662
663
|
});
|
|
663
664
|
}
|
|
664
665
|
}
|
|
@@ -669,7 +670,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
669
670
|
};
|
|
670
671
|
const disposables = ( new DisposableStore());
|
|
671
672
|
const quickPick = disposables.add(this.quickInputService.createQuickPick({ useSeparators: true }));
|
|
672
|
-
quickPick.placeholder = ( localize(
|
|
673
|
+
quickPick.placeholder = ( localize(10119, "Select an option to open a Remote Window"));
|
|
673
674
|
quickPick.items = computeItems();
|
|
674
675
|
quickPick.sortByLabel = false;
|
|
675
676
|
quickPick.canSelectMany = false;
|
|
@@ -681,7 +682,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
681
682
|
if (remoteExtension) {
|
|
682
683
|
quickPick.items = [];
|
|
683
684
|
quickPick.busy = true;
|
|
684
|
-
quickPick.placeholder = ( localize(
|
|
685
|
+
quickPick.placeholder = ( localize(10120, 'Installing extension... '));
|
|
685
686
|
try {
|
|
686
687
|
await this.installExtension(remoteExtension.id, selectedItems[0].label);
|
|
687
688
|
}
|
|
@@ -753,7 +754,7 @@ RemoteStatusIndicator = RemoteStatusIndicator_1 = ( __decorate([
|
|
|
753
754
|
'workbench.remoteIndicator.showExtensionRecommendations': {
|
|
754
755
|
type: 'boolean',
|
|
755
756
|
markdownDescription: ( localize(
|
|
756
|
-
|
|
757
|
+
10121,
|
|
757
758
|
"When enabled, remote extensions recommendations will be shown in the Remote Indicator menu."
|
|
758
759
|
)),
|
|
759
760
|
default: true
|
|
@@ -33,14 +33,14 @@ let RemoteStartEntry = class RemoteStartEntry extends Disposable {
|
|
|
33
33
|
this.registerListeners();
|
|
34
34
|
}
|
|
35
35
|
registerActions() {
|
|
36
|
-
const category = ( localize2(
|
|
36
|
+
const category = ( localize2(10122, "Remote"));
|
|
37
37
|
const startEntry = this;
|
|
38
38
|
this._register(registerAction2(class extends Action2 {
|
|
39
39
|
constructor() {
|
|
40
40
|
super({
|
|
41
41
|
id: RemoteStartEntry_1.REMOTE_WEB_START_ENTRY_ACTIONS_COMMAND_ID,
|
|
42
42
|
category,
|
|
43
|
-
title: ( localize2(
|
|
43
|
+
title: ( localize2(10123, "Show Remote Start Entry for web")),
|
|
44
44
|
f1: false
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -26,12 +26,12 @@ let TunnelFactoryContribution = class TunnelFactoryContribution extends Disposab
|
|
|
26
26
|
privacyOptions = [
|
|
27
27
|
{
|
|
28
28
|
id: 'private',
|
|
29
|
-
label: ( localize(
|
|
29
|
+
label: ( localize(10124, "Private")),
|
|
30
30
|
themeIcon: 'lock'
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
id: 'public',
|
|
34
|
-
label: ( localize(
|
|
34
|
+
label: ( localize(10125, "Public")),
|
|
35
35
|
themeIcon: 'eye'
|
|
36
36
|
}
|
|
37
37
|
];
|
|
@@ -103,9 +103,9 @@ let RemoteInvalidWorkspaceDetector = class RemoteInvalidWorkspaceDetector extend
|
|
|
103
103
|
}
|
|
104
104
|
const res = await this.dialogService.confirm({
|
|
105
105
|
type: 'warning',
|
|
106
|
-
message: ( localize(
|
|
107
|
-
detail: ( localize(
|
|
108
|
-
primaryButton: ( localize(
|
|
106
|
+
message: ( localize(10185, "Workspace does not exist")),
|
|
107
|
+
detail: ( localize(10186, "Please select another workspace to open.")),
|
|
108
|
+
primaryButton: ( localize(10187, "&&Open Workspace..."))
|
|
109
109
|
});
|
|
110
110
|
if (res.confirmed) {
|
|
111
111
|
if (workspace.configuration) {
|
|
@@ -132,7 +132,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
132
132
|
constructor() {
|
|
133
133
|
super({
|
|
134
134
|
id: 'workbench.action.triggerReconnect',
|
|
135
|
-
title: ( localize2(
|
|
135
|
+
title: ( localize2(10188, 'Connection: Trigger Reconnect')),
|
|
136
136
|
category: Categories.Developer,
|
|
137
137
|
f1: true,
|
|
138
138
|
});
|
|
@@ -145,7 +145,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
145
145
|
constructor() {
|
|
146
146
|
super({
|
|
147
147
|
id: 'workbench.action.pauseSocketWriting',
|
|
148
|
-
title: ( localize2(
|
|
148
|
+
title: ( localize2(10189, 'Connection: Pause socket writing')),
|
|
149
149
|
category: Categories.Developer,
|
|
150
150
|
f1: true,
|
|
151
151
|
});
|
|
@@ -165,11 +165,11 @@ const extensionKindSchema = {
|
|
|
165
165
|
],
|
|
166
166
|
enumDescriptions: [
|
|
167
167
|
( localize(
|
|
168
|
-
|
|
168
|
+
10190,
|
|
169
169
|
"UI extension kind. In a remote window, such extensions are enabled only when available on the local machine."
|
|
170
170
|
)),
|
|
171
171
|
( localize(
|
|
172
|
-
|
|
172
|
+
10191,
|
|
173
173
|
"Workspace extension kind. In a remote window, such extensions are enabled only when available on the remote."
|
|
174
174
|
))
|
|
175
175
|
],
|
|
@@ -177,13 +177,13 @@ const extensionKindSchema = {
|
|
|
177
177
|
( Registry.as(Extensions$1.Configuration))
|
|
178
178
|
.registerConfiguration({
|
|
179
179
|
id: 'remote',
|
|
180
|
-
title: ( localize(
|
|
180
|
+
title: ( localize(10192, "Remote")),
|
|
181
181
|
type: 'object',
|
|
182
182
|
properties: {
|
|
183
183
|
'remote.extensionKind': {
|
|
184
184
|
type: 'object',
|
|
185
185
|
markdownDescription: ( localize(
|
|
186
|
-
|
|
186
|
+
10193,
|
|
187
187
|
"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."
|
|
188
188
|
)),
|
|
189
189
|
patternProperties: {
|
|
@@ -198,13 +198,13 @@ const extensionKindSchema = {
|
|
|
198
198
|
},
|
|
199
199
|
'remote.restoreForwardedPorts': {
|
|
200
200
|
type: 'boolean',
|
|
201
|
-
markdownDescription: ( localize(
|
|
201
|
+
markdownDescription: ( localize(10194, "Restores the ports you forwarded in a workspace.")),
|
|
202
202
|
default: true
|
|
203
203
|
},
|
|
204
204
|
'remote.autoForwardPorts': {
|
|
205
205
|
type: 'boolean',
|
|
206
206
|
markdownDescription: ( localize(
|
|
207
|
-
|
|
207
|
+
10195,
|
|
208
208
|
"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}.",
|
|
209
209
|
'`#remote.autoForwardPortsSource#`'
|
|
210
210
|
)),
|
|
@@ -213,7 +213,7 @@ const extensionKindSchema = {
|
|
|
213
213
|
'remote.autoForwardPortsSource': {
|
|
214
214
|
type: 'string',
|
|
215
215
|
markdownDescription: ( localize(
|
|
216
|
-
|
|
216
|
+
10196,
|
|
217
217
|
"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.",
|
|
218
218
|
'`#remote.autoForwardPorts#`',
|
|
219
219
|
'`#remote.autoForwardPortsSource#`'
|
|
@@ -221,15 +221,15 @@ const extensionKindSchema = {
|
|
|
221
221
|
enum: ['process', 'output', 'hybrid'],
|
|
222
222
|
enumDescriptions: [
|
|
223
223
|
( localize(
|
|
224
|
-
|
|
224
|
+
10197,
|
|
225
225
|
"Ports will be automatically forwarded when discovered by watching for processes that are started and include a port."
|
|
226
226
|
)),
|
|
227
227
|
( localize(
|
|
228
|
-
|
|
228
|
+
10198,
|
|
229
229
|
"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."
|
|
230
230
|
)),
|
|
231
231
|
( localize(
|
|
232
|
-
|
|
232
|
+
10199,
|
|
233
233
|
"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."
|
|
234
234
|
))
|
|
235
235
|
],
|
|
@@ -239,14 +239,14 @@ const extensionKindSchema = {
|
|
|
239
239
|
type: 'number',
|
|
240
240
|
default: 20,
|
|
241
241
|
markdownDescription: ( localize(
|
|
242
|
-
|
|
242
|
+
10200,
|
|
243
243
|
"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`."
|
|
244
244
|
))
|
|
245
245
|
},
|
|
246
246
|
'remote.forwardOnOpen': {
|
|
247
247
|
type: 'boolean',
|
|
248
248
|
description: ( localize(
|
|
249
|
-
|
|
249
|
+
10201,
|
|
250
250
|
"Controls whether local URLs with a port will be forwarded when opened from the terminal and the debug console."
|
|
251
251
|
)),
|
|
252
252
|
default: true
|
|
@@ -257,7 +257,7 @@ const extensionKindSchema = {
|
|
|
257
257
|
'(^\\d+(-\\d+)?$)|(.+)': {
|
|
258
258
|
type: 'object',
|
|
259
259
|
description: ( localize(
|
|
260
|
-
|
|
260
|
+
10202,
|
|
261
261
|
"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."
|
|
262
262
|
)),
|
|
263
263
|
properties: {
|
|
@@ -265,27 +265,27 @@ const extensionKindSchema = {
|
|
|
265
265
|
type: 'string',
|
|
266
266
|
enum: ['notify', 'openBrowser', 'openBrowserOnce', 'openPreview', 'silent', 'ignore'],
|
|
267
267
|
enumDescriptions: [
|
|
268
|
-
( localize(
|
|
268
|
+
( localize(10203, "Shows a notification when a port is automatically forwarded.")),
|
|
269
269
|
( localize(
|
|
270
|
-
|
|
270
|
+
10204,
|
|
271
271
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
272
272
|
)),
|
|
273
273
|
( localize(
|
|
274
|
-
|
|
274
|
+
10205,
|
|
275
275
|
"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."
|
|
276
276
|
)),
|
|
277
277
|
( localize(
|
|
278
|
-
|
|
278
|
+
10206,
|
|
279
279
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
280
280
|
)),
|
|
281
281
|
( localize(
|
|
282
|
-
|
|
282
|
+
10207,
|
|
283
283
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
284
284
|
)),
|
|
285
|
-
( localize(
|
|
285
|
+
( localize(10208, "This port will not be automatically forwarded."))
|
|
286
286
|
],
|
|
287
287
|
description: ( localize(
|
|
288
|
-
|
|
288
|
+
10209,
|
|
289
289
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
290
290
|
)),
|
|
291
291
|
default: 'notify'
|
|
@@ -293,20 +293,20 @@ const extensionKindSchema = {
|
|
|
293
293
|
'elevateIfNeeded': {
|
|
294
294
|
type: 'boolean',
|
|
295
295
|
description: ( localize(
|
|
296
|
-
|
|
296
|
+
10210,
|
|
297
297
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
298
298
|
)),
|
|
299
299
|
default: false
|
|
300
300
|
},
|
|
301
301
|
'label': {
|
|
302
302
|
type: 'string',
|
|
303
|
-
description: ( localize(
|
|
304
|
-
default: ( localize(
|
|
303
|
+
description: ( localize(10211, "Label that will be shown in the UI for this port.")),
|
|
304
|
+
default: ( localize(10212, "Application"))
|
|
305
305
|
},
|
|
306
306
|
'requireLocalPort': {
|
|
307
307
|
type: 'boolean',
|
|
308
308
|
markdownDescription: ( localize(
|
|
309
|
-
|
|
309
|
+
10213,
|
|
310
310
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
311
311
|
)),
|
|
312
312
|
default: false
|
|
@@ -314,22 +314,22 @@ const extensionKindSchema = {
|
|
|
314
314
|
'protocol': {
|
|
315
315
|
type: 'string',
|
|
316
316
|
enum: ['http', 'https'],
|
|
317
|
-
description: ( localize(
|
|
317
|
+
description: ( localize(10214, "The protocol to use when forwarding this port."))
|
|
318
318
|
}
|
|
319
319
|
},
|
|
320
320
|
default: {
|
|
321
|
-
'label': ( localize(
|
|
321
|
+
'label': ( localize(10212, "Application")),
|
|
322
322
|
'onAutoForward': 'notify'
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
},
|
|
326
326
|
markdownDescription: ( localize(
|
|
327
|
-
|
|
327
|
+
10215,
|
|
328
328
|
"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```"
|
|
329
329
|
)),
|
|
330
330
|
defaultSnippets: [{ body: { '${1:3000}': { label: '${2:Application}', onAutoForward: 'openPreview' } } }],
|
|
331
331
|
errorMessage: ( localize(
|
|
332
|
-
|
|
332
|
+
10216,
|
|
333
333
|
"Must be a port number, range of port numbers, or regular expression."
|
|
334
334
|
)),
|
|
335
335
|
additionalProperties: false,
|
|
@@ -349,23 +349,23 @@ const extensionKindSchema = {
|
|
|
349
349
|
type: 'string',
|
|
350
350
|
enum: ['notify', 'openBrowser', 'openPreview', 'silent', 'ignore'],
|
|
351
351
|
enumDescriptions: [
|
|
352
|
-
( localize(
|
|
352
|
+
( localize(10203, "Shows a notification when a port is automatically forwarded.")),
|
|
353
353
|
( localize(
|
|
354
|
-
|
|
354
|
+
10204,
|
|
355
355
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
356
356
|
)),
|
|
357
357
|
( localize(
|
|
358
|
-
|
|
358
|
+
10206,
|
|
359
359
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
360
360
|
)),
|
|
361
361
|
( localize(
|
|
362
|
-
|
|
362
|
+
10207,
|
|
363
363
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
364
364
|
)),
|
|
365
|
-
( localize(
|
|
365
|
+
( localize(10208, "This port will not be automatically forwarded."))
|
|
366
366
|
],
|
|
367
367
|
description: ( localize(
|
|
368
|
-
|
|
368
|
+
10209,
|
|
369
369
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
370
370
|
)),
|
|
371
371
|
default: 'notify'
|
|
@@ -373,20 +373,20 @@ const extensionKindSchema = {
|
|
|
373
373
|
'elevateIfNeeded': {
|
|
374
374
|
type: 'boolean',
|
|
375
375
|
description: ( localize(
|
|
376
|
-
|
|
376
|
+
10210,
|
|
377
377
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
378
378
|
)),
|
|
379
379
|
default: false
|
|
380
380
|
},
|
|
381
381
|
'label': {
|
|
382
382
|
type: 'string',
|
|
383
|
-
description: ( localize(
|
|
384
|
-
default: ( localize(
|
|
383
|
+
description: ( localize(10211, "Label that will be shown in the UI for this port.")),
|
|
384
|
+
default: ( localize(10212, "Application"))
|
|
385
385
|
},
|
|
386
386
|
'requireLocalPort': {
|
|
387
387
|
type: 'boolean',
|
|
388
388
|
markdownDescription: ( localize(
|
|
389
|
-
|
|
389
|
+
10213,
|
|
390
390
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
391
391
|
)),
|
|
392
392
|
default: false
|
|
@@ -394,12 +394,12 @@ const extensionKindSchema = {
|
|
|
394
394
|
'protocol': {
|
|
395
395
|
type: 'string',
|
|
396
396
|
enum: ['http', 'https'],
|
|
397
|
-
description: ( localize(
|
|
397
|
+
description: ( localize(10214, "The protocol to use when forwarding this port."))
|
|
398
398
|
}
|
|
399
399
|
},
|
|
400
400
|
defaultSnippets: [{ body: { onAutoForward: 'ignore' } }],
|
|
401
401
|
markdownDescription: ( localize(
|
|
402
|
-
|
|
402
|
+
10217,
|
|
403
403
|
"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```",
|
|
404
404
|
'`#remote.portsAttributes#`'
|
|
405
405
|
)),
|
|
@@ -410,21 +410,21 @@ const extensionKindSchema = {
|
|
|
410
410
|
enum: ['localhost', 'allInterfaces'],
|
|
411
411
|
default: 'localhost',
|
|
412
412
|
description: ( localize(
|
|
413
|
-
|
|
413
|
+
10218,
|
|
414
414
|
"Specifies the local host name that will be used for port forwarding."
|
|
415
415
|
))
|
|
416
416
|
},
|
|
417
417
|
[REMOTE_DEFAULT_IF_LOCAL_EXTENSIONS]: {
|
|
418
418
|
type: 'array',
|
|
419
419
|
markdownDescription: ( localize(
|
|
420
|
-
|
|
420
|
+
10219,
|
|
421
421
|
'List of extensions to install upon connection to a remote when already installed locally.'
|
|
422
422
|
)),
|
|
423
423
|
default: product?.remoteDefaultExtensionsIfInstalledLocally || [],
|
|
424
424
|
items: {
|
|
425
425
|
type: 'string',
|
|
426
426
|
pattern: EXTENSION_IDENTIFIER_PATTERN,
|
|
427
|
-
patternErrorMessage: ( localize(
|
|
427
|
+
patternErrorMessage: ( localize(10220, 'Extension identifier must be in format "publisher.name".'))
|
|
428
428
|
},
|
|
429
429
|
}
|
|
430
430
|
}
|
|
@@ -46,15 +46,15 @@ let RemoteConnectionFailureNotificationContribution = class RemoteConnectionFail
|
|
|
46
46
|
async _presentConnectionError(err) {
|
|
47
47
|
await this._dialogService.prompt({
|
|
48
48
|
type: Severity.Error,
|
|
49
|
-
message: ( localize(
|
|
49
|
+
message: ( localize(14025, "An unexpected error occurred that requires a reload of this page.")),
|
|
50
50
|
detail: ( localize(
|
|
51
|
-
|
|
51
|
+
14026,
|
|
52
52
|
"The workbench failed to connect to the server (Error: {0})",
|
|
53
53
|
err ? err.message : ''
|
|
54
54
|
)),
|
|
55
55
|
buttons: [
|
|
56
56
|
{
|
|
57
|
-
label: ( localize(
|
|
57
|
+
label: ( localize(14027, "&&Reload")),
|
|
58
58
|
run: () => this._hostService.reload()
|
|
59
59
|
}
|
|
60
60
|
]
|