@codingame/monaco-vscode-extensions-service-override 25.1.2 → 26.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/index.js +7 -0
- package/package.json +3 -3
- package/vscode/src/vs/base/common/console.js +24 -15
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
- package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
- package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
- package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
- package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
|
@@ -12,9 +12,19 @@ import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode
|
|
|
12
12
|
|
|
13
13
|
var MainThreadTelemetry_1;
|
|
14
14
|
let MainThreadTelemetry = class MainThreadTelemetry extends Disposable {
|
|
15
|
-
static {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
static {
|
|
16
|
+
MainThreadTelemetry_1 = this;
|
|
17
|
+
}
|
|
18
|
+
static {
|
|
19
|
+
this._name = "pluginHostTelemetry";
|
|
20
|
+
}
|
|
21
|
+
constructor(
|
|
22
|
+
extHostContext,
|
|
23
|
+
_telemetryService,
|
|
24
|
+
_configurationService,
|
|
25
|
+
_environmentService,
|
|
26
|
+
_productService
|
|
27
|
+
) {
|
|
18
28
|
super();
|
|
19
29
|
this._telemetryService = _telemetryService;
|
|
20
30
|
this._configurationService = _configurationService;
|
|
@@ -28,7 +38,11 @@ let MainThreadTelemetry = class MainThreadTelemetry extends Disposable {
|
|
|
28
38
|
}
|
|
29
39
|
}));
|
|
30
40
|
}
|
|
31
|
-
this._proxy.$initializeTelemetryLevel(
|
|
41
|
+
this._proxy.$initializeTelemetryLevel(
|
|
42
|
+
this.telemetryLevel,
|
|
43
|
+
supportsTelemetry(this._productService, this._environmentService),
|
|
44
|
+
this._productService.enabledTelemetryLevels
|
|
45
|
+
);
|
|
32
46
|
}
|
|
33
47
|
get telemetryLevel() {
|
|
34
48
|
if (!supportsTelemetry(this._productService, this._environmentService)) {
|
|
@@ -44,12 +58,6 @@ let MainThreadTelemetry = class MainThreadTelemetry extends Disposable {
|
|
|
44
58
|
this.$publicLog(eventName, data);
|
|
45
59
|
}
|
|
46
60
|
};
|
|
47
|
-
MainThreadTelemetry = MainThreadTelemetry_1 = __decorate([
|
|
48
|
-
extHostNamedCustomer(MainContext.MainThreadTelemetry),
|
|
49
|
-
( __param(1, ITelemetryService)),
|
|
50
|
-
( __param(2, IConfigurationService)),
|
|
51
|
-
( __param(3, IEnvironmentService)),
|
|
52
|
-
( __param(4, IProductService))
|
|
53
|
-
], MainThreadTelemetry);
|
|
61
|
+
MainThreadTelemetry = MainThreadTelemetry_1 = __decorate([extHostNamedCustomer(MainContext.MainThreadTelemetry), ( __param(1, ITelemetryService)), ( __param(2, IConfigurationService)), ( __param(3, IEnvironmentService)), ( __param(4, IProductService))], MainThreadTelemetry);
|
|
54
62
|
|
|
55
63
|
export { MainThreadTelemetry };
|
|
@@ -25,7 +25,22 @@ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscod
|
|
|
25
25
|
import { hasKey } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
26
26
|
|
|
27
27
|
let MainThreadTerminalService = class MainThreadTerminalService extends Disposable {
|
|
28
|
-
constructor(
|
|
28
|
+
constructor(
|
|
29
|
+
_extHostContext,
|
|
30
|
+
_terminalService,
|
|
31
|
+
_terminalLinkProviderService,
|
|
32
|
+
_terminalQuickFixService,
|
|
33
|
+
_instantiationService,
|
|
34
|
+
_environmentVariableService,
|
|
35
|
+
_logService,
|
|
36
|
+
_terminalProfileResolverService,
|
|
37
|
+
remoteAgentService,
|
|
38
|
+
_terminalGroupService,
|
|
39
|
+
_terminalEditorService,
|
|
40
|
+
_terminalProfileService,
|
|
41
|
+
_terminalCompletionService,
|
|
42
|
+
_environmentService
|
|
43
|
+
) {
|
|
29
44
|
super();
|
|
30
45
|
this._terminalService = _terminalService;
|
|
31
46
|
this._terminalLinkProviderService = _terminalLinkProviderService;
|
|
@@ -49,20 +64,40 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
49
64
|
this._linkProvider = this._register(( new MutableDisposable()));
|
|
50
65
|
this._os = OS;
|
|
51
66
|
this._proxy = ( _extHostContext.getProxy(ExtHostContext.ExtHostTerminalService));
|
|
52
|
-
this._register(_terminalService.onDidCreateInstance(
|
|
67
|
+
this._register(_terminalService.onDidCreateInstance(instance => {
|
|
53
68
|
this._onTerminalOpened(instance);
|
|
54
69
|
this._onInstanceDimensionsChanged(instance);
|
|
55
70
|
}));
|
|
56
|
-
this._register(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this._register(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this._register(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this._register(
|
|
71
|
+
this._register(
|
|
72
|
+
_terminalService.onDidDisposeInstance(instance => this._onTerminalDisposed(instance))
|
|
73
|
+
);
|
|
74
|
+
this._register(
|
|
75
|
+
_terminalService.onAnyInstanceProcessIdReady(instance => this._onTerminalProcessIdReady(instance))
|
|
76
|
+
);
|
|
77
|
+
this._register(
|
|
78
|
+
_terminalService.onDidChangeInstanceDimensions(instance => this._onInstanceDimensionsChanged(instance))
|
|
79
|
+
);
|
|
80
|
+
this._register(
|
|
81
|
+
_terminalService.onAnyInstanceMaximumDimensionsChange(instance => this._onInstanceMaximumDimensionsChanged(instance))
|
|
82
|
+
);
|
|
83
|
+
this._register(
|
|
84
|
+
_terminalService.onDidRequestStartExtensionTerminal(e => this._onRequestStartExtensionTerminal(e))
|
|
85
|
+
);
|
|
86
|
+
this._register(_terminalService.onDidChangeActiveInstance(
|
|
87
|
+
instance => this._onActiveTerminalChanged(instance ? instance.instanceId : null)
|
|
88
|
+
));
|
|
89
|
+
this._register(_terminalService.onAnyInstanceTitleChange(
|
|
90
|
+
instance => instance && this._onTitleChanged(instance.instanceId, instance.title)
|
|
91
|
+
));
|
|
92
|
+
this._register(
|
|
93
|
+
_terminalService.onAnyInstanceDataInput(instance => this._proxy.$acceptTerminalInteraction(instance.instanceId))
|
|
94
|
+
);
|
|
95
|
+
this._register(_terminalService.onAnyInstanceSelectionChange(
|
|
96
|
+
instance => this._proxy.$acceptTerminalSelection(instance.instanceId, instance.selection)
|
|
97
|
+
));
|
|
98
|
+
this._register(
|
|
99
|
+
_terminalService.onAnyInstanceShellTypeChanged(instance => this._onShellTypeChanged(instance.instanceId))
|
|
100
|
+
);
|
|
66
101
|
for (const instance of this._terminalService.instances) {
|
|
67
102
|
this._onTerminalOpened(instance);
|
|
68
103
|
instance.processReady.then(() => this._onTerminalProcessIdReady(instance));
|
|
@@ -88,11 +123,13 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
88
123
|
}
|
|
89
124
|
this._terminalProcessProxies.clear();
|
|
90
125
|
}));
|
|
91
|
-
remoteAgentService.getEnvironment().then(async
|
|
126
|
+
remoteAgentService.getEnvironment().then(async env => {
|
|
92
127
|
this._os = env?.os || OS;
|
|
93
128
|
this._updateDefaultProfile();
|
|
94
129
|
});
|
|
95
|
-
this._register(
|
|
130
|
+
this._register(
|
|
131
|
+
this._terminalProfileService.onDidChangeAvailableProfiles(() => this._updateDefaultProfile())
|
|
132
|
+
);
|
|
96
133
|
this._register(toDisposable(() => {
|
|
97
134
|
for (const provider of ( this._profileProviders.values())) {
|
|
98
135
|
provider.dispose();
|
|
@@ -104,12 +141,19 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
104
141
|
}
|
|
105
142
|
async _updateDefaultProfile() {
|
|
106
143
|
const remoteAuthority = this._environmentService.remoteAuthority;
|
|
107
|
-
const defaultProfile = this._terminalProfileResolverService.getDefaultProfile({
|
|
108
|
-
|
|
144
|
+
const defaultProfile = this._terminalProfileResolverService.getDefaultProfile({
|
|
145
|
+
remoteAuthority,
|
|
146
|
+
os: this._os
|
|
147
|
+
});
|
|
148
|
+
const defaultAutomationProfile = this._terminalProfileResolverService.getDefaultProfile({
|
|
149
|
+
remoteAuthority,
|
|
150
|
+
os: this._os,
|
|
151
|
+
allowAutomationShell: true
|
|
152
|
+
});
|
|
109
153
|
this._proxy.$acceptDefaultProfile(...(await Promise.all([defaultProfile, defaultAutomationProfile])));
|
|
110
154
|
}
|
|
111
155
|
async _getTerminalInstance(id) {
|
|
112
|
-
if (typeof id ===
|
|
156
|
+
if (typeof id === "string") {
|
|
113
157
|
return this._extHostTerminals.get(id);
|
|
114
158
|
}
|
|
115
159
|
return this._terminalService.getInstanceFromId(id);
|
|
@@ -119,7 +163,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
119
163
|
name: launchConfig.name,
|
|
120
164
|
executable: launchConfig.shellPath,
|
|
121
165
|
args: launchConfig.shellArgs,
|
|
122
|
-
cwd: typeof launchConfig.cwd ===
|
|
166
|
+
cwd: typeof launchConfig.cwd === "string" ? launchConfig.cwd : URI.revive(launchConfig.cwd),
|
|
123
167
|
icon: launchConfig.icon,
|
|
124
168
|
color: launchConfig.color,
|
|
125
169
|
initialText: launchConfig.initialText,
|
|
@@ -128,9 +172,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
128
172
|
env: launchConfig.env,
|
|
129
173
|
strictEnv: launchConfig.strictEnv,
|
|
130
174
|
hideFromUser: launchConfig.hideFromUser,
|
|
131
|
-
customPtyImplementation: launchConfig.isExtensionCustomPtyTerminal
|
|
132
|
-
? (id, cols, rows) => ( new TerminalProcessExtHostProxy(id, cols, rows, this._terminalService))
|
|
133
|
-
: undefined,
|
|
175
|
+
customPtyImplementation: launchConfig.isExtensionCustomPtyTerminal ? (id, cols, rows) => ( new TerminalProcessExtHostProxy(id, cols, rows, this._terminalService)) : undefined,
|
|
134
176
|
extHostTerminalId,
|
|
135
177
|
forceShellIntegration: launchConfig.forceShellIntegration,
|
|
136
178
|
isFeatureTerminal: launchConfig.isFeatureTerminal,
|
|
@@ -139,7 +181,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
139
181
|
isTransient: launchConfig.isTransient,
|
|
140
182
|
shellIntegrationNonce: launchConfig.shellIntegrationNonce
|
|
141
183
|
};
|
|
142
|
-
const terminal = Promises.withAsyncBody(async
|
|
184
|
+
const terminal = Promises.withAsyncBody(async r => {
|
|
143
185
|
const terminal = await this._terminalService.createTerminal({
|
|
144
186
|
config: shellLaunchConfig,
|
|
145
187
|
location: await this._deserializeParentTerminal(launchConfig.location)
|
|
@@ -153,9 +195,13 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
153
195
|
}));
|
|
154
196
|
}
|
|
155
197
|
async _deserializeParentTerminal(location) {
|
|
156
|
-
if (typeof location ===
|
|
198
|
+
if (typeof location === "object" && hasKey(location, {
|
|
199
|
+
parentTerminal: true
|
|
200
|
+
})) {
|
|
157
201
|
const parentTerminal = await this._extHostTerminals.get(( location.parentTerminal.toString()));
|
|
158
|
-
return parentTerminal ? {
|
|
202
|
+
return parentTerminal ? {
|
|
203
|
+
parentTerminal
|
|
204
|
+
} : undefined;
|
|
159
205
|
}
|
|
160
206
|
return location;
|
|
161
207
|
}
|
|
@@ -165,8 +211,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
165
211
|
this._terminalService.setActiveInstance(terminalInstance);
|
|
166
212
|
if (terminalInstance.target === TerminalLocation.Editor) {
|
|
167
213
|
await this._terminalEditorService.revealActiveEditor(preserveFocus);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
214
|
+
} else {
|
|
170
215
|
await this._terminalGroupService.showPanel(!preserveFocus);
|
|
171
216
|
}
|
|
172
217
|
}
|
|
@@ -207,7 +252,10 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
207
252
|
if (this._sendCommandEventListener.value) {
|
|
208
253
|
return;
|
|
209
254
|
}
|
|
210
|
-
const multiplexer = this._terminalService.createOnInstanceCapabilityEvent(
|
|
255
|
+
const multiplexer = this._terminalService.createOnInstanceCapabilityEvent(
|
|
256
|
+
TerminalCapability.CommandDetection,
|
|
257
|
+
capability => capability.onCommandFinished
|
|
258
|
+
);
|
|
211
259
|
const sub = multiplexer.event(e => {
|
|
212
260
|
this._onDidExecuteCommand(e.instance.instanceId, {
|
|
213
261
|
commandLine: e.data.command,
|
|
@@ -231,44 +279,57 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
231
279
|
this._terminalService.registerProcessSupport(isSupported);
|
|
232
280
|
}
|
|
233
281
|
$registerCompletionProvider(id, extensionIdentifier, ...triggerCharacters) {
|
|
234
|
-
this._completionProviders.set(
|
|
282
|
+
this._completionProviders.set(
|
|
235
283
|
id,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
resourceOptions: {
|
|
249
|
-
...rest,
|
|
284
|
+
this._terminalCompletionService.registerTerminalCompletionProvider(extensionIdentifier, id, {
|
|
285
|
+
id,
|
|
286
|
+
provideCompletions: async (commandLine, cursorIndex, token) => {
|
|
287
|
+
const completions = await this._proxy.$provideTerminalCompletions(id, {
|
|
288
|
+
commandLine,
|
|
289
|
+
cursorIndex
|
|
290
|
+
}, token);
|
|
291
|
+
if (!completions) {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
if (completions.resourceOptions) {
|
|
295
|
+
const {
|
|
250
296
|
cwd,
|
|
251
|
-
globPattern
|
|
252
|
-
|
|
253
|
-
|
|
297
|
+
globPattern,
|
|
298
|
+
...rest
|
|
299
|
+
} = completions.resourceOptions;
|
|
300
|
+
return {
|
|
301
|
+
items: completions.items?.map(c => ({
|
|
302
|
+
provider: `ext:${id}`,
|
|
303
|
+
...c
|
|
304
|
+
})),
|
|
305
|
+
resourceOptions: {
|
|
306
|
+
...rest,
|
|
307
|
+
cwd,
|
|
308
|
+
globPattern
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
return completions.items?.map(c => ({
|
|
313
|
+
provider: `ext:${id}`,
|
|
314
|
+
...c
|
|
315
|
+
}));
|
|
254
316
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
...c,
|
|
258
|
-
}));
|
|
259
|
-
}
|
|
260
|
-
}, ...triggerCharacters));
|
|
317
|
+
}, ...triggerCharacters)
|
|
318
|
+
);
|
|
261
319
|
}
|
|
262
320
|
$unregisterCompletionProvider(id) {
|
|
263
321
|
this._completionProviders.get(id)?.dispose();
|
|
264
322
|
this._completionProviders.delete(id);
|
|
265
323
|
}
|
|
266
324
|
$registerProfileProvider(id, extensionIdentifier) {
|
|
267
|
-
this._profileProviders.set(
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
325
|
+
this._profileProviders.set(
|
|
326
|
+
id,
|
|
327
|
+
this._terminalProfileService.registerTerminalProfileProvider(extensionIdentifier, id, {
|
|
328
|
+
createContributedTerminalProfile: async options => {
|
|
329
|
+
return this._proxy.$createContributedProfileTerminal(id, options);
|
|
330
|
+
}
|
|
331
|
+
})
|
|
332
|
+
);
|
|
272
333
|
}
|
|
273
334
|
$unregisterProfileProvider(id) {
|
|
274
335
|
this._profileProviders.get(id)?.dispose();
|
|
@@ -282,7 +343,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
282
343
|
}
|
|
283
344
|
if (options.outputMatcher?.length && options.outputMatcher.length > 40) {
|
|
284
345
|
options.outputMatcher.length = 40;
|
|
285
|
-
this._logService.warn(
|
|
346
|
+
this._logService.warn("Cannot exceed output matcher length of 40");
|
|
286
347
|
}
|
|
287
348
|
const commandLineMatch = terminalCommand.command.match(options.commandLineMatcher);
|
|
288
349
|
if (!commandLineMatch || !lines) {
|
|
@@ -296,13 +357,16 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
296
357
|
if (!outputMatch) {
|
|
297
358
|
return;
|
|
298
359
|
}
|
|
299
|
-
const matchResult = {
|
|
360
|
+
const matchResult = {
|
|
361
|
+
commandLineMatch,
|
|
362
|
+
outputMatch,
|
|
363
|
+
commandLine: terminalCommand.command
|
|
364
|
+
};
|
|
300
365
|
if (matchResult) {
|
|
301
366
|
const result = await this._proxy.$provideTerminalQuickFixes(id, matchResult, token);
|
|
302
367
|
if (result && Array.isArray(result)) {
|
|
303
368
|
return ( result.map(r => parseQuickFix(id, extensionId, r)));
|
|
304
|
-
}
|
|
305
|
-
else if (result) {
|
|
369
|
+
} else if (result) {
|
|
306
370
|
return parseQuickFix(id, extensionId, result);
|
|
307
371
|
}
|
|
308
372
|
}
|
|
@@ -333,7 +397,11 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
333
397
|
}
|
|
334
398
|
}
|
|
335
399
|
_onTerminalDisposed(terminalInstance) {
|
|
336
|
-
this._proxy.$acceptTerminalClosed(
|
|
400
|
+
this._proxy.$acceptTerminalClosed(
|
|
401
|
+
terminalInstance.instanceId,
|
|
402
|
+
terminalInstance.exitCode,
|
|
403
|
+
terminalInstance.exitReason ?? TerminalExitReason.Unknown
|
|
404
|
+
);
|
|
337
405
|
const proxy = this._terminalProcessProxies.get(terminalInstance.instanceId);
|
|
338
406
|
if (proxy) {
|
|
339
407
|
proxy.proxy.dispose();
|
|
@@ -352,7 +420,12 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
352
420
|
hideFromUser: terminalInstance.shellLaunchConfig.hideFromUser,
|
|
353
421
|
tabActions: terminalInstance.shellLaunchConfig.tabActions
|
|
354
422
|
};
|
|
355
|
-
this._proxy.$acceptTerminalOpened(
|
|
423
|
+
this._proxy.$acceptTerminalOpened(
|
|
424
|
+
terminalInstance.instanceId,
|
|
425
|
+
extHostTerminalId,
|
|
426
|
+
terminalInstance.title,
|
|
427
|
+
shellLaunchConfigDto
|
|
428
|
+
);
|
|
356
429
|
}
|
|
357
430
|
_onTerminalProcessIdReady(terminalInstance) {
|
|
358
431
|
if (terminalInstance.processId === undefined) {
|
|
@@ -369,16 +442,27 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
369
442
|
_onRequestStartExtensionTerminal(request) {
|
|
370
443
|
const proxy = request.proxy;
|
|
371
444
|
const store = ( new DisposableStore());
|
|
372
|
-
this._terminalProcessProxies.set(proxy.instanceId, {
|
|
445
|
+
this._terminalProcessProxies.set(proxy.instanceId, {
|
|
446
|
+
proxy,
|
|
447
|
+
store
|
|
448
|
+
});
|
|
373
449
|
const initialDimensions = request.cols && request.rows ? {
|
|
374
450
|
columns: request.cols,
|
|
375
451
|
rows: request.rows
|
|
376
452
|
} : undefined;
|
|
377
453
|
this._proxy.$startExtensionTerminal(proxy.instanceId, initialDimensions).then(request.callback);
|
|
378
|
-
store.add(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
store.add(proxy.
|
|
454
|
+
store.add(
|
|
455
|
+
proxy.onInput(data => this._proxy.$acceptProcessInput(proxy.instanceId, data))
|
|
456
|
+
);
|
|
457
|
+
store.add(proxy.onShutdown(
|
|
458
|
+
immediate => this._proxy.$acceptProcessShutdown(proxy.instanceId, immediate)
|
|
459
|
+
));
|
|
460
|
+
store.add(
|
|
461
|
+
proxy.onRequestCwd(() => this._proxy.$acceptProcessRequestCwd(proxy.instanceId))
|
|
462
|
+
);
|
|
463
|
+
store.add(
|
|
464
|
+
proxy.onRequestInitialCwd(() => this._proxy.$acceptProcessRequestInitialCwd(proxy.instanceId))
|
|
465
|
+
);
|
|
382
466
|
}
|
|
383
467
|
$sendProcessData(terminalId, data) {
|
|
384
468
|
this._terminalProcessProxies.get(terminalId)?.proxy.emitData(data);
|
|
@@ -401,8 +485,7 @@ let MainThreadTerminalService = class MainThreadTerminalService extends Disposab
|
|
|
401
485
|
descriptionMap: deserializeEnvironmentDescriptionMap(descriptionMap)
|
|
402
486
|
};
|
|
403
487
|
this._environmentVariableService.set(extensionIdentifier, translatedCollection);
|
|
404
|
-
}
|
|
405
|
-
else {
|
|
488
|
+
} else {
|
|
406
489
|
this._environmentVariableService.delete(extensionIdentifier);
|
|
407
490
|
}
|
|
408
491
|
}
|
|
@@ -432,16 +515,18 @@ let TerminalDataEventTracker = class TerminalDataEventTracker extends Disposable
|
|
|
432
515
|
for (const instance of this._terminalService.instances) {
|
|
433
516
|
this._registerInstance(instance);
|
|
434
517
|
}
|
|
435
|
-
this._register(
|
|
436
|
-
|
|
518
|
+
this._register(
|
|
519
|
+
this._terminalService.onDidCreateInstance(instance => this._registerInstance(instance))
|
|
520
|
+
);
|
|
521
|
+
this._register(
|
|
522
|
+
this._terminalService.onDidDisposeInstance(instance => this._bufferer.stopBuffering(instance.instanceId))
|
|
523
|
+
);
|
|
437
524
|
}
|
|
438
525
|
_registerInstance(instance) {
|
|
439
526
|
this._register(this._bufferer.startBuffering(instance.instanceId, instance.onData));
|
|
440
527
|
}
|
|
441
528
|
};
|
|
442
|
-
TerminalDataEventTracker = ( __decorate([
|
|
443
|
-
( __param(1, ITerminalService))
|
|
444
|
-
], TerminalDataEventTracker));
|
|
529
|
+
TerminalDataEventTracker = ( __decorate([( __param(1, ITerminalService))], TerminalDataEventTracker));
|
|
445
530
|
class ExtensionTerminalLinkProvider {
|
|
446
531
|
constructor(_proxy) {
|
|
447
532
|
this._proxy = _proxy;
|
|
@@ -459,19 +544,30 @@ class ExtensionTerminalLinkProvider {
|
|
|
459
544
|
}
|
|
460
545
|
}
|
|
461
546
|
function getOutputMatchForLines(lines, outputMatcher) {
|
|
462
|
-
const match = lines.join(
|
|
463
|
-
return match ? {
|
|
547
|
+
const match = lines.join("\n").match(outputMatcher.lineMatcher);
|
|
548
|
+
return match ? {
|
|
549
|
+
regexMatch: match,
|
|
550
|
+
outputLines: lines
|
|
551
|
+
} : undefined;
|
|
464
552
|
}
|
|
465
553
|
function parseQuickFix(id, source, fix) {
|
|
466
554
|
let type = TerminalQuickFixType.TerminalCommand;
|
|
467
|
-
if (hasKey(fix, {
|
|
555
|
+
if (hasKey(fix, {
|
|
556
|
+
uri: true
|
|
557
|
+
})) {
|
|
468
558
|
fix.uri = URI.revive(fix.uri);
|
|
469
559
|
type = TerminalQuickFixType.Opener;
|
|
470
|
-
}
|
|
471
|
-
|
|
560
|
+
} else if (hasKey(fix, {
|
|
561
|
+
id: true
|
|
562
|
+
})) {
|
|
472
563
|
type = TerminalQuickFixType.VscodeCommand;
|
|
473
564
|
}
|
|
474
|
-
return {
|
|
565
|
+
return {
|
|
566
|
+
id,
|
|
567
|
+
type,
|
|
568
|
+
source,
|
|
569
|
+
...fix
|
|
570
|
+
};
|
|
475
571
|
}
|
|
476
572
|
|
|
477
573
|
export { MainThreadTerminalService, getOutputMatchForLines };
|
|
@@ -11,7 +11,12 @@ import { TerminalShellExecutionCommandLineConfidence } from '@codingame/monaco-v
|
|
|
11
11
|
import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service';
|
|
12
12
|
|
|
13
13
|
let MainThreadTerminalShellIntegration = class MainThreadTerminalShellIntegration extends Disposable {
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(
|
|
15
|
+
extHostContext,
|
|
16
|
+
_terminalService,
|
|
17
|
+
workbenchEnvironmentService,
|
|
18
|
+
_extensionService
|
|
19
|
+
) {
|
|
15
20
|
super();
|
|
16
21
|
this._terminalService = _terminalService;
|
|
17
22
|
this._extensionService = _extensionService;
|
|
@@ -32,20 +37,26 @@ let MainThreadTerminalShellIntegration = class MainThreadTerminalShellIntegratio
|
|
|
32
37
|
return ( Event.map(instance.capabilities.onDidAddCommandDetectionCapability, () => instance));
|
|
33
38
|
})).event;
|
|
34
39
|
this._store.add(onDidAddCommandDetection(e => this._enableShellIntegration(e)));
|
|
35
|
-
const cwdChangeEvent = this._store.add(
|
|
40
|
+
const cwdChangeEvent = this._store.add(
|
|
41
|
+
this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CwdDetection, e => e.onDidChangeCwd)
|
|
42
|
+
);
|
|
36
43
|
this._store.add(cwdChangeEvent.event(e => {
|
|
37
44
|
this._proxy.$cwdChange(e.instance.instanceId, e.data);
|
|
38
45
|
}));
|
|
39
|
-
const envChangeEvent = this._store.add(
|
|
46
|
+
const envChangeEvent = this._store.add(
|
|
47
|
+
this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.ShellEnvDetection, e => e.onDidChangeEnv)
|
|
48
|
+
);
|
|
40
49
|
this._store.add(envChangeEvent.event(e => {
|
|
41
|
-
if (e.data.value && typeof e.data.value ===
|
|
50
|
+
if (e.data.value && typeof e.data.value === "object") {
|
|
42
51
|
const envValue = e.data.value;
|
|
43
52
|
const keysArr = ( Object.keys(envValue));
|
|
44
53
|
const valuesArr = ( Object.values(envValue));
|
|
45
54
|
this._proxy.$shellEnvChange(e.instance.instanceId, keysArr, valuesArr, e.data.isTrusted);
|
|
46
55
|
}
|
|
47
56
|
}));
|
|
48
|
-
const commandDetectionStartEvent = this._store.add(
|
|
57
|
+
const commandDetectionStartEvent = this._store.add(
|
|
58
|
+
this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CommandDetection, e => e.onCommandExecuted)
|
|
59
|
+
);
|
|
49
60
|
let currentCommand;
|
|
50
61
|
this._store.add(commandDetectionStartEvent.event(e => {
|
|
51
62
|
if (e.data === currentCommand) {
|
|
@@ -53,26 +64,46 @@ let MainThreadTerminalShellIntegration = class MainThreadTerminalShellIntegratio
|
|
|
53
64
|
}
|
|
54
65
|
currentCommand = e.data;
|
|
55
66
|
const instanceId = e.instance.instanceId;
|
|
56
|
-
this._proxy.$shellExecutionStart(
|
|
67
|
+
this._proxy.$shellExecutionStart(
|
|
68
|
+
instanceId,
|
|
69
|
+
instanceSupportsExecuteCommandApi(e.instance),
|
|
70
|
+
e.data.command,
|
|
71
|
+
convertToExtHostCommandLineConfidence(e.data),
|
|
72
|
+
e.data.isTrusted,
|
|
73
|
+
e.data.cwd
|
|
74
|
+
);
|
|
57
75
|
instanceDataListeners.get(instanceId)?.dispose();
|
|
58
|
-
instanceDataListeners.set(
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
instanceDataListeners.set(
|
|
77
|
+
instanceId,
|
|
78
|
+
Event.accumulate(e.instance.onData, 50, true, this._store)(events => {
|
|
79
|
+
this._proxy.$shellExecutionData(instanceId, events.join(""));
|
|
80
|
+
})
|
|
81
|
+
);
|
|
61
82
|
}));
|
|
62
|
-
const commandDetectionEndEvent = this._store.add(
|
|
83
|
+
const commandDetectionEndEvent = this._store.add(
|
|
84
|
+
this._terminalService.createOnInstanceCapabilityEvent(TerminalCapability.CommandDetection, e => e.onCommandFinished)
|
|
85
|
+
);
|
|
63
86
|
this._store.add(commandDetectionEndEvent.event(e => {
|
|
64
87
|
currentCommand = undefined;
|
|
65
88
|
const instanceId = e.instance.instanceId;
|
|
66
89
|
instanceDataListeners.get(instanceId)?.dispose();
|
|
67
|
-
this._proxy.$shellExecutionEnd(
|
|
90
|
+
this._proxy.$shellExecutionEnd(
|
|
91
|
+
instanceId,
|
|
92
|
+
e.data.command,
|
|
93
|
+
convertToExtHostCommandLineConfidence(e.data),
|
|
94
|
+
e.data.isTrusted,
|
|
95
|
+
e.data.exitCode
|
|
96
|
+
);
|
|
68
97
|
}));
|
|
69
|
-
this._store.add(
|
|
98
|
+
this._store.add(
|
|
99
|
+
this._terminalService.onDidDisposeInstance(e => this._proxy.$closeTerminal(e.instanceId))
|
|
100
|
+
);
|
|
70
101
|
}
|
|
71
102
|
$executeCommand(terminalId, commandLine) {
|
|
72
103
|
this._terminalService.getInstanceFromId(terminalId)?.runCommand(commandLine, true);
|
|
73
104
|
}
|
|
74
105
|
_enableShellIntegration(instance) {
|
|
75
|
-
this._extensionService.activateByEvent(
|
|
106
|
+
this._extensionService.activateByEvent("onTerminalShellIntegration:*");
|
|
76
107
|
if (instance.shellType) {
|
|
77
108
|
this._extensionService.activateByEvent(`onTerminalShellIntegration:${instance.shellType}`);
|
|
78
109
|
}
|
|
@@ -91,17 +122,17 @@ MainThreadTerminalShellIntegration = __decorate([
|
|
|
91
122
|
], MainThreadTerminalShellIntegration);
|
|
92
123
|
function convertToExtHostCommandLineConfidence(command) {
|
|
93
124
|
switch (command.commandLineConfidence) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
125
|
+
case "high":
|
|
126
|
+
return TerminalShellExecutionCommandLineConfidence.High;
|
|
127
|
+
case "medium":
|
|
128
|
+
return TerminalShellExecutionCommandLineConfidence.Medium;
|
|
129
|
+
case "low":
|
|
130
|
+
default:
|
|
131
|
+
return TerminalShellExecutionCommandLineConfidence.Low;
|
|
101
132
|
}
|
|
102
133
|
}
|
|
103
134
|
function instanceSupportsExecuteCommandApi(instance) {
|
|
104
|
-
return instance.shellLaunchConfig.type !==
|
|
135
|
+
return instance.shellLaunchConfig.type !== "Task";
|
|
105
136
|
}
|
|
106
137
|
|
|
107
138
|
export { MainThreadTerminalShellIntegration };
|