@codingame/monaco-vscode-remote-agent-service-override 7.1.0 → 7.1.1
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 +2 -3
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +18 -19
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +9 -12
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +30 -37
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.js +3 -4
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelFactory.js +3 -4
- package/vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js +75 -112
- package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +5 -11
- package/vscode/src/vs/workbench/services/remote/common/abstractRemoteAgentService.js +17 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-remote-agent-service-override",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@7.1.
|
|
30
|
-
"@codingame/monaco-vscode-environment-service-override": "7.1.
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@7.1.1",
|
|
30
|
+
"@codingame/monaco-vscode-environment-service-override": "7.1.1"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { REMOTE_EXPLORER_TYPE_KEY } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
|
|
4
4
|
import { IRemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService.service';
|
|
5
5
|
import { isStringArray } from 'vscode/vscode/vs/base/common/types';
|
|
@@ -14,7 +14,6 @@ import { getVirtualWorkspaceLocation } from 'vscode/vscode/vs/platform/workspace
|
|
|
14
14
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace.service';
|
|
15
15
|
import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
16
16
|
|
|
17
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/explorerViewItems";
|
|
18
17
|
const SELECTED_REMOTE_IN_EXPLORER = ( (new RawContextKey('selectedRemoteInExplorer', '')));
|
|
19
18
|
let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
20
19
|
constructor(contextKeyService, remoteExplorerService, environmentService, storageService, workspaceContextService) {
|
|
@@ -29,7 +28,7 @@ let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
|
29
28
|
this.switchRemoteMenu = MenuId.for('workbench.remote.menu.switchRemoteMenu');
|
|
30
29
|
this._register(MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
31
30
|
submenu: this.switchRemoteMenu,
|
|
32
|
-
title: (
|
|
31
|
+
title: ( localize(10837, "Switch Remote")),
|
|
33
32
|
group: 'navigation',
|
|
34
33
|
when: ( (ContextKeyExpr.equals('viewContainer', VIEWLET_ID))),
|
|
35
34
|
order: 1,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import './media/remoteViewlet.css.js';
|
|
3
|
-
import {
|
|
3
|
+
import { localize, localize2 } from 'vscode/vscode/vs/nls';
|
|
4
4
|
import { append, $, disposableWindowInterval } from 'vscode/vscode/vs/base/browser/dom';
|
|
5
5
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
6
6
|
import { IWorkbenchLayoutService } from 'vscode/vscode/vs/workbench/services/layout/browser/layoutService.service';
|
|
@@ -50,7 +50,6 @@ import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
|
50
50
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
51
51
|
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
52
52
|
|
|
53
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/remote";
|
|
54
53
|
class HelpTreeVirtualDelegate {
|
|
55
54
|
getHeight(element) {
|
|
56
55
|
return 22;
|
|
@@ -120,27 +119,27 @@ class HelpModel {
|
|
|
120
119
|
const getStarted = this.viewModel.helpInformation.filter(info => info.getStarted);
|
|
121
120
|
if (getStarted.length) {
|
|
122
121
|
const helpItemValues = ( (getStarted.map((info) => this.createHelpItemValue(info, 'getStarted'))));
|
|
123
|
-
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( (new GetStartedHelpItem(getStartedIcon, (
|
|
122
|
+
const getStartedHelpItem = this.items?.find(item => item.icon === getStartedIcon) ?? ( (new GetStartedHelpItem(getStartedIcon, ( localize(8686, "Get Started")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService, this.commandService)));
|
|
124
123
|
getStartedHelpItem.values = helpItemValues;
|
|
125
124
|
helpItems.push(getStartedHelpItem);
|
|
126
125
|
}
|
|
127
126
|
const documentation = this.viewModel.helpInformation.filter(info => info.documentation);
|
|
128
127
|
if (documentation.length) {
|
|
129
128
|
const helpItemValues = ( (documentation.map((info) => this.createHelpItemValue(info, 'documentation'))));
|
|
130
|
-
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( (new HelpItem(documentationIcon, (
|
|
129
|
+
const documentationHelpItem = this.items?.find(item => item.icon === documentationIcon) ?? ( (new HelpItem(documentationIcon, ( localize(8687, "Read Documentation")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
131
130
|
documentationHelpItem.values = helpItemValues;
|
|
132
131
|
helpItems.push(documentationHelpItem);
|
|
133
132
|
}
|
|
134
133
|
const issues = this.viewModel.helpInformation.filter(info => info.issues);
|
|
135
134
|
if (issues.length) {
|
|
136
135
|
const helpItemValues = ( (issues.map((info) => this.createHelpItemValue(info, 'issues'))));
|
|
137
|
-
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( (new HelpItem(reviewIssuesIcon, (
|
|
136
|
+
const reviewIssuesHelpItem = this.items?.find(item => item.icon === reviewIssuesIcon) ?? ( (new HelpItem(reviewIssuesIcon, ( localize(8688, "Review Issues")), helpItemValues, this.quickInputService, this.environmentService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
138
137
|
reviewIssuesHelpItem.values = helpItemValues;
|
|
139
138
|
helpItems.push(reviewIssuesHelpItem);
|
|
140
139
|
}
|
|
141
140
|
if (helpItems.length) {
|
|
142
141
|
const helpItemValues = ( (this.viewModel.helpInformation.map(info => this.createHelpItemValue(info, 'reportIssue'))));
|
|
143
|
-
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( (new IssueReporterItem(reportIssuesIcon, (
|
|
142
|
+
const issueReporterItem = this.items?.find(item => item.icon === reportIssuesIcon) ?? ( (new IssueReporterItem(reportIssuesIcon, ( localize(8689, "Report Issue")), helpItemValues, this.quickInputService, this.environmentService, this.commandService, this.openerService, this.remoteExplorerService, this.workspaceContextService)));
|
|
144
143
|
issueReporterItem.values = helpItemValues;
|
|
145
144
|
helpItems.push(issueReporterItem);
|
|
146
145
|
}
|
|
@@ -257,7 +256,7 @@ class HelpItemBase {
|
|
|
257
256
|
if (this.values.length > 1) {
|
|
258
257
|
const actions = await this.getActions();
|
|
259
258
|
if (actions.length) {
|
|
260
|
-
const action = await this.quickInputService.pick(actions, { placeHolder: (
|
|
259
|
+
const action = await this.quickInputService.pick(actions, { placeHolder: ( localize(8690, "Select url to open")) });
|
|
261
260
|
if (action) {
|
|
262
261
|
await this.takeAction(action.extensionDescription, action.url);
|
|
263
262
|
}
|
|
@@ -318,7 +317,7 @@ class IssueReporterItem extends HelpItemBase {
|
|
|
318
317
|
}
|
|
319
318
|
let HelpPanel = class HelpPanel extends ViewPane {
|
|
320
319
|
static { this.ID = '~remote.helpPanel'; }
|
|
321
|
-
static { this.TITLE = (
|
|
320
|
+
static { this.TITLE = ( localize2(8691, "Help and feedback")); }
|
|
322
321
|
constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, remoteExplorerService, environmentService, themeService, telemetryService, hoverService, workspaceContextService, walkthroughsService) {
|
|
323
322
|
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
324
323
|
this.viewModel = viewModel;
|
|
@@ -340,7 +339,7 @@ let HelpPanel = class HelpPanel extends ViewPane {
|
|
|
340
339
|
getAriaLabel: (item) => {
|
|
341
340
|
return item.label;
|
|
342
341
|
},
|
|
343
|
-
getWidgetAriaLabel: () => (
|
|
342
|
+
getWidgetAriaLabel: () => ( localize(8692, "Remote Help"))
|
|
344
343
|
}
|
|
345
344
|
});
|
|
346
345
|
const model = ( (new HelpModel(
|
|
@@ -470,7 +469,7 @@ let RemoteViewPaneContainer = class RemoteViewPaneContainer extends FilterViewPa
|
|
|
470
469
|
this.remoteExplorerService.targetType = isStringArray(viewDescriptor.remoteAuthority) ? viewDescriptor.remoteAuthority : [viewDescriptor.remoteAuthority];
|
|
471
470
|
}
|
|
472
471
|
getTitle() {
|
|
473
|
-
const title = (
|
|
472
|
+
const title = ( localize(8693, "Remote Explorer"));
|
|
474
473
|
return title;
|
|
475
474
|
}
|
|
476
475
|
};
|
|
@@ -489,7 +488,7 @@ RemoteViewPaneContainer = ( (__decorate([
|
|
|
489
488
|
], RemoteViewPaneContainer)));
|
|
490
489
|
( (Registry.as(Extensions.ViewContainersRegistry))).registerViewContainer({
|
|
491
490
|
id: VIEWLET_ID,
|
|
492
|
-
title: (
|
|
491
|
+
title: ( localize2(8693, "Remote Explorer")),
|
|
493
492
|
ctorDescriptor: ( (new SyncDescriptor(RemoteViewPaneContainer))),
|
|
494
493
|
hideIfEmpty: true,
|
|
495
494
|
viewOrderDelegate: {
|
|
@@ -595,10 +594,10 @@ class ReconnectionTimer {
|
|
|
595
594
|
}
|
|
596
595
|
const remainingTime = Math.ceil(remainingTimeMs / 1000);
|
|
597
596
|
if (remainingTime === 1) {
|
|
598
|
-
this._parent.report((
|
|
597
|
+
this._parent.report(( localize(8694, "Attempting to reconnect in {0} second...", remainingTime)));
|
|
599
598
|
}
|
|
600
599
|
else {
|
|
601
|
-
this._parent.report((
|
|
600
|
+
this._parent.report(( localize(8695, "Attempting to reconnect in {0} seconds...", remainingTime)));
|
|
602
601
|
}
|
|
603
602
|
}
|
|
604
603
|
}
|
|
@@ -655,13 +654,13 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
655
654
|
let lastIncomingDataTime = 0;
|
|
656
655
|
let reconnectionAttempts = 0;
|
|
657
656
|
const reconnectButton = {
|
|
658
|
-
label: (
|
|
657
|
+
label: ( localize(8696, "Reconnect Now")),
|
|
659
658
|
callback: () => {
|
|
660
659
|
reconnectWaitEvent?.skipWait();
|
|
661
660
|
}
|
|
662
661
|
};
|
|
663
662
|
const reloadButton = {
|
|
664
|
-
label: (
|
|
663
|
+
label: ( localize(8697, "Reload Window")),
|
|
665
664
|
callback: () => {
|
|
666
665
|
telemetryService.publicLog2('remoteReconnectionReload', {
|
|
667
666
|
remoteName: getRemoteName(environmentService.remoteAuthority),
|
|
@@ -691,7 +690,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
691
690
|
if (!visibleProgress) {
|
|
692
691
|
visibleProgress = showProgress(null, [reconnectButton, reloadButton]);
|
|
693
692
|
}
|
|
694
|
-
visibleProgress.report((
|
|
693
|
+
visibleProgress.report(( localize(8698, "Connection Lost")));
|
|
695
694
|
}
|
|
696
695
|
break;
|
|
697
696
|
case PersistentConnectionEventType.ReconnectionWait:
|
|
@@ -713,7 +712,7 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
713
712
|
});
|
|
714
713
|
if (visibleProgress || e.millisSinceLastIncomingData > DISCONNECT_PROMPT_TIME) {
|
|
715
714
|
visibleProgress = showProgress(null, [reloadButton]);
|
|
716
|
-
visibleProgress.report((
|
|
715
|
+
visibleProgress.report(( localize(8699, "Disconnected. Attempting to reconnect...")));
|
|
717
716
|
disposableListener = quickInputService.onShow(() => {
|
|
718
717
|
if (visibleProgress && visibleProgress.location === ProgressLocation.Dialog) {
|
|
719
718
|
visibleProgress = showProgress(ProgressLocation.Notification, [reloadButton], visibleProgress.lastReport);
|
|
@@ -741,8 +740,8 @@ let RemoteAgentConnectionStatusListener = class RemoteAgentConnectionStatusListe
|
|
|
741
740
|
this._reloadWindowShown = true;
|
|
742
741
|
dialogService.confirm({
|
|
743
742
|
type: Severity$1.Error,
|
|
744
|
-
message: (
|
|
745
|
-
primaryButton: (
|
|
743
|
+
message: ( localize(8700, "Cannot reconnect. Please reload the window.")),
|
|
744
|
+
primaryButton: ( localize(8701, "&&Reload Window"))
|
|
746
745
|
}).then(result => {
|
|
747
746
|
if (result.confirmed) {
|
|
748
747
|
commandService.executeCommand(ReloadWindowAction.ID);
|
|
@@ -2,7 +2,7 @@ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
|
2
2
|
import { remoteConnectionLatencyMeasurer } from '../../../services/remote/common/remoteAgentService.js';
|
|
3
3
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
4
4
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
5
|
-
import {
|
|
5
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
6
6
|
import { isWeb } from 'vscode/vscode/vs/base/common/platform';
|
|
7
7
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
8
8
|
import { getRemoteName } from 'vscode/vscode/vs/platform/remote/common/remoteHosts';
|
|
@@ -16,7 +16,6 @@ import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs
|
|
|
16
16
|
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
17
17
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
18
18
|
|
|
19
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/remoteConnectionHealth";
|
|
20
19
|
const REMOTE_UNSUPPORTED_CONNECTION_CHOICE_KEY = 'remote.unsupportedConnectionChoice';
|
|
21
20
|
const BANNER_REMOTE_UNSUPPORTED_CONNECTION_DISMISSED_KEY = 'workbench.banner.remote.unsupportedConnection.dismissed';
|
|
22
21
|
let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHealthContribution {
|
|
@@ -43,19 +42,18 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
43
42
|
})(ConnectionChoice || (ConnectionChoice = {}))));
|
|
44
43
|
const { result, checkboxChecked } = await this.dialogService.prompt({
|
|
45
44
|
type: Severity$1.Warning,
|
|
46
|
-
message: (
|
|
47
|
-
|
|
48
|
-
0,
|
|
45
|
+
message: ( localize(
|
|
46
|
+
8741,
|
|
49
47
|
"You are about to connect to an OS version that is unsupported by {0}.",
|
|
50
48
|
this.productService.nameLong
|
|
51
49
|
)),
|
|
52
50
|
buttons: [
|
|
53
51
|
{
|
|
54
|
-
label: (
|
|
52
|
+
label: ( localize(8742, "&&Allow")),
|
|
55
53
|
run: () => ConnectionChoice.Allow
|
|
56
54
|
},
|
|
57
55
|
{
|
|
58
|
-
label: (
|
|
56
|
+
label: ( localize(8743, "&&Learn More")),
|
|
59
57
|
run: async () => { await this.openerService.open('https://aka.ms/vscode-remote/faq/old-linux'); return ConnectionChoice.LearnMore; }
|
|
60
58
|
}
|
|
61
59
|
],
|
|
@@ -63,7 +61,7 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
63
61
|
run: () => ConnectionChoice.Cancel
|
|
64
62
|
},
|
|
65
63
|
checkbox: {
|
|
66
|
-
label: (
|
|
64
|
+
label: ( localize(8744, "Do not show again")),
|
|
67
65
|
}
|
|
68
66
|
});
|
|
69
67
|
if (result === ConnectionChoice.LearnMore) {
|
|
@@ -89,15 +87,14 @@ let InitialRemoteConnectionHealthContribution = class InitialRemoteConnectionHea
|
|
|
89
87
|
if (shouldShowBanner) {
|
|
90
88
|
const actions = [
|
|
91
89
|
{
|
|
92
|
-
label: (
|
|
90
|
+
label: ( localize(8745, "Learn More")),
|
|
93
91
|
href: 'https://aka.ms/vscode-remote/faq/old-linux'
|
|
94
92
|
}
|
|
95
93
|
];
|
|
96
94
|
this.bannerService.show({
|
|
97
95
|
id: 'unsupportedGlibcWarning.banner',
|
|
98
|
-
message: (
|
|
99
|
-
|
|
100
|
-
5,
|
|
96
|
+
message: ( localize(
|
|
97
|
+
8746,
|
|
101
98
|
"You are connected to an OS version that is unsupported by {0}.",
|
|
102
99
|
this.productService.nameLong
|
|
103
100
|
)),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize2, localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { remoteConnectionLatencyMeasurer } from '../../../services/remote/common/remoteAgentService.js';
|
|
4
4
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
5
5
|
import { RunOnceScheduler, retry } from 'vscode/vscode/vs/base/common/async';
|
|
@@ -53,7 +53,6 @@ import { workbenchConfigurationNodeBase } from 'vscode/vscode/vs/workbench/commo
|
|
|
53
53
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
54
54
|
|
|
55
55
|
var RemoteStatusIndicator_1;
|
|
56
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/remoteIndicator";
|
|
57
56
|
let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
58
57
|
static { RemoteStatusIndicator_1 = this; }
|
|
59
58
|
static { this.ID = 'workbench.contrib.remoteStatusIndicator'; }
|
|
@@ -133,14 +132,14 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
133
132
|
this.updateRemoteStatusIndicator();
|
|
134
133
|
}
|
|
135
134
|
registerActions() {
|
|
136
|
-
const category = (
|
|
135
|
+
const category = ( localize2(8702, "Remote"));
|
|
137
136
|
const that = this;
|
|
138
137
|
this._register(registerAction2(class extends Action2 {
|
|
139
138
|
constructor() {
|
|
140
139
|
super({
|
|
141
140
|
id: RemoteStatusIndicator_1.REMOTE_ACTIONS_COMMAND_ID,
|
|
142
141
|
category,
|
|
143
|
-
title: (
|
|
142
|
+
title: ( localize2(8703, "Show Remote Menu")),
|
|
144
143
|
f1: true,
|
|
145
144
|
keybinding: {
|
|
146
145
|
weight: KeybindingWeight.WorkbenchContrib,
|
|
@@ -156,7 +155,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
156
155
|
super({
|
|
157
156
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
158
157
|
category,
|
|
159
|
-
title: (
|
|
158
|
+
title: ( localize2(8704, "Close Remote Connection")),
|
|
160
159
|
f1: true,
|
|
161
160
|
precondition: ( (ContextKeyExpr.or(RemoteNameContext, VirtualWorkspaceContext)))
|
|
162
161
|
});
|
|
@@ -168,7 +167,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
168
167
|
group: '6_close',
|
|
169
168
|
command: {
|
|
170
169
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
171
|
-
title: (
|
|
170
|
+
title: ( localize(8705, "Close Re&&mote Connection"))
|
|
172
171
|
},
|
|
173
172
|
order: 3.5
|
|
174
173
|
});
|
|
@@ -180,7 +179,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
180
179
|
super({
|
|
181
180
|
id: RemoteStatusIndicator_1.INSTALL_REMOTE_EXTENSIONS_ID,
|
|
182
181
|
category,
|
|
183
|
-
title: (
|
|
182
|
+
title: ( localize2(8706, "Install Remote Development Extensions")),
|
|
184
183
|
f1: true
|
|
185
184
|
});
|
|
186
185
|
this.run = (accessor, input) => {
|
|
@@ -393,20 +392,18 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
393
392
|
const hostLabel = this.labelService.getHostLabel(Schemas.vscodeRemote, this.remoteAuthority) || this.remoteAuthority;
|
|
394
393
|
switch (this.connectionState) {
|
|
395
394
|
case 'initializing':
|
|
396
|
-
this.renderRemoteStatusIndicator((
|
|
395
|
+
this.renderRemoteStatusIndicator(( localize(8707, "Opening Remote...")), ( localize(8707, "Opening Remote...")), undefined, true );
|
|
397
396
|
break;
|
|
398
397
|
case 'reconnecting':
|
|
399
|
-
this.renderRemoteStatusIndicator(`${(
|
|
400
|
-
|
|
401
|
-
6,
|
|
398
|
+
this.renderRemoteStatusIndicator(`${( localize(
|
|
399
|
+
8708,
|
|
402
400
|
"Reconnecting to {0}...",
|
|
403
401
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
404
402
|
))}`, undefined, undefined, true );
|
|
405
403
|
break;
|
|
406
404
|
case 'disconnected':
|
|
407
|
-
this.renderRemoteStatusIndicator(`$(alert) ${(
|
|
408
|
-
|
|
409
|
-
7,
|
|
405
|
+
this.renderRemoteStatusIndicator(`$(alert) ${( localize(
|
|
406
|
+
8709,
|
|
410
407
|
"Disconnected from {0}",
|
|
411
408
|
truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)
|
|
412
409
|
))}`);
|
|
@@ -418,7 +415,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
418
415
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
419
416
|
}
|
|
420
417
|
else {
|
|
421
|
-
tooltip.appendText((
|
|
418
|
+
tooltip.appendText(( localize(8710, "Editing on {0}", hostLabel)));
|
|
422
419
|
}
|
|
423
420
|
this.renderRemoteStatusIndicator(`$(remote) ${truncate(hostLabel, RemoteStatusIndicator_1.REMOTE_STATUS_LABEL_MAX_LENGTH)}`, tooltip);
|
|
424
421
|
}
|
|
@@ -434,13 +431,12 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
434
431
|
tooltip.appendMarkdown(hostNameTooltip);
|
|
435
432
|
}
|
|
436
433
|
else {
|
|
437
|
-
tooltip.appendText((
|
|
434
|
+
tooltip.appendText(( localize(8711, "Editing on {0}", workspaceLabel)));
|
|
438
435
|
}
|
|
439
436
|
if (!isWeb || this.remoteAuthority) {
|
|
440
437
|
tooltip.appendMarkdown('\n\n');
|
|
441
|
-
tooltip.appendMarkdown((
|
|
442
|
-
|
|
443
|
-
10,
|
|
438
|
+
tooltip.appendMarkdown(( localize(
|
|
439
|
+
8712,
|
|
444
440
|
"Some [features are not available]({0}) for resources located on a virtual file system.",
|
|
445
441
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
446
442
|
)));
|
|
@@ -449,13 +445,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
449
445
|
return;
|
|
450
446
|
}
|
|
451
447
|
}
|
|
452
|
-
this.renderRemoteStatusIndicator(`$(remote)`, (
|
|
448
|
+
this.renderRemoteStatusIndicator(`$(remote)`, ( localize(8713, "Open a Remote Window")));
|
|
453
449
|
return;
|
|
454
450
|
}
|
|
455
451
|
renderRemoteStatusIndicator(initialText, initialTooltip, command, showProgress) {
|
|
456
452
|
const { text, tooltip, ariaLabel } = this.withNetworkStatus(initialText, initialTooltip, showProgress);
|
|
457
453
|
const properties = {
|
|
458
|
-
name: (
|
|
454
|
+
name: ( localize(8714, "Remote Host")),
|
|
459
455
|
kind: this.networkState === 'offline' ? 'offline' : 'remote',
|
|
460
456
|
ariaLabel,
|
|
461
457
|
text,
|
|
@@ -482,9 +478,8 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
482
478
|
}
|
|
483
479
|
switch (this.networkState) {
|
|
484
480
|
case 'offline': {
|
|
485
|
-
const offlineMessage = (
|
|
486
|
-
|
|
487
|
-
13,
|
|
481
|
+
const offlineMessage = ( localize(
|
|
482
|
+
8715,
|
|
488
483
|
"Network appears to be offline, certain features might be unavailable."
|
|
489
484
|
));
|
|
490
485
|
text = textWithAlert();
|
|
@@ -494,9 +489,8 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
494
489
|
}
|
|
495
490
|
case 'high-latency':
|
|
496
491
|
text = textWithAlert();
|
|
497
|
-
tooltip = this.appendTooltipLine(tooltip, (
|
|
498
|
-
|
|
499
|
-
14,
|
|
492
|
+
tooltip = this.appendTooltipLine(tooltip, ( localize(
|
|
493
|
+
8716,
|
|
500
494
|
"Network appears to have high latency ({0}ms last, {1}ms average), certain features may be slow to respond.",
|
|
501
495
|
remoteConnectionLatencyMeasurer.latency?.current?.toFixed(2),
|
|
502
496
|
remoteConnectionLatencyMeasurer.latency?.average?.toFixed(2)
|
|
@@ -612,13 +606,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
612
606
|
const label = metadata.startConnectLabel;
|
|
613
607
|
const buttons = [{
|
|
614
608
|
iconClass: ThemeIcon.asClassName(infoIcon),
|
|
615
|
-
tooltip: (
|
|
609
|
+
tooltip: ( localize(8717, "Learn More"))
|
|
616
610
|
}];
|
|
617
611
|
notInstalledItems.push({ type: 'item', id: metadata.id, label: label, buttons: buttons });
|
|
618
612
|
}
|
|
619
613
|
}
|
|
620
614
|
items.push({
|
|
621
|
-
type: 'separator', label: (
|
|
615
|
+
type: 'separator', label: ( localize(8718, 'Install'))
|
|
622
616
|
});
|
|
623
617
|
items.push(...notInstalledItems);
|
|
624
618
|
}
|
|
@@ -631,13 +625,13 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
631
625
|
items.push({
|
|
632
626
|
type: 'item',
|
|
633
627
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
634
|
-
label: (
|
|
628
|
+
label: ( localize(8719, 'Close Remote Connection'))
|
|
635
629
|
});
|
|
636
630
|
if (this.connectionState === 'disconnected') {
|
|
637
631
|
items.push({
|
|
638
632
|
type: 'item',
|
|
639
633
|
id: ReloadWindowAction.ID,
|
|
640
|
-
label: (
|
|
634
|
+
label: ( localize(8720, 'Reload Window'))
|
|
641
635
|
});
|
|
642
636
|
}
|
|
643
637
|
}
|
|
@@ -645,7 +639,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
645
639
|
items.push({
|
|
646
640
|
type: 'item',
|
|
647
641
|
id: RemoteStatusIndicator_1.CLOSE_REMOTE_COMMAND_ID,
|
|
648
|
-
label: (
|
|
642
|
+
label: ( localize(8721, 'Close Remote Workspace'))
|
|
649
643
|
});
|
|
650
644
|
}
|
|
651
645
|
}
|
|
@@ -655,7 +649,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
655
649
|
return items;
|
|
656
650
|
};
|
|
657
651
|
const quickPick = this.quickInputService.createQuickPick();
|
|
658
|
-
quickPick.placeholder = (
|
|
652
|
+
quickPick.placeholder = ( localize(8722, "Select an option to open a Remote Window"));
|
|
659
653
|
quickPick.items = computeItems();
|
|
660
654
|
quickPick.sortByLabel = false;
|
|
661
655
|
quickPick.canSelectMany = false;
|
|
@@ -667,7 +661,7 @@ let RemoteStatusIndicator = class RemoteStatusIndicator extends Disposable {
|
|
|
667
661
|
if (remoteExtension) {
|
|
668
662
|
quickPick.items = [];
|
|
669
663
|
quickPick.busy = true;
|
|
670
|
-
quickPick.placeholder = (
|
|
664
|
+
quickPick.placeholder = ( localize(8723, 'Installing extension... '));
|
|
671
665
|
await this.installExtension(remoteExtension.id);
|
|
672
666
|
quickPick.hide();
|
|
673
667
|
await this.runRemoteStartCommand(remoteExtension.id, remoteExtension.startCommand);
|
|
@@ -729,9 +723,8 @@ RemoteStatusIndicator = RemoteStatusIndicator_1 = ( (__decorate([
|
|
|
729
723
|
properties: {
|
|
730
724
|
'workbench.remoteIndicator.showExtensionRecommendations': {
|
|
731
725
|
type: 'boolean',
|
|
732
|
-
markdownDescription: (
|
|
733
|
-
|
|
734
|
-
22,
|
|
726
|
+
markdownDescription: ( localize(
|
|
727
|
+
8724,
|
|
735
728
|
"When enabled, remote extensions recommendations will be shown in the Remote Indicator menu."
|
|
736
729
|
)),
|
|
737
730
|
default: true
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize2 } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
5
5
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
@@ -12,7 +12,6 @@ import { RawContextKey } from 'vscode/vscode/vs/platform/contextkey/common/conte
|
|
|
12
12
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
13
13
|
|
|
14
14
|
var RemoteStartEntry_1;
|
|
15
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/remoteStartEntry";
|
|
16
15
|
const showStartEntryInWeb = ( (new RawContextKey('showRemoteStartEntryInWeb', false)));
|
|
17
16
|
let RemoteStartEntry = class RemoteStartEntry extends Disposable {
|
|
18
17
|
static { RemoteStartEntry_1 = this; }
|
|
@@ -33,14 +32,14 @@ let RemoteStartEntry = class RemoteStartEntry extends Disposable {
|
|
|
33
32
|
this.registerListeners();
|
|
34
33
|
}
|
|
35
34
|
registerActions() {
|
|
36
|
-
const category = (
|
|
35
|
+
const category = ( localize2(8747, "Remote"));
|
|
37
36
|
const startEntry = this;
|
|
38
37
|
this._register(registerAction2(class extends Action2 {
|
|
39
38
|
constructor() {
|
|
40
39
|
super({
|
|
41
40
|
id: RemoteStartEntry_1.REMOTE_WEB_START_ENTRY_ACTIONS_COMMAND_ID,
|
|
42
41
|
category,
|
|
43
|
-
title: (
|
|
42
|
+
title: ( localize2(8748, "Show Remote Start Entry for web")),
|
|
44
43
|
f1: false
|
|
45
44
|
});
|
|
46
45
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { TunnelPrivacyId, TunnelProtocol } from 'vscode/vscode/vs/platform/tunnel/common/tunnel';
|
|
4
4
|
import { ITunnelService } from 'vscode/vscode/vs/platform/tunnel/common/tunnel.service';
|
|
5
5
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
@@ -11,7 +11,6 @@ import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
|
11
11
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
12
|
import { forwardedPortsViewEnabled } from 'vscode/vscode/vs/workbench/services/remote/common/tunnelModel';
|
|
13
13
|
|
|
14
|
-
const _moduleId = "vs/workbench/contrib/remote/browser/tunnelFactory";
|
|
15
14
|
let TunnelFactoryContribution = class TunnelFactoryContribution extends Disposable {
|
|
16
15
|
static { this.ID = 'workbench.contrib.tunnelFactory'; }
|
|
17
16
|
constructor(tunnelService, environmentService, openerService, remoteExplorerService, logService, contextKeyService) {
|
|
@@ -26,12 +25,12 @@ let TunnelFactoryContribution = class TunnelFactoryContribution extends Disposab
|
|
|
26
25
|
privacyOptions = [
|
|
27
26
|
{
|
|
28
27
|
id: 'private',
|
|
29
|
-
label: (
|
|
28
|
+
label: ( localize(8684, "Private")),
|
|
30
29
|
themeIcon: 'lock'
|
|
31
30
|
},
|
|
32
31
|
{
|
|
33
32
|
id: 'public',
|
|
34
|
-
label: (
|
|
33
|
+
label: ( localize(8685, "Public")),
|
|
35
34
|
themeIcon: 'eye'
|
|
36
35
|
}
|
|
37
36
|
];
|
|
@@ -7,7 +7,7 @@ import { OS, OperatingSystem, isWeb } from 'vscode/vscode/vs/base/common/platfor
|
|
|
7
7
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
8
8
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
9
9
|
import { ILoggerService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
10
|
-
import {
|
|
10
|
+
import { localize, localize2 } from 'vscode/vscode/vs/nls';
|
|
11
11
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
12
12
|
import { Extensions as Extensions$1 } from 'vscode/vscode/vs/platform/configuration/common/configurationRegistry';
|
|
13
13
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
@@ -22,7 +22,6 @@ import { IDownloadService } from 'vscode/vscode/vs/platform/download/common/down
|
|
|
22
22
|
import { DownloadServiceChannel } from '../../../../platform/download/common/downloadIpc.js';
|
|
23
23
|
import { RemoteLoggerChannelClient } from '../../../../platform/log/common/logIpc.js';
|
|
24
24
|
|
|
25
|
-
const _moduleId = "vs/workbench/contrib/remote/common/remote.contribution";
|
|
26
25
|
let LabelContribution = class LabelContribution {
|
|
27
26
|
static { this.ID = 'workbench.contrib.remoteLabel'; }
|
|
28
27
|
constructor(labelService, remoteAgentService) {
|
|
@@ -101,9 +100,9 @@ let RemoteInvalidWorkspaceDetector = class RemoteInvalidWorkspaceDetector extend
|
|
|
101
100
|
}
|
|
102
101
|
const res = await this.dialogService.confirm({
|
|
103
102
|
type: 'warning',
|
|
104
|
-
message: (
|
|
105
|
-
detail: (
|
|
106
|
-
primaryButton: (
|
|
103
|
+
message: ( localize(3569, "Workspace does not exist")),
|
|
104
|
+
detail: ( localize(3570, "Please select another workspace to open.")),
|
|
105
|
+
primaryButton: ( localize(3571, "&&Open Workspace..."))
|
|
107
106
|
});
|
|
108
107
|
if (res.confirmed) {
|
|
109
108
|
if (workspace.configuration) {
|
|
@@ -130,7 +129,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
130
129
|
constructor() {
|
|
131
130
|
super({
|
|
132
131
|
id: 'workbench.action.triggerReconnect',
|
|
133
|
-
title: (
|
|
132
|
+
title: ( localize2(3572, 'Connection: Trigger Reconnect')),
|
|
134
133
|
category: Categories.Developer,
|
|
135
134
|
f1: true,
|
|
136
135
|
});
|
|
@@ -143,7 +142,7 @@ registerWorkbenchContribution2(RemoteInvalidWorkspaceDetector.ID, RemoteInvalidW
|
|
|
143
142
|
constructor() {
|
|
144
143
|
super({
|
|
145
144
|
id: 'workbench.action.pauseSocketWriting',
|
|
146
|
-
title: (
|
|
145
|
+
title: ( localize2(3573, 'Connection: Pause socket writing')),
|
|
147
146
|
category: Categories.Developer,
|
|
148
147
|
f1: true,
|
|
149
148
|
});
|
|
@@ -162,14 +161,12 @@ const extensionKindSchema = {
|
|
|
162
161
|
'workspace'
|
|
163
162
|
],
|
|
164
163
|
enumDescriptions: [
|
|
165
|
-
(
|
|
166
|
-
|
|
167
|
-
5,
|
|
164
|
+
( localize(
|
|
165
|
+
3574,
|
|
168
166
|
"UI extension kind. In a remote window, such extensions are enabled only when available on the local machine."
|
|
169
167
|
)),
|
|
170
|
-
(
|
|
171
|
-
|
|
172
|
-
6,
|
|
168
|
+
( localize(
|
|
169
|
+
3575,
|
|
173
170
|
"Workspace extension kind. In a remote window, such extensions are enabled only when available on the remote."
|
|
174
171
|
))
|
|
175
172
|
],
|
|
@@ -177,14 +174,13 @@ const extensionKindSchema = {
|
|
|
177
174
|
( (Registry.as(Extensions$1.Configuration)))
|
|
178
175
|
.registerConfiguration({
|
|
179
176
|
id: 'remote',
|
|
180
|
-
title: (
|
|
177
|
+
title: ( localize(3576, "Remote")),
|
|
181
178
|
type: 'object',
|
|
182
179
|
properties: {
|
|
183
180
|
'remote.extensionKind': {
|
|
184
181
|
type: 'object',
|
|
185
|
-
markdownDescription: (
|
|
186
|
-
|
|
187
|
-
8,
|
|
182
|
+
markdownDescription: ( localize(
|
|
183
|
+
3577,
|
|
188
184
|
"Override the kind of an extension. `ui` extensions are installed and run on the local machine while `workspace` extensions are run on the remote. By overriding an extension's default kind using this setting, you specify if that extension should be installed and enabled locally or remotely."
|
|
189
185
|
)),
|
|
190
186
|
patternProperties: {
|
|
@@ -199,41 +195,36 @@ const extensionKindSchema = {
|
|
|
199
195
|
},
|
|
200
196
|
'remote.restoreForwardedPorts': {
|
|
201
197
|
type: 'boolean',
|
|
202
|
-
markdownDescription: (
|
|
198
|
+
markdownDescription: ( localize(3578, "Restores the ports you forwarded in a workspace.")),
|
|
203
199
|
default: true
|
|
204
200
|
},
|
|
205
201
|
'remote.autoForwardPorts': {
|
|
206
202
|
type: 'boolean',
|
|
207
|
-
markdownDescription: (
|
|
208
|
-
|
|
209
|
-
10,
|
|
203
|
+
markdownDescription: ( localize(
|
|
204
|
+
3579,
|
|
210
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."
|
|
211
206
|
)),
|
|
212
207
|
default: true
|
|
213
208
|
},
|
|
214
209
|
'remote.autoForwardPortsSource': {
|
|
215
210
|
type: 'string',
|
|
216
|
-
markdownDescription: (
|
|
217
|
-
|
|
218
|
-
11,
|
|
211
|
+
markdownDescription: ( localize(
|
|
212
|
+
3580,
|
|
219
213
|
"Sets the source from which ports are automatically forwarded when {0} is true. On Windows and macOS remotes, the `process` and `hybrid` options have no effect and `output` will be used.",
|
|
220
214
|
'`#remote.autoForwardPorts#`'
|
|
221
215
|
)),
|
|
222
216
|
enum: ['process', 'output', 'hybrid'],
|
|
223
217
|
enumDescriptions: [
|
|
224
|
-
(
|
|
225
|
-
|
|
226
|
-
12,
|
|
218
|
+
( localize(
|
|
219
|
+
3581,
|
|
227
220
|
"Ports will be automatically forwarded when discovered by watching for processes that are started and include a port."
|
|
228
221
|
)),
|
|
229
|
-
(
|
|
230
|
-
|
|
231
|
-
13,
|
|
222
|
+
( localize(
|
|
223
|
+
3582,
|
|
232
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."
|
|
233
225
|
)),
|
|
234
|
-
(
|
|
235
|
-
|
|
236
|
-
14,
|
|
226
|
+
( localize(
|
|
227
|
+
3583,
|
|
237
228
|
"Ports will be automatically forwarded when discovered by reading terminal and debug output. Not all processes that use ports will print to the integrated terminal or debug console, so some ports will be missed. Ports will be \"un-forwarded\" by watching for processes that listen on that port to be terminated."
|
|
238
229
|
))
|
|
239
230
|
],
|
|
@@ -242,17 +233,15 @@ const extensionKindSchema = {
|
|
|
242
233
|
'remote.autoForwardPortsFallback': {
|
|
243
234
|
type: 'number',
|
|
244
235
|
default: 20,
|
|
245
|
-
markdownDescription: (
|
|
246
|
-
|
|
247
|
-
15,
|
|
236
|
+
markdownDescription: ( localize(
|
|
237
|
+
3584,
|
|
248
238
|
"The number of auto forwarded ports that will trigger the switch from `process` to `hybrid` when automatically forwarding ports and `remote.autoForwardPortsSource` is set to `process` by default. Set to `0` to disable the fallback. When `remote.autoForwardPortsFallback` hasn't been configured, but `remote.autoForwardPortsSource` has, `remote.autoForwardPortsFallback` will be treated as though it's set to `0`."
|
|
249
239
|
))
|
|
250
240
|
},
|
|
251
241
|
'remote.forwardOnOpen': {
|
|
252
242
|
type: 'boolean',
|
|
253
|
-
description: (
|
|
254
|
-
|
|
255
|
-
16,
|
|
243
|
+
description: ( localize(
|
|
244
|
+
3585,
|
|
256
245
|
"Controls whether local URLs with a port will be forwarded when opened from the terminal and the debug console."
|
|
257
246
|
)),
|
|
258
247
|
default: true
|
|
@@ -262,9 +251,8 @@ const extensionKindSchema = {
|
|
|
262
251
|
patternProperties: {
|
|
263
252
|
'(^\\d+(-\\d+)?$)|(.+)': {
|
|
264
253
|
type: 'object',
|
|
265
|
-
description: (
|
|
266
|
-
|
|
267
|
-
17,
|
|
254
|
+
description: ( localize(
|
|
255
|
+
3586,
|
|
268
256
|
"A port, range of ports (ex. \"40000-55000\"), host and port (ex. \"db:1234\"), or regular expression (ex. \".+\\\\/server.js\"). For a port number or range, the attributes will apply to that port number or range of port numbers. Attributes which use a regular expression will apply to ports whose associated process command line matches the expression."
|
|
269
257
|
)),
|
|
270
258
|
properties: {
|
|
@@ -272,59 +260,48 @@ const extensionKindSchema = {
|
|
|
272
260
|
type: 'string',
|
|
273
261
|
enum: ['notify', 'openBrowser', 'openBrowserOnce', 'openPreview', 'silent', 'ignore'],
|
|
274
262
|
enumDescriptions: [
|
|
275
|
-
(
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
"Shows a notification when a port is automatically forwarded."
|
|
279
|
-
)),
|
|
280
|
-
( localizeWithPath(
|
|
281
|
-
_moduleId,
|
|
282
|
-
19,
|
|
263
|
+
( localize(3587, "Shows a notification when a port is automatically forwarded.")),
|
|
264
|
+
( localize(
|
|
265
|
+
3588,
|
|
283
266
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
284
267
|
)),
|
|
285
|
-
(
|
|
286
|
-
|
|
287
|
-
20,
|
|
268
|
+
( localize(
|
|
269
|
+
3589,
|
|
288
270
|
"Opens the browser when the port is automatically forwarded, but only the first time the port is forward during a session. Depending on your settings, this could open an embedded browser."
|
|
289
271
|
)),
|
|
290
|
-
(
|
|
291
|
-
|
|
292
|
-
21,
|
|
272
|
+
( localize(
|
|
273
|
+
3590,
|
|
293
274
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
294
275
|
)),
|
|
295
|
-
(
|
|
296
|
-
|
|
297
|
-
22,
|
|
276
|
+
( localize(
|
|
277
|
+
3591,
|
|
298
278
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
299
279
|
)),
|
|
300
|
-
(
|
|
280
|
+
( localize(3592, "This port will not be automatically forwarded."))
|
|
301
281
|
],
|
|
302
|
-
description: (
|
|
303
|
-
|
|
304
|
-
24,
|
|
282
|
+
description: ( localize(
|
|
283
|
+
3593,
|
|
305
284
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
306
285
|
)),
|
|
307
286
|
default: 'notify'
|
|
308
287
|
},
|
|
309
288
|
'elevateIfNeeded': {
|
|
310
289
|
type: 'boolean',
|
|
311
|
-
description: (
|
|
312
|
-
|
|
313
|
-
25,
|
|
290
|
+
description: ( localize(
|
|
291
|
+
3594,
|
|
314
292
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
315
293
|
)),
|
|
316
294
|
default: false
|
|
317
295
|
},
|
|
318
296
|
'label': {
|
|
319
297
|
type: 'string',
|
|
320
|
-
description: (
|
|
321
|
-
default: (
|
|
298
|
+
description: ( localize(3595, "Label that will be shown in the UI for this port.")),
|
|
299
|
+
default: ( localize(3596, "Application"))
|
|
322
300
|
},
|
|
323
301
|
'requireLocalPort': {
|
|
324
302
|
type: 'boolean',
|
|
325
|
-
markdownDescription: (
|
|
326
|
-
|
|
327
|
-
28,
|
|
303
|
+
markdownDescription: ( localize(
|
|
304
|
+
3597,
|
|
328
305
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
329
306
|
)),
|
|
330
307
|
default: false
|
|
@@ -332,24 +309,22 @@ const extensionKindSchema = {
|
|
|
332
309
|
'protocol': {
|
|
333
310
|
type: 'string',
|
|
334
311
|
enum: ['http', 'https'],
|
|
335
|
-
description: (
|
|
312
|
+
description: ( localize(3598, "The protocol to use when forwarding this port."))
|
|
336
313
|
}
|
|
337
314
|
},
|
|
338
315
|
default: {
|
|
339
|
-
'label': (
|
|
316
|
+
'label': ( localize(3598, "Application")),
|
|
340
317
|
'onAutoForward': 'notify'
|
|
341
318
|
}
|
|
342
319
|
}
|
|
343
320
|
},
|
|
344
|
-
markdownDescription: (
|
|
345
|
-
|
|
346
|
-
30,
|
|
321
|
+
markdownDescription: ( localize(
|
|
322
|
+
3599,
|
|
347
323
|
"Set properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Application\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n},\n\".+\\\\/server.js\": {\n \"onAutoForward\": \"openPreview\"\n}\n```"
|
|
348
324
|
)),
|
|
349
325
|
defaultSnippets: [{ body: { '${1:3000}': { label: '${2:Application}', onAutoForward: 'openPreview' } } }],
|
|
350
|
-
errorMessage: (
|
|
351
|
-
|
|
352
|
-
31,
|
|
326
|
+
errorMessage: ( localize(
|
|
327
|
+
3600,
|
|
353
328
|
"Must be a port number, range of port numbers, or regular expression."
|
|
354
329
|
)),
|
|
355
330
|
additionalProperties: false,
|
|
@@ -369,54 +344,44 @@ const extensionKindSchema = {
|
|
|
369
344
|
type: 'string',
|
|
370
345
|
enum: ['notify', 'openBrowser', 'openPreview', 'silent', 'ignore'],
|
|
371
346
|
enumDescriptions: [
|
|
372
|
-
(
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
"Shows a notification when a port is automatically forwarded."
|
|
376
|
-
)),
|
|
377
|
-
( localizeWithPath(
|
|
378
|
-
_moduleId,
|
|
379
|
-
19,
|
|
347
|
+
( localize(3600, "Shows a notification when a port is automatically forwarded.")),
|
|
348
|
+
( localize(
|
|
349
|
+
3600,
|
|
380
350
|
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."
|
|
381
351
|
)),
|
|
382
|
-
(
|
|
383
|
-
|
|
384
|
-
21,
|
|
352
|
+
( localize(
|
|
353
|
+
3600,
|
|
385
354
|
"Opens a preview in the same window when the port is automatically forwarded."
|
|
386
355
|
)),
|
|
387
|
-
(
|
|
388
|
-
|
|
389
|
-
22,
|
|
356
|
+
( localize(
|
|
357
|
+
3600,
|
|
390
358
|
"Shows no notification and takes no action when this port is automatically forwarded."
|
|
391
359
|
)),
|
|
392
|
-
(
|
|
360
|
+
( localize(3600, "This port will not be automatically forwarded."))
|
|
393
361
|
],
|
|
394
|
-
description: (
|
|
395
|
-
|
|
396
|
-
24,
|
|
362
|
+
description: ( localize(
|
|
363
|
+
3600,
|
|
397
364
|
"Defines the action that occurs when the port is discovered for automatic forwarding"
|
|
398
365
|
)),
|
|
399
366
|
default: 'notify'
|
|
400
367
|
},
|
|
401
368
|
'elevateIfNeeded': {
|
|
402
369
|
type: 'boolean',
|
|
403
|
-
description: (
|
|
404
|
-
|
|
405
|
-
25,
|
|
370
|
+
description: ( localize(
|
|
371
|
+
3600,
|
|
406
372
|
"Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."
|
|
407
373
|
)),
|
|
408
374
|
default: false
|
|
409
375
|
},
|
|
410
376
|
'label': {
|
|
411
377
|
type: 'string',
|
|
412
|
-
description: (
|
|
413
|
-
default: (
|
|
378
|
+
description: ( localize(3600, "Label that will be shown in the UI for this port.")),
|
|
379
|
+
default: ( localize(3600, "Application"))
|
|
414
380
|
},
|
|
415
381
|
'requireLocalPort': {
|
|
416
382
|
type: 'boolean',
|
|
417
|
-
markdownDescription: (
|
|
418
|
-
|
|
419
|
-
28,
|
|
383
|
+
markdownDescription: ( localize(
|
|
384
|
+
3600,
|
|
420
385
|
"When true, a modal dialog will show if the chosen local port isn't used for forwarding."
|
|
421
386
|
)),
|
|
422
387
|
default: false
|
|
@@ -424,13 +389,12 @@ const extensionKindSchema = {
|
|
|
424
389
|
'protocol': {
|
|
425
390
|
type: 'string',
|
|
426
391
|
enum: ['http', 'https'],
|
|
427
|
-
description: (
|
|
392
|
+
description: ( localize(3600, "The protocol to use when forwarding this port."))
|
|
428
393
|
}
|
|
429
394
|
},
|
|
430
395
|
defaultSnippets: [{ body: { onAutoForward: 'ignore' } }],
|
|
431
|
-
markdownDescription: (
|
|
432
|
-
|
|
433
|
-
32,
|
|
396
|
+
markdownDescription: ( localize(
|
|
397
|
+
3601,
|
|
434
398
|
"Set default properties that are applied to all ports that don't get properties from the setting {0}. For example:\n\n```\n{\n \"onAutoForward\": \"ignore\"\n}\n```",
|
|
435
399
|
'`#remote.portsAttributes#`'
|
|
436
400
|
)),
|
|
@@ -440,9 +404,8 @@ const extensionKindSchema = {
|
|
|
440
404
|
type: 'string',
|
|
441
405
|
enum: ['localhost', 'allInterfaces'],
|
|
442
406
|
default: 'localhost',
|
|
443
|
-
description: (
|
|
444
|
-
|
|
445
|
-
33,
|
|
407
|
+
description: ( localize(
|
|
408
|
+
3602,
|
|
446
409
|
"Specifies the local host name that will be used for port forwarding."
|
|
447
410
|
))
|
|
448
411
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
4
4
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
5
5
|
import { RemoteAuthorityResolverError } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
|
|
@@ -16,7 +16,6 @@ import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/use
|
|
|
16
16
|
import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService.service';
|
|
17
17
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
18
18
|
|
|
19
|
-
const _moduleId = "vs/workbench/services/remote/browser/remoteAgentService";
|
|
20
19
|
let RemoteAgentService = class RemoteAgentService extends AbstractRemoteAgentService {
|
|
21
20
|
constructor(remoteSocketFactoryService, userDataProfileService, environmentService, productService, remoteAuthorityResolverService, signService, logService) {
|
|
22
21
|
super(remoteSocketFactoryService, userDataProfileService, environmentService, productService, remoteAuthorityResolverService, signService, logService);
|
|
@@ -46,20 +45,15 @@ let RemoteConnectionFailureNotificationContribution = class RemoteConnectionFail
|
|
|
46
45
|
async _presentConnectionError(err) {
|
|
47
46
|
await this._dialogService.prompt({
|
|
48
47
|
type: Severity$1.Error,
|
|
49
|
-
message: (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"An unexpected error occurred that requires a reload of this page."
|
|
53
|
-
)),
|
|
54
|
-
detail: ( localizeWithPath(
|
|
55
|
-
_moduleId,
|
|
56
|
-
1,
|
|
48
|
+
message: ( localize(3554, "An unexpected error occurred that requires a reload of this page.")),
|
|
49
|
+
detail: ( localize(
|
|
50
|
+
3555,
|
|
57
51
|
"The workbench failed to connect to the server (Error: {0})",
|
|
58
52
|
err ? err.message : ''
|
|
59
53
|
)),
|
|
60
54
|
buttons: [
|
|
61
55
|
{
|
|
62
|
-
label: (
|
|
56
|
+
label: ( localize(3556, "&&Reload")),
|
|
63
57
|
run: () => this._hostService.reload()
|
|
64
58
|
}
|
|
65
59
|
]
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
+
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
2
3
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
3
4
|
import { getDelayedChannel } from 'vscode/vscode/vs/base/parts/ipc/common/ipc';
|
|
4
|
-
import {
|
|
5
|
+
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
6
|
+
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
5
7
|
import { connectRemoteAgentManagement } from 'vscode/vscode/vs/platform/remote/common/remoteAgentConnection';
|
|
6
8
|
import { IRemoteAuthorityResolverService } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver.service';
|
|
7
|
-
import {
|
|
8
|
-
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
9
|
+
import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService.service';
|
|
9
10
|
import { ISignService } from 'vscode/vscode/vs/platform/sign/common/sign.service';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
12
|
+
import { RemoteExtensionEnvironmentChannelClient } from './remoteAgentEnvironmentChannel.js';
|
|
12
13
|
import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
13
|
-
import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService.service';
|
|
14
14
|
|
|
15
15
|
let AbstractRemoteAgentService = class AbstractRemoteAgentService extends Disposable {
|
|
16
16
|
constructor(remoteSocketFactoryService, userDataProfileService, _environmentService, productService, _remoteAuthorityResolverService, signService, logService) {
|
|
@@ -73,6 +73,12 @@ let AbstractRemoteAgentService = class AbstractRemoteAgentService extends Dispos
|
|
|
73
73
|
return Date.now() - start;
|
|
74
74
|
}, undefined);
|
|
75
75
|
}
|
|
76
|
+
async endConnection() {
|
|
77
|
+
if (this._connection) {
|
|
78
|
+
await this._connection.end();
|
|
79
|
+
this._connection.dispose();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
76
82
|
_withChannel(callback, fallback) {
|
|
77
83
|
const connection = this.getConnection();
|
|
78
84
|
if (!connection) {
|
|
@@ -110,6 +116,7 @@ class RemoteAgentConnection extends Disposable {
|
|
|
110
116
|
this.onReconnecting = this._onReconnecting.event;
|
|
111
117
|
this._onDidStateChange = this._register(( new Emitter()));
|
|
112
118
|
this.onDidStateChange = this._onDidStateChange.event;
|
|
119
|
+
this.end = () => Promise.resolve();
|
|
113
120
|
this.remoteAuthority = remoteAuthority;
|
|
114
121
|
this._connection = null;
|
|
115
122
|
}
|
|
@@ -171,6 +178,10 @@ class RemoteAgentConnection extends Disposable {
|
|
|
171
178
|
connection.protocol.onDidDispose(() => {
|
|
172
179
|
connection.dispose();
|
|
173
180
|
});
|
|
181
|
+
this.end = () => {
|
|
182
|
+
connection.protocol.sendDisconnect();
|
|
183
|
+
return connection.protocol.drain();
|
|
184
|
+
};
|
|
174
185
|
this._register(connection.onDidStateChange(e => this._onDidStateChange.fire(e)));
|
|
175
186
|
return connection.client;
|
|
176
187
|
}
|