@opensumi/ide-terminal-next 2.17.8 → 2.18.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/lib/browser/component/tab.item.d.ts.map +1 -1
- package/lib/browser/component/tab.item.js +33 -12
- package/lib/browser/component/tab.item.js.map +1 -1
- package/lib/browser/component/tab.module.less +41 -12
- package/lib/browser/component/tab.view.d.ts.map +1 -1
- package/lib/browser/component/tab.view.js +25 -7
- package/lib/browser/component/tab.view.js.map +1 -1
- package/lib/browser/component/terminal.view.d.ts.map +1 -1
- package/lib/browser/component/terminal.view.js +25 -24
- package/lib/browser/component/terminal.view.js.map +1 -1
- package/lib/browser/contribution/terminal.menu.d.ts.map +1 -1
- package/lib/browser/contribution/terminal.menu.js +3 -4
- package/lib/browser/contribution/terminal.menu.js.map +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +0 -5
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/links/link-manager.d.ts.map +1 -1
- package/lib/browser/links/link-manager.js +11 -12
- package/lib/browser/links/link-manager.js.map +1 -1
- package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -1
- package/lib/browser/links/validated-local-link-provider.js +1 -2
- package/lib/browser/links/validated-local-link-provider.js.map +1 -1
- package/lib/browser/terminal.addon.d.ts.map +1 -1
- package/lib/browser/terminal.addon.js +3 -1
- package/lib/browser/terminal.addon.js.map +1 -1
- package/lib/browser/terminal.api.d.ts +4 -2
- package/lib/browser/terminal.api.d.ts.map +1 -1
- package/lib/browser/terminal.api.js +7 -1
- package/lib/browser/terminal.api.js.map +1 -1
- package/lib/browser/terminal.client.d.ts +7 -4
- package/lib/browser/terminal.client.d.ts.map +1 -1
- package/lib/browser/terminal.client.js +20 -45
- package/lib/browser/terminal.client.js.map +1 -1
- package/lib/browser/terminal.context-menu.d.ts +2 -0
- package/lib/browser/terminal.context-menu.d.ts.map +1 -1
- package/lib/browser/terminal.context-menu.js +23 -4
- package/lib/browser/terminal.context-menu.js.map +1 -1
- package/lib/browser/terminal.controller.d.ts +16 -3
- package/lib/browser/terminal.controller.d.ts.map +1 -1
- package/lib/browser/terminal.controller.js +161 -27
- package/lib/browser/terminal.controller.js.map +1 -1
- package/lib/browser/terminal.input.js +2 -2
- package/lib/browser/terminal.input.js.map +1 -1
- package/lib/browser/terminal.internal.service.d.ts +6 -6
- package/lib/browser/terminal.internal.service.d.ts.map +1 -1
- package/lib/browser/terminal.internal.service.js +4 -23
- package/lib/browser/terminal.internal.service.js.map +1 -1
- package/lib/browser/terminal.profile.d.ts +18 -9
- package/lib/browser/terminal.profile.d.ts.map +1 -1
- package/lib/browser/terminal.profile.internal.d.ts.map +1 -1
- package/lib/browser/terminal.profile.internal.js +4 -6
- package/lib/browser/terminal.profile.internal.js.map +1 -1
- package/lib/browser/terminal.profile.js +59 -9
- package/lib/browser/terminal.profile.js.map +1 -1
- package/lib/browser/terminal.restore.d.ts.map +1 -1
- package/lib/browser/terminal.restore.js +3 -1
- package/lib/browser/terminal.restore.js.map +1 -1
- package/lib/browser/terminal.search.d.ts.map +1 -1
- package/lib/browser/terminal.search.js +6 -0
- package/lib/browser/terminal.search.js.map +1 -1
- package/lib/browser/terminal.service.d.ts +5 -17
- package/lib/browser/terminal.service.d.ts.map +1 -1
- package/lib/browser/terminal.service.js +6 -79
- package/lib/browser/terminal.service.js.map +1 -1
- package/lib/browser/terminal.view.d.ts +5 -3
- package/lib/browser/terminal.view.d.ts.map +1 -1
- package/lib/browser/terminal.view.js +9 -5
- package/lib/browser/terminal.view.js.map +1 -1
- package/lib/browser/xterm.d.ts +2 -1
- package/lib/browser/xterm.d.ts.map +1 -1
- package/lib/browser/xterm.js.map +1 -1
- package/lib/common/api.d.ts +3 -2
- package/lib/common/api.d.ts.map +1 -1
- package/lib/common/client.d.ts +17 -0
- package/lib/common/client.d.ts.map +1 -1
- package/lib/common/client.js +2 -1
- package/lib/common/client.js.map +1 -1
- package/lib/common/controller.d.ts +20 -5
- package/lib/common/controller.d.ts.map +1 -1
- package/lib/common/controller.js.map +1 -1
- package/lib/common/environmentVariable.d.ts +2 -3
- package/lib/common/environmentVariable.d.ts.map +1 -1
- package/lib/common/environmentVariable.js.map +1 -1
- package/lib/common/environmentVariableCollection.d.ts +2 -3
- package/lib/common/environmentVariableCollection.d.ts.map +1 -1
- package/lib/common/environmentVariableCollection.js +2 -2
- package/lib/common/environmentVariableCollection.js.map +1 -1
- package/lib/common/profile.d.ts +6 -9
- package/lib/common/profile.d.ts.map +1 -1
- package/lib/common/profile.js +1 -2
- package/lib/common/profile.js.map +1 -1
- package/lib/common/pty.d.ts +91 -11
- package/lib/common/pty.d.ts.map +1 -1
- package/lib/common/pty.js +40 -1
- package/lib/common/pty.js.map +1 -1
- package/lib/common/render.d.ts +5 -0
- package/lib/common/render.d.ts.map +1 -1
- package/lib/common/render.js.map +1 -1
- package/lib/common/resize.d.ts +2 -0
- package/lib/common/resize.d.ts.map +1 -1
- package/lib/common/service.d.ts +8 -11
- package/lib/common/service.d.ts.map +1 -1
- package/lib/common/service.js.map +1 -1
- package/lib/common/xterm.d.ts +16 -0
- package/lib/common/xterm.d.ts.map +1 -0
- package/lib/common/xterm.js +3 -0
- package/lib/common/xterm.js.map +1 -0
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +5 -0
- package/lib/node/index.js.map +1 -1
- package/lib/node/pty.d.ts +9 -5
- package/lib/node/pty.d.ts.map +1 -1
- package/lib/node/pty.js +13 -10
- package/lib/node/pty.js.map +1 -1
- package/lib/node/pty.manager.d.ts +52 -0
- package/lib/node/pty.manager.d.ts.map +1 -0
- package/lib/node/pty.manager.js +149 -0
- package/lib/node/pty.manager.js.map +1 -0
- package/lib/node/pty.manager.remote.d.ts +10 -0
- package/lib/node/pty.manager.remote.d.ts.map +1 -0
- package/lib/node/pty.manager.remote.js +92 -0
- package/lib/node/pty.manager.remote.js.map +1 -0
- package/lib/node/pty.proxy.d.ts +45 -0
- package/lib/node/pty.proxy.d.ts.map +1 -0
- package/lib/node/pty.proxy.js +255 -0
- package/lib/node/pty.proxy.js.map +1 -0
- package/lib/node/pty.proxy.remote.exec.d.ts +2 -0
- package/lib/node/pty.proxy.remote.exec.d.ts.map +1 -0
- package/lib/node/pty.proxy.remote.exec.js +7 -0
- package/lib/node/pty.proxy.remote.exec.js.map +1 -0
- package/lib/node/shell.d.ts +1 -1
- package/lib/node/shell.d.ts.map +1 -1
- package/lib/node/shell.js +14 -15
- package/lib/node/shell.js.map +1 -1
- package/lib/node/terminal.profile.service.d.ts.map +1 -1
- package/lib/node/terminal.profile.service.js +4 -6
- package/lib/node/terminal.profile.service.js.map +1 -1
- package/lib/node/terminal.service.client.d.ts +3 -8
- package/lib/node/terminal.service.client.d.ts.map +1 -1
- package/lib/node/terminal.service.client.js +8 -39
- package/lib/node/terminal.service.client.js.map +1 -1
- package/lib/node/terminal.service.d.ts +3 -2
- package/lib/node/terminal.service.d.ts.map +1 -1
- package/lib/node/terminal.service.js +36 -10
- package/lib/node/terminal.service.js.map +1 -1
- package/package.json +16 -16
- package/lib/browser/terminal.contribution.d.ts +0 -7
- package/lib/browser/terminal.contribution.d.ts.map +0 -1
- package/lib/browser/terminal.contribution.js +0 -32
- package/lib/browser/terminal.contribution.js.map +0 -1
- package/lib/common/menu.d.ts +0 -5
- package/lib/common/menu.d.ts.map +0 -1
- package/lib/common/menu.js +0 -9
- package/lib/common/menu.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.internal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.internal.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.internal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.internal.service.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,qBACa,uBAAwB,YAAW,wBAAwB;IAEtE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAEnD,OAAO,CAAC,sBAAsB,CAAkD;IAEhF,iBAAiB;IAIjB,UAAU;IAIV,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE;IAI1B,OAAO,CAAC,gBAAgB;IAIlB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQ3C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQ1D,WAAW,CAAC,SAAS,EAAE,MAAM;IASvB,YAAY,CAAC,SAAS,EAAE,MAAM;IAQpC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI;IAIhD,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;IAI9C,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI;IAI1D,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAIjC,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI7D,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC,kBAAkB,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IAI1D,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CAkB5C"}
|
|
@@ -4,7 +4,6 @@ exports.TerminalInternalService = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const di_1 = require("@opensumi/di");
|
|
6
6
|
const common_1 = require("../common");
|
|
7
|
-
const terminal_ext_host_proxy_1 = require("./terminal.ext.host.proxy");
|
|
8
7
|
let TerminalInternalService = class TerminalInternalService {
|
|
9
8
|
constructor() {
|
|
10
9
|
this._processExtHostProxies = new Map();
|
|
@@ -21,24 +20,6 @@ let TerminalInternalService = class TerminalInternalService {
|
|
|
21
20
|
_getExtHostProxy(id) {
|
|
22
21
|
return this._processExtHostProxies.get(id);
|
|
23
22
|
}
|
|
24
|
-
async attach(sessionId, xterm, rows, cols, options = {}, type) {
|
|
25
|
-
if (options.isExtensionTerminal) {
|
|
26
|
-
const proxy = new terminal_ext_host_proxy_1.TerminalProcessExtHostProxy(sessionId, cols, rows, this.controller);
|
|
27
|
-
proxy.start();
|
|
28
|
-
proxy.onProcessExit(() => {
|
|
29
|
-
this._processExtHostProxies.delete(sessionId);
|
|
30
|
-
});
|
|
31
|
-
this._processExtHostProxies.set(sessionId, proxy);
|
|
32
|
-
return {
|
|
33
|
-
name: options.name || 'ExtensionTerminal-' + sessionId,
|
|
34
|
-
readonly: false,
|
|
35
|
-
onData: proxy.onProcessData.bind(proxy),
|
|
36
|
-
sendData: proxy.input.bind(proxy),
|
|
37
|
-
onExit: proxy.onProcessExit.bind(proxy),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return this.service.attach(sessionId, xterm, rows, cols, options, type);
|
|
41
|
-
}
|
|
42
23
|
async sendText(sessionId, message) {
|
|
43
24
|
const proxy = this._getExtHostProxy(sessionId);
|
|
44
25
|
if (proxy) {
|
|
@@ -77,8 +58,8 @@ let TerminalInternalService = class TerminalInternalService {
|
|
|
77
58
|
onProcessChange(handler) {
|
|
78
59
|
return this.service.onProcessChange(handler);
|
|
79
60
|
}
|
|
80
|
-
async
|
|
81
|
-
return await this.service.
|
|
61
|
+
async getOS() {
|
|
62
|
+
return await this.service.getOS();
|
|
82
63
|
}
|
|
83
64
|
async getProfiles(autoDetect) {
|
|
84
65
|
return await this.service.getProfiles(autoDetect);
|
|
@@ -89,7 +70,7 @@ let TerminalInternalService = class TerminalInternalService {
|
|
|
89
70
|
async getCodePlatformKey() {
|
|
90
71
|
return await this.service.getCodePlatformKey();
|
|
91
72
|
}
|
|
92
|
-
async attachByLaunchConfig(sessionId, cols, rows, launchConfig) {
|
|
73
|
+
async attachByLaunchConfig(sessionId, cols, rows, launchConfig, xterm) {
|
|
93
74
|
if (launchConfig.customPtyImplementation) {
|
|
94
75
|
const proxy = launchConfig.customPtyImplementation(sessionId, cols, rows);
|
|
95
76
|
proxy.start();
|
|
@@ -105,7 +86,7 @@ let TerminalInternalService = class TerminalInternalService {
|
|
|
105
86
|
onExit: proxy.onProcessExit.bind(proxy),
|
|
106
87
|
};
|
|
107
88
|
}
|
|
108
|
-
return await this.service.attachByLaunchConfig(sessionId, cols, rows, launchConfig);
|
|
89
|
+
return await this.service.attachByLaunchConfig(sessionId, cols, rows, launchConfig, xterm);
|
|
109
90
|
}
|
|
110
91
|
};
|
|
111
92
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.internal.service.js","sourceRoot":"","sources":["../../src/browser/terminal.internal.service.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"terminal.internal.service.js","sourceRoot":"","sources":["../../src/browser/terminal.internal.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,37 @@
|
|
|
1
|
-
import { PreferenceService } from '@opensumi/ide-core-browser';
|
|
2
1
|
import { WithEventBus, IDisposable, Event } from '@opensumi/ide-core-common';
|
|
3
|
-
import { IExtensionTerminalProfile,
|
|
2
|
+
import { IExtensionTerminalProfile, ISaveContributedProfileArgs, IShellLaunchConfig, ITerminalProfile, ITerminalProfileProvider, ITerminalProfileService, ICreateContributedTerminalProfileOptions, ITerminalContributions } from '../common';
|
|
4
3
|
export declare class TerminalProfileService extends WithEventBus implements ITerminalProfileService {
|
|
5
|
-
private
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private
|
|
4
|
+
private readonly terminalService;
|
|
5
|
+
private readonly preferenceService;
|
|
6
|
+
private readonly logger;
|
|
7
|
+
private readonly _profilesReadyBarrier;
|
|
8
|
+
private onTerminalProfileResolvedEmitter;
|
|
9
|
+
/**
|
|
10
|
+
* 当用户创建了一个 Profile 时发出的事件
|
|
11
|
+
*/
|
|
12
|
+
get onTerminalProfileResolved(): Event<string>;
|
|
10
13
|
get profilesReady(): Promise<void>;
|
|
11
14
|
private readonly _onDidChangeAvailableProfiles;
|
|
12
15
|
get onDidChangeAvailableProfiles(): Event<ITerminalProfile[]>;
|
|
13
16
|
constructor();
|
|
14
17
|
private readonly _profileProviders;
|
|
18
|
+
private _availableProfiles;
|
|
15
19
|
get availableProfiles(): ITerminalProfile[];
|
|
16
20
|
private _contributedProfiles;
|
|
17
21
|
get contributedProfiles(): IExtensionTerminalProfile[];
|
|
18
22
|
getDefaultProfileName(): string | undefined;
|
|
19
23
|
refreshAvailableProfiles(): void;
|
|
20
24
|
getContributedProfileProvider(extensionIdentifier: string, id: string): ITerminalProfileProvider | undefined;
|
|
21
|
-
|
|
25
|
+
createContributedTerminalProfile(extensionIdentifier: string, id: string, options: ICreateContributedTerminalProfileOptions): Promise<void>;
|
|
26
|
+
registerTerminalProfileProvider(extensionIdentifier: string, id: string, profileProvider: ITerminalProfileProvider): IDisposable;
|
|
22
27
|
private _detectProfiles;
|
|
23
28
|
private _updateContributedProfiles;
|
|
24
29
|
protected _refreshAvailableProfilesNow(): Promise<void>;
|
|
25
30
|
getContributedDefaultProfile(shellLaunchConfig: IShellLaunchConfig): Promise<IExtensionTerminalProfile | undefined>;
|
|
26
|
-
|
|
31
|
+
saveContributedProfile(args: ISaveContributedProfileArgs): Promise<void>;
|
|
32
|
+
private _rawContributedProfileMap;
|
|
33
|
+
get rawContributedProfiles(): IExtensionTerminalProfile[];
|
|
34
|
+
addContributedProfile(extensionId: string, contributions: ITerminalContributions): void;
|
|
35
|
+
removeContributedProfile(extensionId: string): void;
|
|
27
36
|
}
|
|
28
37
|
//# sourceMappingURL=terminal.profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.profile.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.profile.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.profile.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,YAAY,EACZ,WAAW,EACX,KAAK,EAMN,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAEhB,wBAAwB,EACxB,uBAAuB,EAGvB,wCAAwC,EAExC,sBAAsB,EACvB,MAAM,WAAW,CAAC;AAKnB,qBACa,sBAAuB,SAAQ,YAAa,YAAW,uBAAuB;IAEzF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IAGnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAGtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAkB;IAExD,OAAO,CAAC,gCAAgC,CAAkC;IAE1E;;OAEG;IACH,IAAI,yBAAyB,kBAE5B;IAED,IAAI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjC;IACD,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAqC;IACnF,IAAI,4BAA4B,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAE5D;;IAWD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CACtB;IAEZ,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,IAAI,iBAAiB,IAAI,gBAAgB,EAAE,CAE1C;IAED,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,IAAI,mBAAmB,IAAI,yBAAyB,EAAE,CAErD;IAED,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAO3C,wBAAwB,IAAI,IAAI;IAIhC,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAKtG,gCAAgC,CACpC,mBAAmB,EAAE,MAAM,EAC3B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,wCAAwC,GAChD,OAAO,CAAC,IAAI,CAAC;IAcT,+BAA+B,CACpC,mBAAmB,EAAE,MAAM,EAC3B,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,wBAAwB,GACxC,WAAW;YAUA,eAAe;YAIf,0BAA0B;cAyBxB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvD,4BAA4B,CAChC,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAY3C,sBAAsB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9E,OAAO,CAAC,yBAAyB,CAAgD;IACjF,IAAI,sBAAsB,gCAEzB;IAED,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,sBAAsB;IAYhF,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CASpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.profile.internal.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.profile.internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"terminal.profile.internal.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.profile.internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AAMnB,qBACa,8BAA+B,YAAW,+BAA+B;IAEpF,cAAc,EAAE,uBAAuB,CAAC;IAGxC,eAAe,EAAE,gBAAgB,CAAC;IAGlC,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;YAE9C,0BAA0B;IA+BlC,qBAAqB,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAerG,yBAAyB;YASjB,+BAA+B;CAoB9C"}
|
|
@@ -8,8 +8,6 @@ exports.TerminalProfileInternalService = void 0;
|
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
const di_1 = require("@opensumi/di");
|
|
10
10
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
11
|
-
const path = tslib_1.__importStar(require("@opensumi/ide-core-common/lib/path"));
|
|
12
|
-
const platform_1 = require("@opensumi/ide-core-common/lib/platform");
|
|
13
11
|
const common_1 = require("../common");
|
|
14
12
|
const generatedProfileName = 'Generated Profile';
|
|
15
13
|
let TerminalProfileInternalService = class TerminalProfileInternalService {
|
|
@@ -23,8 +21,8 @@ let TerminalProfileInternalService = class TerminalProfileInternalService {
|
|
|
23
21
|
let shellPath = shellType;
|
|
24
22
|
const args = [];
|
|
25
23
|
const platformKey = await this.terminalService.getCodePlatformKey();
|
|
26
|
-
const terminalOs = await this.terminalService.
|
|
27
|
-
if (terminalOs ===
|
|
24
|
+
const terminalOs = await this.terminalService.getOS();
|
|
25
|
+
if (terminalOs === ide_core_browser_1.OperatingSystem.Windows) {
|
|
28
26
|
shellPath = (_a = (await this.serviceClientRPC.$resolveWindowsShellPath(shellType))) !== null && _a !== void 0 ? _a : shellPath;
|
|
29
27
|
}
|
|
30
28
|
else {
|
|
@@ -66,8 +64,8 @@ let TerminalProfileInternalService = class TerminalProfileInternalService {
|
|
|
66
64
|
const executable = await this.terminalService.getDefaultSystemShell();
|
|
67
65
|
// Finally fallback to a generated profile
|
|
68
66
|
let args;
|
|
69
|
-
const os = (_a = options === null || options === void 0 ? void 0 : options.os) !== null && _a !== void 0 ? _a : (await this.terminalService.
|
|
70
|
-
if (os ===
|
|
67
|
+
const os = (_a = options === null || options === void 0 ? void 0 : options.os) !== null && _a !== void 0 ? _a : (await this.terminalService.getOS());
|
|
68
|
+
if (os === ide_core_browser_1.OperatingSystem.Macintosh && ide_core_browser_1.path.parse(executable).name.match(/(zsh|bash)/)) {
|
|
71
69
|
// macOS should launch a login shell by default
|
|
72
70
|
args = ['--login'];
|
|
73
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.profile.internal.js","sourceRoot":"","sources":["../../src/browser/terminal.profile.internal.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,qCAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"terminal.profile.internal.js","sourceRoot":"","sources":["../../src/browser/terminal.profile.internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,30 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const di_1 = require("@opensumi/di");
|
|
6
6
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
7
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const ide_core_common_2 = require("@opensumi/ide-core-common");
|
|
8
9
|
const common_1 = require("../common");
|
|
10
|
+
const { equals } = ide_core_common_1.arrays;
|
|
9
11
|
let TerminalProfileService = class TerminalProfileService extends ide_core_common_1.WithEventBus {
|
|
10
12
|
constructor() {
|
|
11
13
|
super();
|
|
14
|
+
this.onTerminalProfileResolvedEmitter = new ide_core_common_1.Emitter();
|
|
12
15
|
this._onDidChangeAvailableProfiles = new ide_core_common_1.Emitter();
|
|
13
16
|
this._profileProviders = new Map();
|
|
14
17
|
this._contributedProfiles = [];
|
|
18
|
+
// #region 外部插件贡献的 Terminal Profiles
|
|
19
|
+
this._rawContributedProfileMap = new Map();
|
|
15
20
|
// Wait up to 5 seconds for profiles to be ready so it's assured that we know the actual
|
|
16
21
|
// default terminal before launching the first terminal. This isn't expected to ever take
|
|
17
22
|
// this long.
|
|
18
23
|
this._profilesReadyBarrier = new ide_core_common_1.AutoOpenBarrier(5000);
|
|
19
24
|
this.refreshAvailableProfiles();
|
|
20
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* 当用户创建了一个 Profile 时发出的事件
|
|
28
|
+
*/
|
|
29
|
+
get onTerminalProfileResolved() {
|
|
30
|
+
return this.onTerminalProfileResolvedEmitter.event;
|
|
31
|
+
}
|
|
21
32
|
get profilesReady() {
|
|
22
33
|
return this._profilesReadyBarrier.wait().then(() => { });
|
|
23
34
|
}
|
|
@@ -40,11 +51,25 @@ let TerminalProfileService = class TerminalProfileService extends ide_core_commo
|
|
|
40
51
|
const extMap = this._profileProviders.get(extensionIdentifier);
|
|
41
52
|
return extMap === null || extMap === void 0 ? void 0 : extMap.get(id);
|
|
42
53
|
}
|
|
43
|
-
|
|
44
|
-
|
|
54
|
+
async createContributedTerminalProfile(extensionIdentifier, id, options) {
|
|
55
|
+
await this.onTerminalProfileResolvedEmitter.fireAndAwait(id);
|
|
56
|
+
const profileProvider = this.getContributedProfileProvider(extensionIdentifier, id);
|
|
57
|
+
if (!profileProvider) {
|
|
58
|
+
this.logger.error(`No terminal profile provider registered for id "${id}"`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
await profileProvider.createContributedTerminalProfile(options);
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
this.logger.error('create contributed terminal profile error:', e.message);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
registerTerminalProfileProvider(extensionIdentifier, id, profileProvider) {
|
|
69
|
+
let extMap = this._profileProviders.get(extensionIdentifier);
|
|
45
70
|
if (!extMap) {
|
|
46
71
|
extMap = new Map();
|
|
47
|
-
this._profileProviders.set(
|
|
72
|
+
this._profileProviders.set(extensionIdentifier, extMap);
|
|
48
73
|
}
|
|
49
74
|
extMap.set(id, profileProvider);
|
|
50
75
|
return ide_core_common_1.Disposable.create(() => this._profileProviders.delete(id));
|
|
@@ -61,14 +86,14 @@ let TerminalProfileService = class TerminalProfileService extends ide_core_commo
|
|
|
61
86
|
excludedContributedProfiles.push(profileName);
|
|
62
87
|
}
|
|
63
88
|
}
|
|
64
|
-
const filteredContributedProfiles = Array.from(this.
|
|
65
|
-
const contributedProfilesChanged = !
|
|
89
|
+
const filteredContributedProfiles = Array.from(this.rawContributedProfiles.filter((p) => !excludedContributedProfiles.includes(p.title)));
|
|
90
|
+
const contributedProfilesChanged = !equals(filteredContributedProfiles, this._contributedProfiles, contributedProfilesEqual);
|
|
66
91
|
this._contributedProfiles = filteredContributedProfiles;
|
|
67
92
|
return contributedProfilesChanged;
|
|
68
93
|
}
|
|
69
94
|
async _refreshAvailableProfilesNow() {
|
|
70
95
|
const profiles = await this._detectProfiles(true);
|
|
71
|
-
const profilesChanged = !
|
|
96
|
+
const profilesChanged = !equals(profiles, this._availableProfiles, profilesEqual);
|
|
72
97
|
const contributedProfilesChanged = await this._updateContributedProfiles();
|
|
73
98
|
if (profilesChanged || contributedProfilesChanged) {
|
|
74
99
|
this._availableProfiles = profiles;
|
|
@@ -87,7 +112,7 @@ let TerminalProfileService = class TerminalProfileService extends ide_core_commo
|
|
|
87
112
|
}
|
|
88
113
|
return undefined;
|
|
89
114
|
}
|
|
90
|
-
async
|
|
115
|
+
async saveContributedProfile(args) {
|
|
91
116
|
const platformKey = await this.terminalService.getCodePlatformKey();
|
|
92
117
|
const profilesConfig = await this.preferenceService.get(`${"terminal.integrated.profiles." /* Profiles */}${platformKey}`);
|
|
93
118
|
if (typeof profilesConfig === 'object') {
|
|
@@ -103,6 +128,25 @@ let TerminalProfileService = class TerminalProfileService extends ide_core_commo
|
|
|
103
128
|
await this.preferenceService.set(`${"terminal.integrated.profiles." /* Profiles */}${platformKey}`, profilesConfig, ide_core_common_1.PreferenceScope.User);
|
|
104
129
|
return;
|
|
105
130
|
}
|
|
131
|
+
get rawContributedProfiles() {
|
|
132
|
+
return Array.from(this._rawContributedProfileMap.values());
|
|
133
|
+
}
|
|
134
|
+
addContributedProfile(extensionId, contributions) {
|
|
135
|
+
var _a;
|
|
136
|
+
const profiles = ((_a = contributions === null || contributions === void 0 ? void 0 : contributions.profiles) === null || _a === void 0 ? void 0 : _a.filter((p) => hasValidTerminalIcon(p)).map((e) => (Object.assign(Object.assign({}, e), { extensionIdentifier: extensionId })))) || [];
|
|
137
|
+
for (const profile of profiles) {
|
|
138
|
+
this._rawContributedProfileMap.set(profile.id, profile);
|
|
139
|
+
}
|
|
140
|
+
this.refreshAvailableProfiles();
|
|
141
|
+
}
|
|
142
|
+
removeContributedProfile(extensionId) {
|
|
143
|
+
const profiles = this.rawContributedProfiles;
|
|
144
|
+
for (const profile of profiles) {
|
|
145
|
+
if (profile.extensionIdentifier === extensionId) {
|
|
146
|
+
this._rawContributedProfileMap.delete(profile.id);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
106
150
|
};
|
|
107
151
|
tslib_1.__decorate([
|
|
108
152
|
(0, di_1.Autowired)(common_1.ITerminalService),
|
|
@@ -113,9 +157,9 @@ tslib_1.__decorate([
|
|
|
113
157
|
tslib_1.__metadata("design:type", Object)
|
|
114
158
|
], TerminalProfileService.prototype, "preferenceService", void 0);
|
|
115
159
|
tslib_1.__decorate([
|
|
116
|
-
(0, di_1.Autowired)(
|
|
160
|
+
(0, di_1.Autowired)(ide_core_common_1.ILogger),
|
|
117
161
|
tslib_1.__metadata("design:type", Object)
|
|
118
|
-
], TerminalProfileService.prototype, "
|
|
162
|
+
], TerminalProfileService.prototype, "logger", void 0);
|
|
119
163
|
tslib_1.__decorate([
|
|
120
164
|
(0, ide_core_common_1.throttle)(2000),
|
|
121
165
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -143,4 +187,10 @@ function contributedProfilesEqual(one, other) {
|
|
|
143
187
|
one.id === other.id &&
|
|
144
188
|
one.title === other.title);
|
|
145
189
|
}
|
|
190
|
+
function hasValidTerminalIcon(profile) {
|
|
191
|
+
return (!profile.icon ||
|
|
192
|
+
typeof profile.icon === 'string' ||
|
|
193
|
+
ide_core_common_2.URI.isUri(profile.icon) ||
|
|
194
|
+
('light' in profile.icon && 'dark' in profile.icon && ide_core_common_2.URI.isUri(profile.icon.light) && ide_core_common_2.URI.isUri(profile.icon.dark)));
|
|
195
|
+
}
|
|
146
196
|
//# sourceMappingURL=terminal.profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.profile.js","sourceRoot":"","sources":["../../src/browser/terminal.profile.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,iEAA+D;AAC/D,+
|
|
1
|
+
{"version":3,"file":"terminal.profile.js","sourceRoot":"","sources":["../../src/browser/terminal.profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.restore.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.restore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE5F,qBACa,eAAgB,SAAQ,UAAW,YAAW,gBAAgB;IAEzE,UAAU,EAAE,mBAAmB,CAAC;IAGhC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAErD,IAAI,UAAU,
|
|
1
|
+
{"version":3,"file":"terminal.restore.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.restore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE5F,qBACa,eAAgB,SAAQ,UAAW,YAAW,gBAAgB;IAEzE,UAAU,EAAE,mBAAmB,CAAC;IAGhC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAErD,IAAI,UAAU,WAGb;IAED,IAAI;IAMJ,OAAO;CAaR"}
|
|
@@ -7,7 +7,8 @@ const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
|
7
7
|
const common_1 = require("../common");
|
|
8
8
|
let TerminalRestore = class TerminalRestore extends ide_core_common_1.Disposable {
|
|
9
9
|
get storageKey() {
|
|
10
|
-
|
|
10
|
+
// 集成方根据自己的场景来自定义storageKey做到终端恢复场景的准确性
|
|
11
|
+
return 'OPENSUMI_TERMINAL_RESTORE';
|
|
11
12
|
}
|
|
12
13
|
save() {
|
|
13
14
|
const json = this.controller.toJSON();
|
|
@@ -17,6 +18,7 @@ let TerminalRestore = class TerminalRestore extends ide_core_common_1.Disposable
|
|
|
17
18
|
restore() {
|
|
18
19
|
const key = this.storageKey;
|
|
19
20
|
const history = window.localStorage.getItem(key);
|
|
21
|
+
window.localStorage.removeItem(key); // 触发恢复之后清除掉缓存
|
|
20
22
|
if (history) {
|
|
21
23
|
try {
|
|
22
24
|
return this.controller.recovery(JSON.parse(history));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.restore.js","sourceRoot":"","sources":["../../src/browser/terminal.restore.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,+DAAuD;AAEvD,sCAA4F;AAG5F,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,4BAAU;IAO7C,IAAI,UAAU;QACZ,OAAO,
|
|
1
|
+
{"version":3,"file":"terminal.restore.js","sourceRoot":"","sources":["../../src/browser/terminal.restore.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,+DAAuD;AAEvD,sCAA4F;AAG5F,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,4BAAU;IAO7C,IAAI,UAAU;QACZ,uCAAuC;QACvC,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;QACnD,IAAI,OAAO,EAAE;YACX,IAAI;gBACF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;aACtD;YAAC,WAAM;gBACN,cAAc;aACf;SACF;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AA7BC;IADC,IAAA,cAAS,EAAC,4BAAmB,CAAC;;mDACC;AAGhC;IADC,IAAA,cAAS,EAAC,iCAAwB,CAAC;;gDACiB;AAL1C,eAAe;IAD3B,IAAA,eAAU,GAAE;GACA,eAAe,CA+B3B;AA/BY,0CAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.search.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.search.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"terminal.search.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.search.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpH,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,IAAI,EAAE,OAAO,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,EAAE,mBAAmB,CAAC;IAGhC,YAAY,EAAE,yBAAyB,CAAC;IAExC,SAAS,CAAC,OAAO,gBAAuB;IAExC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAsB;IAEzC,IAAI,MAAM,IAAI,eAAe,GAAG,SAAS,CAExC;IAED,IAAI;IAKJ,KAAK;IAKL,KAAK;IAML,MAAM;CAGP"}
|
|
@@ -49,6 +49,12 @@ tslib_1.__decorate([
|
|
|
49
49
|
(0, di_1.Autowired)(common_1.ITerminalGroupViewService),
|
|
50
50
|
tslib_1.__metadata("design:type", Object)
|
|
51
51
|
], TerminalSearchService.prototype, "terminalView", void 0);
|
|
52
|
+
tslib_1.__decorate([
|
|
53
|
+
(0, ide_core_common_1.debounce)(150),
|
|
54
|
+
tslib_1.__metadata("design:type", Function),
|
|
55
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
56
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
57
|
+
], TerminalSearchService.prototype, "search", null);
|
|
52
58
|
TerminalSearchService = tslib_1.__decorate([
|
|
53
59
|
(0, di_1.Injectable)()
|
|
54
60
|
], TerminalSearchService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.search.js","sourceRoot":"","sources":["../../src/browser/terminal.search.ts"],"names":[],"mappings":";;;;AAAA,+BAAkC;AAElC,qCAAqD;AACrD,+
|
|
1
|
+
{"version":3,"file":"terminal.search.js","sourceRoot":"","sources":["../../src/browser/terminal.search.ts"],"names":[],"mappings":";;;;AAAA,+BAAkC;AAElC,qCAAqD;AACrD,+DAAqE;AAErE,sCAAoH;AAGpH,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAAlC;QAaY,YAAO,GAAG,IAAI,yBAAO,EAAQ,CAAC;QAExC,WAAM,GAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAyB3C,CAAC;IAvBC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK;;QACH,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,KAAK;;QACH,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAGD,MAAM;;QACJ,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AAtCC;IADC,iBAAU;;mDACG;AAGd;IADC,iBAAU;;oDACG;AAGd;IADC,IAAA,cAAS,EAAC,4BAAmB,CAAC;;yDACC;AAGhC;IADC,IAAA,cAAS,EAAC,kCAAyB,CAAC;;2DACG;AA0BxC;IADC,IAAA,0BAAQ,EAAC,GAAG,CAAC;;;;mDAGb;AAvCU,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CAwCjC;AAxCY,sDAAqB"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Terminal } from 'xterm';
|
|
2
1
|
import { Injector } from '@opensumi/di';
|
|
2
|
+
import { OperatingSystem } from '@opensumi/ide-core-browser';
|
|
3
3
|
import { ILogger, Event } from '@opensumi/ide-core-common';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { ShellType } from '../common/shell';
|
|
4
|
+
import { ITerminalService, ITerminalError, ITerminalServiceClient, ITerminalConnection, IPtyExitEvent, ITerminalProfile, IShellLaunchConfig, IPtyProcessChangeEvent } from '../common';
|
|
5
|
+
import { XTerm } from './xterm';
|
|
7
6
|
export interface EventMessage {
|
|
8
7
|
data: string;
|
|
9
8
|
}
|
|
@@ -26,18 +25,7 @@ export declare class NodePtyTerminalService implements ITerminalService {
|
|
|
26
25
|
generateSessionId(): string;
|
|
27
26
|
check(ids: string[]): Promise<boolean>;
|
|
28
27
|
private _createCustomWebSocket;
|
|
29
|
-
|
|
30
|
-
*
|
|
31
|
-
* @param sessionId
|
|
32
|
-
* @param _
|
|
33
|
-
* @param rows
|
|
34
|
-
* @param cols
|
|
35
|
-
* @param options
|
|
36
|
-
* @param shellType
|
|
37
|
-
* @returns
|
|
38
|
-
*/
|
|
39
|
-
attach(sessionId: string, _: Terminal, rows: number, cols: number, options?: TerminalOptions, shellType?: ShellType): Promise<ITerminalConnection | undefined>;
|
|
40
|
-
attachByLaunchConfig(sessionId: string, cols: number, rows: number, launchConfig: IShellLaunchConfig): Promise<ITerminalConnection | undefined>;
|
|
28
|
+
attachByLaunchConfig(sessionId: string, cols: number, rows: number, launchConfig: IShellLaunchConfig, _xterm: XTerm): Promise<ITerminalConnection | undefined>;
|
|
41
29
|
private _sendMessage;
|
|
42
30
|
sendText(sessionId: string, message: string): Promise<void>;
|
|
43
31
|
resize(sessionId: string, cols: number, rows: number): Promise<void>;
|
|
@@ -62,7 +50,7 @@ export declare class NodePtyTerminalService implements ITerminalService {
|
|
|
62
50
|
signal?: number;
|
|
63
51
|
}): void;
|
|
64
52
|
$processChange(sessionId: string, processName: string): void;
|
|
65
|
-
|
|
53
|
+
getOS(): Promise<OperatingSystem>;
|
|
66
54
|
getProfiles(autoDetect: boolean): Promise<ITerminalProfile[]>;
|
|
67
55
|
getDefaultSystemShell(): Promise<string>;
|
|
68
56
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"terminal.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAE/E,OAAO,EAA6C,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAW,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAEL,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EAEtB,mBAAmB,EACnB,aAAa,EAGb,gBAAgB,EAChB,kBAAkB,EAElB,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AACD,qBACa,sBAAuB,YAAW,gBAAgB;IAC7D,MAAM,CAAC,OAAO,SAAK;IAEnB,OAAO,CAAC,SAAS,CAA8B;IAG/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAG5D,OAAO,CAAC,iBAAiB,CAAoB;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,OAAO,CAAC,QAAQ,CAAiC;IAC1C,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAuB;IAE5D,OAAO,CAAC,OAAO,CAAgC;IACxC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAsB;IAEzD,OAAO,CAAC,gBAAgB,CAAyC;IAC1D,eAAe,gCAA+B;IAErD,OAAO,CAAC,iBAAiB,CAAqD;IAC9E,OAAO,CAAC,iBAAiB,CAQrB;IAEJ,iBAAiB;IAWX,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE;IAKzB,OAAO,CAAC,sBAAsB,CAY3B;IAEG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,KAAK;IAoBf,OAAO,CAAC,YAAY;IAYd,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAOpD,kBAAkB,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM;IAIvB,YAAY,CAAC,SAAS,EAAE,MAAM;IAIpC;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI5C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAC7D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiB/F,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI/C,KAAK;IAOL,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAa7D,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C,OAAO;CAIR"}
|
|
@@ -8,9 +8,7 @@ const di_1 = require("@opensumi/di");
|
|
|
8
8
|
const ws_channel_handler_1 = require("@opensumi/ide-connection/lib/browser/ws-channel-handler");
|
|
9
9
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
10
10
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
11
|
-
const platform_1 = require("@opensumi/ide-core-common/lib/platform");
|
|
12
11
|
const common_1 = require("../common");
|
|
13
|
-
const shell_1 = require("../common/shell");
|
|
14
12
|
let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalService {
|
|
15
13
|
constructor() {
|
|
16
14
|
this._onError = new ide_core_common_1.Emitter();
|
|
@@ -38,89 +36,18 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
38
36
|
// Electron 环境下,未指定 isRemote 时默认使用本地连接
|
|
39
37
|
// 否则使用 WebSocket 连接
|
|
40
38
|
if (this.appConfig.isElectronRenderer && !this.appConfig.isRemote) {
|
|
41
|
-
return ide_core_browser_1.electronEnv.metadata.windowClientId +
|
|
39
|
+
return ide_core_browser_1.electronEnv.metadata.windowClientId + common_1.TERMINAL_ID_SEPARATOR + (0, common_1.generateSessionId)();
|
|
42
40
|
}
|
|
43
41
|
else {
|
|
44
42
|
const WSChannelHandler = this.injector.get(ws_channel_handler_1.WSChannelHandler);
|
|
45
|
-
return WSChannelHandler.clientId +
|
|
43
|
+
return WSChannelHandler.clientId + common_1.TERMINAL_ID_SEPARATOR + (0, common_1.generateSessionId)();
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
46
|
async check(ids) {
|
|
49
47
|
const ensureResult = await this.serviceClientRPC.ensureTerminal(ids);
|
|
50
48
|
return ensureResult;
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
* @param sessionId
|
|
55
|
-
* @param _
|
|
56
|
-
* @param rows
|
|
57
|
-
* @param cols
|
|
58
|
-
* @param options
|
|
59
|
-
* @param shellType
|
|
60
|
-
* @returns
|
|
61
|
-
*/
|
|
62
|
-
async attach(sessionId, _, rows, cols, options = {}, shellType) {
|
|
63
|
-
let shellPath = options.shellPath;
|
|
64
|
-
const shellArgs = typeof options.shellArgs === 'string' ? [options.shellArgs] : options.shellArgs || [];
|
|
65
|
-
const platformKey = await this.getCodePlatformKey();
|
|
66
|
-
const terminalOs = await this.getOs();
|
|
67
|
-
if (!shellPath) {
|
|
68
|
-
// if terminal options.shellPath is not set, we should resolve the shell path from preference: `terminal.type`
|
|
69
|
-
if (shellType && shellType !== 'default') {
|
|
70
|
-
if (terminalOs === platform_1.OperatingSystem.Windows) {
|
|
71
|
-
shellPath = await this.serviceClientRPC.$resolveWindowsShellPath(shellType);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
shellPath = await this.serviceClientRPC.$resolveUnixShellPath(shellType);
|
|
75
|
-
}
|
|
76
|
-
if (!shellPath) {
|
|
77
|
-
// TODO: we can show error message here
|
|
78
|
-
// "the shell you want to launch is not exists"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// and now, we have the following two situations:
|
|
82
|
-
if (!shellPath) {
|
|
83
|
-
if (!shellType || shellType === 'default') {
|
|
84
|
-
// 1. `terminal.type` is set to a falsy value, or set to `default`
|
|
85
|
-
if (terminalOs === platform_1.OperatingSystem.Windows) {
|
|
86
|
-
// in windows, at least we can launch the cmd.exe
|
|
87
|
-
const { type: _type, path } = await this.serviceClientRPC.$resolvePotentialWindowsShellPath();
|
|
88
|
-
shellType = _type;
|
|
89
|
-
shellPath = path;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
// in unix, at least we can launch the sh
|
|
93
|
-
shellPath = await this.serviceClientRPC.$resolvePotentialUnixShellPath();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
// 2. `terminal.type` is set to a truthy value, but the shell path is not resolved, for example cannot resolve 'git-bash'
|
|
98
|
-
// but in this situation, we preserve the user settings, launch the type as shell path
|
|
99
|
-
// on PtyService we also have a fallback to check the shellPath is valid
|
|
100
|
-
shellPath = shellType;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// if we still can not find the shell path, we use shellType as the target shell path
|
|
104
|
-
if (!shellPath && shellType !== 'default') {
|
|
105
|
-
shellPath = shellType;
|
|
106
|
-
}
|
|
107
|
-
const platformSpecificArgs = this.preferenceService.get(`${"terminal.integrated.shellArgs." /* ShellArgs */}${platformKey}`, []);
|
|
108
|
-
shellArgs.push(...platformSpecificArgs);
|
|
109
|
-
if (shellType === shell_1.WindowsShellType['git-bash']) {
|
|
110
|
-
shellArgs.push('--login');
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
const launchConfig = {
|
|
114
|
-
executable: shellPath,
|
|
115
|
-
cwd: options.cwd,
|
|
116
|
-
args: shellArgs,
|
|
117
|
-
env: options.env,
|
|
118
|
-
name: options.name,
|
|
119
|
-
strictEnv: options.strictEnv,
|
|
120
|
-
};
|
|
121
|
-
return this.attachByLaunchConfig(sessionId, cols, rows, launchConfig);
|
|
122
|
-
}
|
|
123
|
-
async attachByLaunchConfig(sessionId, cols, rows, launchConfig) {
|
|
50
|
+
async attachByLaunchConfig(sessionId, cols, rows, launchConfig, _xterm) {
|
|
124
51
|
// If code runs to here, it means that we want to create a real terminal.
|
|
125
52
|
// So if `launchConfig.executable` is not set, we should use the default shell.
|
|
126
53
|
if (!launchConfig.executable) {
|
|
@@ -188,11 +115,11 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
188
115
|
$processChange(sessionId, processName) {
|
|
189
116
|
this._onProcessChange.fire({ sessionId, processName });
|
|
190
117
|
}
|
|
191
|
-
async
|
|
118
|
+
async getOS() {
|
|
192
119
|
if (this.backendOs) {
|
|
193
120
|
return this.backendOs;
|
|
194
121
|
}
|
|
195
|
-
return (this.backendOs = this.serviceClientRPC.
|
|
122
|
+
return (this.backendOs = this.serviceClientRPC.getOS());
|
|
196
123
|
}
|
|
197
124
|
async getProfiles(autoDetect) {
|
|
198
125
|
const platformKey = await this.getCodePlatformKey();
|
|
@@ -203,7 +130,7 @@ let NodePtyTerminalService = NodePtyTerminalService_1 = class NodePtyTerminalSer
|
|
|
203
130
|
});
|
|
204
131
|
}
|
|
205
132
|
async getDefaultSystemShell() {
|
|
206
|
-
return await this.serviceClientRPC.getDefaultSystemShell(await this.
|
|
133
|
+
return await this.serviceClientRPC.getDefaultSystemShell(await this.getOS());
|
|
207
134
|
}
|
|
208
135
|
dispose() {
|
|
209
136
|
this._onDataDispatcher.dispose();
|