@codingame/monaco-vscode-remote-agent-service-override 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/external/rollup-plugin-styles/dist/runtime/inject-css.js +3 -0
- package/override/vs/platform/dialogs/common/dialogs.js +10 -0
- package/package.json +3 -3
- package/remoteAgent.js +8 -8
- package/vscode/src/vs/platform/download/common/downloadIpc.js +18 -0
- package/vscode/src/vs/platform/log/common/logIpc.js +28 -0
- package/vscode/src/vs/platform/remote/browser/remoteAuthorityResolverService.js +110 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +135 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/media/remoteViewlet.css.js +6 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.contribution.js +19 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +831 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +166 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +802 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.contribution.js +6 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.js +97 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/showCandidate.js +35 -0
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelFactory.js +110 -0
- package/vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js +515 -0
- package/vscode/src/vs/workbench/services/remote/browser/browserRemoteResourceHandler.js +49 -0
- package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +78 -0
- package/vscode/src/vs/workbench/services/remote/common/abstractRemoteAgentService.js +179 -0
- package/vscode/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.js +54 -0
- package/vscode/src/vs/workbench/services/remote/common/remoteExtensionsScanner.js +73 -0
- package/vscode/src/vs/workbench/services/tunnel/browser/tunnelService.js +36 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=( Object.keys(r.attributes)),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
2
|
+
|
|
3
|
+
export { n as default };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { AbstractDialogHandler, IDialogService, IFileDialogService, getFileNamesMessage } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
|
|
2
|
+
|
|
3
|
+
var ConfirmResult;
|
|
4
|
+
( (function(ConfirmResult) {
|
|
5
|
+
ConfirmResult[ConfirmResult["SAVE"] = 0] = "SAVE";
|
|
6
|
+
ConfirmResult[ConfirmResult["DONT_SAVE"] = 1] = "DONT_SAVE";
|
|
7
|
+
ConfirmResult[ConfirmResult["CANCEL"] = 2] = "CANCEL";
|
|
8
|
+
})(ConfirmResult || (ConfirmResult = {})));
|
|
9
|
+
|
|
10
|
+
export { ConfirmResult };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-remote-agent-service-override",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@4.1.
|
|
22
|
-
"@codingame/monaco-vscode-environment-service-override": "4.1.
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@4.1.2",
|
|
22
|
+
"@codingame/monaco-vscode-environment-service-override": "4.1.2"
|
|
23
23
|
}
|
|
24
24
|
}
|
package/remoteAgent.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate, __param } from './external/tslib/tslib.es6.js';
|
|
2
2
|
import { SyncDescriptor } from 'vscode/vscode/vs/platform/instantiation/common/descriptors';
|
|
3
3
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
|
|
4
|
-
import { RemoteAgentService } from 'vscode/
|
|
4
|
+
import { RemoteAgentService } from './vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js';
|
|
5
5
|
import { IRemoteSocketFactoryService, RemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/common/remoteSocketFactoryService';
|
|
6
6
|
import { IRemoteAuthorityResolverService } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
|
|
7
|
-
import { RemoteAuthorityResolverService } from 'vscode/
|
|
7
|
+
import { RemoteAuthorityResolverService } from './vscode/src/vs/platform/remote/browser/remoteAuthorityResolverService.js';
|
|
8
8
|
import { BrowserSocketFactory } from './vscode/src/vs/platform/remote/browser/browserSocketFactory.js';
|
|
9
9
|
import { RemoteFileSystemProviderClient } from './vscode/src/vs/workbench/services/remote/common/remoteFileSystemProviderClient.js';
|
|
10
10
|
import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/browser/environmentService';
|
|
@@ -12,23 +12,23 @@ import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
|
|
|
12
12
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
13
13
|
import { IRemoteExplorerService, RemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
|
|
14
14
|
import { IExternalUriOpenerService, ExternalUriOpenerService } from 'vscode/vscode/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService';
|
|
15
|
-
import { RemoteExtensionsScannerService } from 'vscode/
|
|
15
|
+
import { RemoteExtensionsScannerService } from './vscode/src/vs/workbench/services/remote/common/remoteExtensionsScanner.js';
|
|
16
16
|
import { IRemoteExtensionsScannerService } from 'vscode/vscode/vs/platform/remote/common/remoteExtensionsScanner';
|
|
17
17
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService';
|
|
18
18
|
import { IEnvironmentService } from 'vscode/vscode/vs/platform/environment/common/environment';
|
|
19
|
-
import { BrowserRemoteResourceLoader } from 'vscode/
|
|
19
|
+
import { BrowserRemoteResourceLoader } from './vscode/src/vs/workbench/services/remote/browser/browserRemoteResourceHandler.js';
|
|
20
20
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService';
|
|
21
21
|
import { IRemoteUserDataProfilesService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/remoteUserDataProfiles';
|
|
22
22
|
import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
|
|
23
23
|
import { IActiveLanguagePackService } from 'vscode/vscode/vs/workbench/services/localization/common/locale';
|
|
24
24
|
import { ITunnelService } from 'vscode/vscode/vs/platform/tunnel/common/tunnel';
|
|
25
|
-
import { TunnelService } from 'vscode/
|
|
25
|
+
import { TunnelService } from './vscode/src/vs/workbench/services/tunnel/browser/tunnelService.js';
|
|
26
26
|
import getServiceOverride$1 from '@codingame/monaco-vscode-environment-service-override';
|
|
27
27
|
import { getWorkbenchConstructionOptions } from 'vscode/workbench';
|
|
28
28
|
import { registerServiceInitializePreParticipant } from 'vscode/lifecycle';
|
|
29
|
-
import 'vscode/
|
|
30
|
-
import 'vscode/
|
|
31
|
-
import 'vscode/
|
|
29
|
+
import './vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js';
|
|
30
|
+
import './vscode/src/vs/workbench/contrib/remote/browser/remote.contribution.js';
|
|
31
|
+
import './vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.contribution.js';
|
|
32
32
|
|
|
33
33
|
let CustomRemoteSocketFactoryService = class CustomRemoteSocketFactoryService extends RemoteSocketFactoryService {
|
|
34
34
|
constructor(browserWorkbenchEnvironmentService) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
2
|
+
|
|
3
|
+
class DownloadServiceChannel {
|
|
4
|
+
constructor(service) {
|
|
5
|
+
this.service = service;
|
|
6
|
+
}
|
|
7
|
+
listen(_, event, arg) {
|
|
8
|
+
throw new Error('Invalid listen');
|
|
9
|
+
}
|
|
10
|
+
call(context, command, args) {
|
|
11
|
+
switch (command) {
|
|
12
|
+
case 'download': return this.service.download(URI.revive(args[0]), URI.revive(args[1]));
|
|
13
|
+
}
|
|
14
|
+
throw new Error('Invalid call');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { DownloadServiceChannel };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
2
|
+
import 'vscode/vscode/vs/base/common/event';
|
|
3
|
+
import 'vscode/vscode/vs/platform/log/common/log';
|
|
4
|
+
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
5
|
+
|
|
6
|
+
class RemoteLoggerChannelClient extends Disposable {
|
|
7
|
+
constructor(loggerService, channel) {
|
|
8
|
+
super();
|
|
9
|
+
channel.call('setLogLevel', [loggerService.getLogLevel()]);
|
|
10
|
+
this._register(loggerService.onDidChangeLogLevel(arg => channel.call('setLogLevel', [arg])));
|
|
11
|
+
channel.call('getRegisteredLoggers').then(loggers => {
|
|
12
|
+
for (const loggerResource of loggers) {
|
|
13
|
+
loggerService.registerLogger({ ...loggerResource, resource: URI.revive(loggerResource.resource) });
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
this._register(channel.listen('onDidChangeVisibility')(([resource, visibility]) => loggerService.setVisibility(URI.revive(resource), visibility)));
|
|
17
|
+
this._register(channel.listen('onDidChangeLoggers')(({ added, removed }) => {
|
|
18
|
+
for (const loggerResource of added) {
|
|
19
|
+
loggerService.registerLogger({ ...loggerResource, resource: URI.revive(loggerResource.resource) });
|
|
20
|
+
}
|
|
21
|
+
for (const loggerResource of removed) {
|
|
22
|
+
loggerService.deregisterLogger(loggerResource.resource);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { RemoteLoggerChannelClient };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
3
|
+
import { DeferredPromise } from 'vscode/vscode/vs/base/common/async';
|
|
4
|
+
import { ErrorNoTelemetry } from 'vscode/vscode/vs/base/common/errors';
|
|
5
|
+
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
6
|
+
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
7
|
+
import { RemoteAuthorities } from 'vscode/vscode/vs/base/common/network';
|
|
8
|
+
import { mark } from 'vscode/vscode/vs/base/common/performance';
|
|
9
|
+
import { StopWatch } from 'vscode/vscode/vs/base/common/stopwatch';
|
|
10
|
+
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
11
|
+
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService';
|
|
12
|
+
import { getRemoteAuthorityPrefix, WebSocketRemoteConnection } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
|
|
13
|
+
import { parseAuthorityWithOptionalPort } from 'vscode/vscode/vs/platform/remote/common/remoteHosts';
|
|
14
|
+
|
|
15
|
+
let RemoteAuthorityResolverService = class RemoteAuthorityResolverService extends Disposable {
|
|
16
|
+
constructor(isWorkbenchOptionsBasedResolution, connectionToken, resourceUriProvider, serverBasePath, productService, _logService) {
|
|
17
|
+
super();
|
|
18
|
+
this._logService = _logService;
|
|
19
|
+
this._onDidChangeConnectionData = this._register(( new Emitter()));
|
|
20
|
+
this.onDidChangeConnectionData = this._onDidChangeConnectionData.event;
|
|
21
|
+
this._resolveAuthorityRequests = ( new Map());
|
|
22
|
+
this._cache = ( new Map());
|
|
23
|
+
this._connectionToken = connectionToken;
|
|
24
|
+
this._connectionTokens = ( new Map());
|
|
25
|
+
this._isWorkbenchOptionsBasedResolution = isWorkbenchOptionsBasedResolution;
|
|
26
|
+
if (resourceUriProvider) {
|
|
27
|
+
RemoteAuthorities.setDelegate(resourceUriProvider);
|
|
28
|
+
}
|
|
29
|
+
RemoteAuthorities.setServerRootPath(productService, serverBasePath);
|
|
30
|
+
}
|
|
31
|
+
async resolveAuthority(authority) {
|
|
32
|
+
let result = this._resolveAuthorityRequests.get(authority);
|
|
33
|
+
if (!result) {
|
|
34
|
+
result = ( new DeferredPromise());
|
|
35
|
+
this._resolveAuthorityRequests.set(authority, result);
|
|
36
|
+
if (this._isWorkbenchOptionsBasedResolution) {
|
|
37
|
+
this._doResolveAuthority(authority).then(v => result.complete(v), (err) => result.error(err));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result.p;
|
|
41
|
+
}
|
|
42
|
+
async getCanonicalURI(uri) {
|
|
43
|
+
return uri;
|
|
44
|
+
}
|
|
45
|
+
getConnectionData(authority) {
|
|
46
|
+
if (!( this._cache.has(authority))) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const resolverResult = this._cache.get(authority);
|
|
50
|
+
const connectionToken = this._connectionTokens.get(authority) || resolverResult.authority.connectionToken;
|
|
51
|
+
return {
|
|
52
|
+
connectTo: resolverResult.authority.connectTo,
|
|
53
|
+
connectionToken: connectionToken
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async _doResolveAuthority(authority) {
|
|
57
|
+
const authorityPrefix = getRemoteAuthorityPrefix(authority);
|
|
58
|
+
const sw = StopWatch.create(false);
|
|
59
|
+
this._logService.info(`Resolving connection token (${authorityPrefix})...`);
|
|
60
|
+
mark(`code/willResolveConnectionToken/${authorityPrefix}`);
|
|
61
|
+
const connectionToken = await Promise.resolve(this._connectionTokens.get(authority) || this._connectionToken);
|
|
62
|
+
mark(`code/didResolveConnectionToken/${authorityPrefix}`);
|
|
63
|
+
this._logService.info(`Resolved connection token (${authorityPrefix}) after ${sw.elapsed()} ms`);
|
|
64
|
+
const defaultPort = (/^https:/.test(mainWindow.location.href) ? 443 : 80);
|
|
65
|
+
const { host, port } = parseAuthorityWithOptionalPort(authority, defaultPort);
|
|
66
|
+
const result = { authority: { authority, connectTo: ( new WebSocketRemoteConnection(host, port)), connectionToken } };
|
|
67
|
+
RemoteAuthorities.set(authority, host, port);
|
|
68
|
+
this._cache.set(authority, result);
|
|
69
|
+
this._onDidChangeConnectionData.fire();
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
_clearResolvedAuthority(authority) {
|
|
73
|
+
if (( this._resolveAuthorityRequests.has(authority))) {
|
|
74
|
+
this._resolveAuthorityRequests.get(authority).cancel();
|
|
75
|
+
this._resolveAuthorityRequests.delete(authority);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
_setResolvedAuthority(resolvedAuthority, options) {
|
|
79
|
+
if (( this._resolveAuthorityRequests.has(resolvedAuthority.authority))) {
|
|
80
|
+
const request = this._resolveAuthorityRequests.get(resolvedAuthority.authority);
|
|
81
|
+
if (resolvedAuthority.connectTo.type === 0 ) {
|
|
82
|
+
RemoteAuthorities.set(resolvedAuthority.authority, resolvedAuthority.connectTo.host, resolvedAuthority.connectTo.port);
|
|
83
|
+
}
|
|
84
|
+
if (resolvedAuthority.connectionToken) {
|
|
85
|
+
RemoteAuthorities.setConnectionToken(resolvedAuthority.authority, resolvedAuthority.connectionToken);
|
|
86
|
+
}
|
|
87
|
+
request.complete({ authority: resolvedAuthority, options });
|
|
88
|
+
this._onDidChangeConnectionData.fire();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
_setResolvedAuthorityError(authority, err) {
|
|
92
|
+
if (( this._resolveAuthorityRequests.has(authority))) {
|
|
93
|
+
const request = this._resolveAuthorityRequests.get(authority);
|
|
94
|
+
request.error(ErrorNoTelemetry.fromError(err));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
_setAuthorityConnectionToken(authority, connectionToken) {
|
|
98
|
+
this._connectionTokens.set(authority, connectionToken);
|
|
99
|
+
RemoteAuthorities.setConnectionToken(authority, connectionToken);
|
|
100
|
+
this._onDidChangeConnectionData.fire();
|
|
101
|
+
}
|
|
102
|
+
_setCanonicalURIProvider(provider) {
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
RemoteAuthorityResolverService = ( __decorate([
|
|
106
|
+
( __param(4, IProductService)),
|
|
107
|
+
( __param(5, ILogService))
|
|
108
|
+
], RemoteAuthorityResolverService));
|
|
109
|
+
|
|
110
|
+
export { RemoteAuthorityResolverService };
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
3
|
+
import { REMOTE_EXPLORER_TYPE_KEY, IRemoteExplorerService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteExplorerService';
|
|
4
|
+
import { isStringArray } from 'vscode/vscode/vs/base/common/types';
|
|
5
|
+
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService';
|
|
6
|
+
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
7
|
+
import { RawContextKey, ContextKeyExpr, IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
8
|
+
import { MenuId, MenuRegistry, registerAction2, Action2 } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
9
|
+
import { VIEWLET_ID } from 'vscode/vscode/vs/workbench/contrib/remote/browser/remoteExplorer';
|
|
10
|
+
import { getVirtualWorkspaceLocation } from 'vscode/vscode/vs/platform/workspace/common/virtualWorkspace';
|
|
11
|
+
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
12
|
+
import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
13
|
+
|
|
14
|
+
const SELECTED_REMOTE_IN_EXPLORER = ( new RawContextKey('selectedRemoteInExplorer', ''));
|
|
15
|
+
let SwitchRemoteViewItem = class SwitchRemoteViewItem extends Disposable {
|
|
16
|
+
constructor(contextKeyService, remoteExplorerService, environmentService, storageService, workspaceContextService) {
|
|
17
|
+
super();
|
|
18
|
+
this.contextKeyService = contextKeyService;
|
|
19
|
+
this.remoteExplorerService = remoteExplorerService;
|
|
20
|
+
this.environmentService = environmentService;
|
|
21
|
+
this.storageService = storageService;
|
|
22
|
+
this.workspaceContextService = workspaceContextService;
|
|
23
|
+
this.completedRemotes = this._register(( new DisposableMap()));
|
|
24
|
+
this.selectedRemoteContext = SELECTED_REMOTE_IN_EXPLORER.bindTo(contextKeyService);
|
|
25
|
+
this.switchRemoteMenu = MenuId.for('workbench.remote.menu.switchRemoteMenu');
|
|
26
|
+
this._register(MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
27
|
+
submenu: this.switchRemoteMenu,
|
|
28
|
+
title: ( localizeWithPath(
|
|
29
|
+
'vs/workbench/contrib/remote/browser/explorerViewItems',
|
|
30
|
+
'switchRemote.label',
|
|
31
|
+
"Switch Remote"
|
|
32
|
+
)),
|
|
33
|
+
group: 'navigation',
|
|
34
|
+
when: ( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)),
|
|
35
|
+
order: 1,
|
|
36
|
+
isSelection: true
|
|
37
|
+
}));
|
|
38
|
+
this._register(remoteExplorerService.onDidChangeTargetType(e => {
|
|
39
|
+
this.select(e);
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
setSelectionForConnection() {
|
|
43
|
+
let isSetForConnection = false;
|
|
44
|
+
if (this.completedRemotes.size > 0) {
|
|
45
|
+
let authority;
|
|
46
|
+
const remoteAuthority = this.environmentService.remoteAuthority;
|
|
47
|
+
let virtualWorkspace;
|
|
48
|
+
if (!remoteAuthority) {
|
|
49
|
+
virtualWorkspace = getVirtualWorkspaceLocation(this.workspaceContextService.getWorkspace())?.scheme;
|
|
50
|
+
}
|
|
51
|
+
isSetForConnection = true;
|
|
52
|
+
const explorerType = remoteAuthority ? [remoteAuthority.split('+')[0]]
|
|
53
|
+
: (virtualWorkspace ? [virtualWorkspace]
|
|
54
|
+
: (this.storageService.get(REMOTE_EXPLORER_TYPE_KEY, 1 )?.split(',') ?? this.storageService.get(REMOTE_EXPLORER_TYPE_KEY, 0 )?.split(',')));
|
|
55
|
+
if (explorerType !== undefined) {
|
|
56
|
+
authority = this.getAuthorityForExplorerType(explorerType);
|
|
57
|
+
}
|
|
58
|
+
if (authority) {
|
|
59
|
+
this.select(authority);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return isSetForConnection;
|
|
63
|
+
}
|
|
64
|
+
select(authority) {
|
|
65
|
+
this.selectedRemoteContext.set(authority[0]);
|
|
66
|
+
this.remoteExplorerService.targetType = authority;
|
|
67
|
+
}
|
|
68
|
+
getAuthorityForExplorerType(explorerType) {
|
|
69
|
+
let authority;
|
|
70
|
+
for (const option of this.completedRemotes) {
|
|
71
|
+
for (const authorityOption of option[1].authority) {
|
|
72
|
+
for (const explorerOption of explorerType) {
|
|
73
|
+
if (authorityOption === explorerOption) {
|
|
74
|
+
authority = option[1].authority;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
else if (option[1].virtualWorkspace === explorerOption) {
|
|
78
|
+
authority = option[1].authority;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return authority;
|
|
85
|
+
}
|
|
86
|
+
removeOptionItems(views) {
|
|
87
|
+
for (const view of views) {
|
|
88
|
+
if (view.group && view.group.startsWith('targets') && view.remoteAuthority && (!view.when || this.contextKeyService.contextMatchesRules(view.when))) {
|
|
89
|
+
const authority = isStringArray(view.remoteAuthority) ? view.remoteAuthority : [view.remoteAuthority];
|
|
90
|
+
this.completedRemotes.deleteAndDispose(authority[0]);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
createOptionItems(views) {
|
|
95
|
+
const startingCount = this.completedRemotes.size;
|
|
96
|
+
for (const view of views) {
|
|
97
|
+
if (view.group && view.group.startsWith('targets') && view.remoteAuthority && (!view.when || this.contextKeyService.contextMatchesRules(view.when))) {
|
|
98
|
+
const text = view.name;
|
|
99
|
+
const authority = isStringArray(view.remoteAuthority) ? view.remoteAuthority : [view.remoteAuthority];
|
|
100
|
+
if (( this.completedRemotes.has(authority[0]))) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const thisCapture = this;
|
|
104
|
+
const action = registerAction2(class extends Action2 {
|
|
105
|
+
constructor() {
|
|
106
|
+
super({
|
|
107
|
+
id: `workbench.action.remoteExplorer.show.${authority[0]}`,
|
|
108
|
+
title: text,
|
|
109
|
+
toggled: ( SELECTED_REMOTE_IN_EXPLORER.isEqualTo(authority[0])),
|
|
110
|
+
menu: {
|
|
111
|
+
id: thisCapture.switchRemoteMenu
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async run() {
|
|
116
|
+
thisCapture.select(authority);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
this.completedRemotes.set(authority[0], { text: text.value, authority, virtualWorkspace: view.virtualWorkspace, dispose: () => action.dispose() });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (this.completedRemotes.size > startingCount) {
|
|
123
|
+
this.setSelectionForConnection();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
SwitchRemoteViewItem = ( __decorate([
|
|
128
|
+
( __param(0, IContextKeyService)),
|
|
129
|
+
( __param(1, IRemoteExplorerService)),
|
|
130
|
+
( __param(2, IWorkbenchEnvironmentService)),
|
|
131
|
+
( __param(3, IStorageService)),
|
|
132
|
+
( __param(4, IWorkspaceContextService))
|
|
133
|
+
], SwitchRemoteViewItem));
|
|
134
|
+
|
|
135
|
+
export { SELECTED_REMOTE_IN_EXPLORER, SwitchRemoteViewItem };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
|
+
|
|
3
|
+
var css = ".remote-help-content .monaco-list .monaco-list-row .remote-help-tree-node-item{display:flex;flex:1;flex-wrap:nowrap;height:22px;line-height:22px;overflow:hidden;text-overflow:ellipsis}.remote-help-content .monaco-list .monaco-list-row .remote-help-tree-node-item>.remote-help-tree-node-item-icon{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-position:0;background-repeat:no-repeat;background-size:16px;height:22px;padding-right:6px;padding-top:3px;width:16px}.remote-help-tree-node-item-icon .monaco-icon-label-container>.monaco-icon-name-container{padding-left:22px}.remote-help-content .monaco-list .monaco-list-row .monaco-tl-twistie{width:0!important}";
|
|
4
|
+
n(css,{});
|
|
5
|
+
|
|
6
|
+
export { css, css as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Extensions, registerWorkbenchContribution2 } from 'vscode/vscode/vs/workbench/common/contributions';
|
|
2
|
+
import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
|
|
3
|
+
import { ShowCandidateContribution } from './showCandidate.js';
|
|
4
|
+
import { TunnelFactoryContribution } from './tunnelFactory.js';
|
|
5
|
+
import { RemoteAgentConnectionStatusListener, RemoteMarkers } from './remote.js';
|
|
6
|
+
import { RemoteStatusIndicator } from './remoteIndicator.js';
|
|
7
|
+
import { ForwardedPortsView, PortRestore, AutomaticPortForwarding } from 'vscode/vscode/vs/workbench/contrib/remote/browser/remoteExplorer';
|
|
8
|
+
import { InitialRemoteConnectionHealthContribution } from './remoteConnectionHealth.js';
|
|
9
|
+
|
|
10
|
+
const workbenchContributionsRegistry = ( Registry.as(Extensions.Workbench));
|
|
11
|
+
registerWorkbenchContribution2(ShowCandidateContribution.ID, ShowCandidateContribution, 2 );
|
|
12
|
+
registerWorkbenchContribution2(TunnelFactoryContribution.ID, TunnelFactoryContribution, 2 );
|
|
13
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(RemoteAgentConnectionStatusListener, 4 );
|
|
14
|
+
registerWorkbenchContribution2(RemoteStatusIndicator.ID, RemoteStatusIndicator, 1 );
|
|
15
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(ForwardedPortsView, 3 );
|
|
16
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(PortRestore, 4 );
|
|
17
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(AutomaticPortForwarding, 4 );
|
|
18
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(RemoteMarkers, 4 );
|
|
19
|
+
workbenchContributionsRegistry.registerWorkbenchContribution(InitialRemoteConnectionHealthContribution, 3 );
|