@theia/terminal 1.42.1 → 1.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/base/terminal-widget.d.ts +1 -1
- package/lib/browser/base/terminal-widget.d.ts.map +1 -1
- package/lib/browser/terminal-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/terminal-frontend-contribution.js +4 -5
- package/lib/browser/terminal-frontend-contribution.js.map +1 -1
- package/lib/browser/terminal-preferences.js +1 -1
- package/lib/browser/terminal-preferences.js.map +1 -1
- package/lib/browser/terminal-widget-impl.d.ts +1 -1
- package/lib/browser/terminal-widget-impl.d.ts.map +1 -1
- package/lib/browser/terminal-widget-impl.js +12 -10
- package/lib/browser/terminal-widget-impl.js.map +1 -1
- package/lib/common/base-terminal-protocol.d.ts +0 -59
- package/lib/common/base-terminal-protocol.d.ts.map +1 -1
- package/lib/common/base-terminal-protocol.js +1 -13
- package/lib/common/base-terminal-protocol.js.map +1 -1
- package/lib/common/shell-terminal-protocol.d.ts +37 -0
- package/lib/common/shell-terminal-protocol.d.ts.map +1 -1
- package/lib/common/shell-terminal-protocol.js +14 -1
- package/lib/common/shell-terminal-protocol.js.map +1 -1
- package/lib/node/base-terminal-server.d.ts +1 -17
- package/lib/node/base-terminal-server.d.ts.map +1 -1
- package/lib/node/base-terminal-server.js +1 -111
- package/lib/node/base-terminal-server.js.map +1 -1
- package/lib/node/shell-process.d.ts +1 -0
- package/lib/node/shell-process.d.ts.map +1 -1
- package/lib/node/shell-process.js +2 -1
- package/lib/node/shell-process.js.map +1 -1
- package/lib/node/shell-terminal-server.d.ts +18 -2
- package/lib/node/shell-terminal-server.d.ts.map +1 -1
- package/lib/node/shell-terminal-server.js +99 -1
- package/lib/node/shell-terminal-server.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/base/terminal-widget.ts +1 -1
- package/src/browser/terminal-frontend-contribution.ts +2 -6
- package/src/browser/terminal-preferences.ts +1 -1
- package/src/browser/terminal-widget-impl.ts +12 -10
- package/src/common/base-terminal-protocol.ts +0 -74
- package/src/common/shell-terminal-protocol.ts +53 -0
- package/src/node/base-terminal-server.ts +1 -136
- package/src/node/shell-process.ts +1 -1
- package/src/node/shell-terminal-server.ts +132 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-terminal-protocol.d.ts","sourceRoot":"","sources":["../../src/common/base-terminal-protocol.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"base-terminal-protocol.d.ts","sourceRoot":"","sources":["../../src/common/base-terminal-protocol.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,0BAA0B;CAAI;AAE/C,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACvE,MAAM,CAAC,0BAA0B,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AACD,yBAAiB,mBAAmB,CAAC;IACjC,SAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;CACJ;AAED,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC1B,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,IAAI,IAAI;IACR,SAAS,IAAI;CAChB;AAED,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAChC,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC3D,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACtD,0BAA0B,IAAI,IAAI,CAAC;IACnC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,qBAAa,6BAA6B;IAEtC,SAAS,CAAC,QAAQ,CAAC,OAAO,2BAAkC;IAE5D,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,UAAU;IAK7C,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAU1D,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAWrD,0BAA0B,IAAI,IAAI;IAUlC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAShD"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
18
|
+
exports.DispatchingBaseTerminalClient = exports.TerminalExitReason = exports.IBaseTerminalServer = void 0;
|
|
19
19
|
const core_1 = require("@theia/core");
|
|
20
20
|
var IBaseTerminalServer;
|
|
21
21
|
(function (IBaseTerminalServer) {
|
|
@@ -82,16 +82,4 @@ class DispatchingBaseTerminalClient {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
exports.DispatchingBaseTerminalClient = DispatchingBaseTerminalClient;
|
|
85
|
-
/*---------------------------------------------------------------------------------------------
|
|
86
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
87
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
88
|
-
*--------------------------------------------------------------------------------------------*/
|
|
89
|
-
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.0/src/vs/workbench/contrib/terminal/common/environmentVariable.ts
|
|
90
|
-
exports.ENVIRONMENT_VARIABLE_COLLECTIONS_KEY = 'terminal.integrated.environmentVariableCollections';
|
|
91
|
-
var EnvironmentVariableMutatorType;
|
|
92
|
-
(function (EnvironmentVariableMutatorType) {
|
|
93
|
-
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Replace"] = 1] = "Replace";
|
|
94
|
-
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Append"] = 2] = "Append";
|
|
95
|
-
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Prepend"] = 3] = "Prepend";
|
|
96
|
-
})(EnvironmentVariableMutatorType = exports.EnvironmentVariableMutatorType || (exports.EnvironmentVariableMutatorType = {}));
|
|
97
85
|
//# sourceMappingURL=base-terminal-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-terminal-protocol.js","sourceRoot":"","sources":["../../src/common/base-terminal-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,sCAAyC;
|
|
1
|
+
{"version":3,"file":"base-terminal-protocol.js","sourceRoot":"","sources":["../../src/common/base-terminal-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,sCAAyC;AAoBzC,IAAiB,mBAAmB,CAInC;AAJD,WAAiB,mBAAmB;IAChC,SAAgB,UAAU,CAAC,EAAW;QAClC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAFe,8BAAU,aAEzB,CAAA;AACL,CAAC,EAJgB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAInC;AAaD,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,iEAAW,CAAA;IACX,mEAAY,CAAA;IACZ,iEAAW,CAAA;IACX,2DAAQ,CAAA;IACR,qEAAa,CAAA;AACjB,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AAeD,MAAa,6BAA6B;IAA1C;QAEuB,YAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IA+ChE,CAAC;IA7CG,IAAI,CAAC,MAA2B;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,qBAAqB,CAAC,KAA6B;QAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI;gBACA,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAClC;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,KAA8B;QAE1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI;gBACA,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC5B;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI;gBACA,CAAC,CAAC,0BAA0B,EAAE,CAAC;aAClC;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB,CAAC,IAAY;QAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI;gBACA,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;aACrC;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAjDD,sEAiDC"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import { RpcProxy } from '@theia/core';
|
|
2
2
|
import { IBaseTerminalServer, IBaseTerminalServerOptions } from './base-terminal-protocol';
|
|
3
3
|
import { OS } from '@theia/core/lib/common/os';
|
|
4
|
+
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering/markdown-string';
|
|
4
5
|
export declare const IShellTerminalServer: unique symbol;
|
|
5
6
|
export interface IShellTerminalServer extends IBaseTerminalServer {
|
|
6
7
|
hasChildProcesses(processId: number | undefined): Promise<boolean>;
|
|
8
|
+
getEnvVarCollectionDescriptionsByExtension(id: number): Promise<Map<string, (string | MarkdownString | undefined)[]>>;
|
|
9
|
+
getEnvVarCollections(): Promise<[string, string, boolean, SerializableEnvironmentVariableCollection][]>;
|
|
10
|
+
restorePersisted(jsonValue: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Sets an extension's environment variable collection.
|
|
13
|
+
*/
|
|
14
|
+
setCollection(extensionIdentifier: string, rootUri: string, persistent: boolean, collection: SerializableEnvironmentVariableCollection, description: string | MarkdownString | undefined): void;
|
|
15
|
+
/**
|
|
16
|
+
* Deletes an extension's environment variable collection.
|
|
17
|
+
*/
|
|
18
|
+
deleteCollection(extensionIdentifier: string): void;
|
|
7
19
|
}
|
|
8
20
|
export declare const shellTerminalPath = "/services/shell-terminal";
|
|
9
21
|
export declare type ShellTerminalOSPreferences<T> = {
|
|
@@ -27,4 +39,29 @@ export interface IShellTerminalServerOptions extends IBaseTerminalServerOptions
|
|
|
27
39
|
}
|
|
28
40
|
export declare const ShellTerminalServerProxy: unique symbol;
|
|
29
41
|
export declare type ShellTerminalServerProxy = RpcProxy<IShellTerminalServer>;
|
|
42
|
+
export declare const NO_ROOT_URI = "<none>";
|
|
43
|
+
export interface EnvironmentVariableCollection {
|
|
44
|
+
readonly variableMutators: ReadonlyMap<string, EnvironmentVariableMutator>;
|
|
45
|
+
readonly description: string | MarkdownString | undefined;
|
|
46
|
+
}
|
|
47
|
+
export interface EnvironmentVariableCollectionWithPersistence extends EnvironmentVariableCollection {
|
|
48
|
+
readonly persistent: boolean;
|
|
49
|
+
}
|
|
50
|
+
export declare enum EnvironmentVariableMutatorType {
|
|
51
|
+
Replace = 1,
|
|
52
|
+
Append = 2,
|
|
53
|
+
Prepend = 3
|
|
54
|
+
}
|
|
55
|
+
export interface EnvironmentVariableMutatorOptions {
|
|
56
|
+
applyAtProcessCreation?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface EnvironmentVariableMutator {
|
|
59
|
+
readonly value: string;
|
|
60
|
+
readonly type: EnvironmentVariableMutatorType;
|
|
61
|
+
readonly options: EnvironmentVariableMutatorOptions;
|
|
62
|
+
}
|
|
63
|
+
export interface SerializableEnvironmentVariableCollection {
|
|
64
|
+
readonly description: string | MarkdownString | undefined;
|
|
65
|
+
readonly mutators: [string, EnvironmentVariableMutator][];
|
|
66
|
+
}
|
|
30
67
|
//# sourceMappingURL=shell-terminal-protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-terminal-protocol.d.ts","sourceRoot":"","sources":["../../src/common/shell-terminal-protocol.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"shell-terminal-protocol.d.ts","sourceRoot":"","sources":["../../src/common/shell-terminal-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,22 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.ShellTerminalServerProxy = exports.shellTerminalPath = exports.IShellTerminalServer = void 0;
|
|
18
|
+
exports.EnvironmentVariableMutatorType = exports.NO_ROOT_URI = exports.ShellTerminalServerProxy = exports.shellTerminalPath = exports.IShellTerminalServer = void 0;
|
|
19
19
|
exports.IShellTerminalServer = Symbol('IShellTerminalServer');
|
|
20
20
|
exports.shellTerminalPath = '/services/shell-terminal';
|
|
21
21
|
;
|
|
22
22
|
exports.ShellTerminalServerProxy = Symbol('ShellTerminalServerProxy');
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
25
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.0/src/vs/workbench/contrib/terminal/common/environmentVariable.ts
|
|
28
|
+
exports.NO_ROOT_URI = '<none>';
|
|
29
|
+
var EnvironmentVariableMutatorType;
|
|
30
|
+
(function (EnvironmentVariableMutatorType) {
|
|
31
|
+
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Replace"] = 1] = "Replace";
|
|
32
|
+
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Append"] = 2] = "Append";
|
|
33
|
+
EnvironmentVariableMutatorType[EnvironmentVariableMutatorType["Prepend"] = 3] = "Prepend";
|
|
34
|
+
})(EnvironmentVariableMutatorType = exports.EnvironmentVariableMutatorType || (exports.EnvironmentVariableMutatorType = {}));
|
|
35
|
+
;
|
|
23
36
|
//# sourceMappingURL=shell-terminal-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-terminal-protocol.js","sourceRoot":"","sources":["../../src/common/shell-terminal-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;
|
|
1
|
+
{"version":3,"file":"shell-terminal-protocol.js","sourceRoot":"","sources":["../../src/common/shell-terminal-protocol.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAOnE,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAmBtD,QAAA,iBAAiB,GAAG,0BAA0B,CAAC;AAS3D,CAAC;AAaW,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAG3E;;;gGAGgG;AAChG,qJAAqJ;AAExI,QAAA,WAAW,GAAG,QAAQ,CAAC;AAWpC,IAAY,8BAIX;AAJD,WAAY,8BAA8B;IACtC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,yFAAW,CAAA;AACf,CAAC,EAJW,8BAA8B,GAA9B,sCAA8B,KAA9B,sCAA8B,QAIzC;AAeA,CAAC"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { ILogger, DisposableCollection } from '@theia/core/lib/common';
|
|
2
|
-
import { IBaseTerminalServer, IBaseTerminalServerOptions, IBaseTerminalClient, TerminalProcessInfo
|
|
2
|
+
import { IBaseTerminalServer, IBaseTerminalServerOptions, IBaseTerminalClient, TerminalProcessInfo } from '../common/base-terminal-protocol';
|
|
3
3
|
import { TerminalProcess, ProcessManager, TaskTerminalProcess } from '@theia/process/lib/node';
|
|
4
|
-
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering/markdown-string';
|
|
5
4
|
export declare abstract class BaseTerminalServer implements IBaseTerminalServer {
|
|
6
5
|
protected readonly processManager: ProcessManager;
|
|
7
6
|
protected readonly logger: ILogger;
|
|
8
7
|
protected client: IBaseTerminalClient | undefined;
|
|
9
8
|
protected terminalToDispose: Map<number, DisposableCollection>;
|
|
10
|
-
readonly collections: Map<string, EnvironmentVariableCollectionWithPersistence>;
|
|
11
|
-
mergedCollection: MergedEnvironmentVariableCollection;
|
|
12
9
|
constructor(processManager: ProcessManager, logger: ILogger);
|
|
13
10
|
abstract create(options: IBaseTerminalServerOptions): Promise<number>;
|
|
14
11
|
attach(id: number): Promise<number>;
|
|
15
12
|
onAttachAttempted(id: number): Promise<void>;
|
|
16
13
|
getProcessId(id: number): Promise<number>;
|
|
17
14
|
getProcessInfo(id: number): Promise<TerminalProcessInfo>;
|
|
18
|
-
getEnvVarCollectionDescriptionsByExtension(id: number): Promise<Map<string, string | MarkdownString | undefined>>;
|
|
19
15
|
getCwdURI(id: number): Promise<string>;
|
|
20
16
|
close(id: number): Promise<void>;
|
|
21
17
|
getDefaultShell(): Promise<string>;
|
|
@@ -25,17 +21,5 @@ export declare abstract class BaseTerminalServer implements IBaseTerminalServer
|
|
|
25
21
|
protected notifyClientOnExit(term: TerminalProcess): DisposableCollection;
|
|
26
22
|
protected postCreate(term: TerminalProcess): void;
|
|
27
23
|
protected postAttachAttempted(term: TaskTerminalProcess): void;
|
|
28
|
-
setCollection(extensionIdentifier: string, persistent: boolean, collection: SerializableEnvironmentVariableCollection, description: string | MarkdownString | undefined): void;
|
|
29
|
-
deleteCollection(extensionIdentifier: string): void;
|
|
30
|
-
private updateCollections;
|
|
31
|
-
protected persistCollections(): void;
|
|
32
|
-
private resolveMergedCollection;
|
|
33
|
-
}
|
|
34
|
-
export declare class MergedEnvironmentVariableCollectionImpl implements MergedEnvironmentVariableCollection {
|
|
35
|
-
readonly map: Map<string, ExtensionOwnedEnvironmentVariableMutator[]>;
|
|
36
|
-
constructor(collections: Map<string, EnvironmentVariableCollection>);
|
|
37
|
-
applyToProcessEnvironment(env: {
|
|
38
|
-
[key: string]: string | null;
|
|
39
|
-
}): void;
|
|
40
24
|
}
|
|
41
25
|
//# sourceMappingURL=base-terminal-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/base-terminal-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"base-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/base-terminal-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACH,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EAEtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG/F,8BACsB,kBAAmB,YAAW,mBAAmB;IAKvC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;IAL1E,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAa;IAC9D,SAAS,CAAC,iBAAiB,oCAA2C;gBAGvB,cAAc,EAAE,cAAc,EAClB,MAAM,EAAE,OAAO;IAW1E,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWnC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWxD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC,OAAO,IAAI,IAAI;IAIT,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI;IAQxD,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,oBAAoB;IA6BzE,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAKjD,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;CAIjE"}
|
|
@@ -27,7 +27,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
27
27
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
30
|
+
exports.BaseTerminalServer = void 0;
|
|
31
31
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
32
32
|
const common_1 = require("@theia/core/lib/common");
|
|
33
33
|
const base_terminal_protocol_1 = require("../common/base-terminal-protocol");
|
|
@@ -39,7 +39,6 @@ let BaseTerminalServer = class BaseTerminalServer {
|
|
|
39
39
|
this.logger = logger;
|
|
40
40
|
this.client = undefined;
|
|
41
41
|
this.terminalToDispose = new Map();
|
|
42
|
-
this.collections = new Map();
|
|
43
42
|
processManager.onDelete(id => {
|
|
44
43
|
const toDispose = this.terminalToDispose.get(id);
|
|
45
44
|
if (toDispose !== undefined) {
|
|
@@ -47,7 +46,6 @@ let BaseTerminalServer = class BaseTerminalServer {
|
|
|
47
46
|
this.terminalToDispose.delete(id);
|
|
48
47
|
}
|
|
49
48
|
});
|
|
50
|
-
this.mergedCollection = this.resolveMergedCollection();
|
|
51
49
|
}
|
|
52
50
|
async attach(id) {
|
|
53
51
|
const term = this.processManager.get(id);
|
|
@@ -90,17 +88,6 @@ let BaseTerminalServer = class BaseTerminalServer {
|
|
|
90
88
|
arguments: terminal.arguments,
|
|
91
89
|
};
|
|
92
90
|
}
|
|
93
|
-
async getEnvVarCollectionDescriptionsByExtension(id) {
|
|
94
|
-
const terminal = this.processManager.get(id);
|
|
95
|
-
if (!(terminal instanceof node_1.TerminalProcess)) {
|
|
96
|
-
throw new Error(`terminal "${id}" does not exist`);
|
|
97
|
-
}
|
|
98
|
-
const result = new Map();
|
|
99
|
-
this.collections.forEach((value, key) => {
|
|
100
|
-
result.set(key, value.description);
|
|
101
|
-
});
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
91
|
async getCwdURI(id) {
|
|
105
92
|
const terminal = this.processManager.get(id);
|
|
106
93
|
if (!(terminal instanceof node_1.TerminalProcess)) {
|
|
@@ -170,43 +157,6 @@ let BaseTerminalServer = class BaseTerminalServer {
|
|
|
170
157
|
const toDispose = this.notifyClientOnExit(term);
|
|
171
158
|
this.terminalToDispose.set(term.id, toDispose);
|
|
172
159
|
}
|
|
173
|
-
/*---------------------------------------------------------------------------------------------
|
|
174
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
175
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
176
|
-
*--------------------------------------------------------------------------------------------*/
|
|
177
|
-
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.0/src/vs/workbench/contrib/terminal/common/environmentVariableService.ts
|
|
178
|
-
setCollection(extensionIdentifier, persistent, collection, description) {
|
|
179
|
-
const translatedCollection = { persistent, description, map: new Map(collection) };
|
|
180
|
-
this.collections.set(extensionIdentifier, translatedCollection);
|
|
181
|
-
this.updateCollections();
|
|
182
|
-
}
|
|
183
|
-
deleteCollection(extensionIdentifier) {
|
|
184
|
-
this.collections.delete(extensionIdentifier);
|
|
185
|
-
this.updateCollections();
|
|
186
|
-
}
|
|
187
|
-
updateCollections() {
|
|
188
|
-
this.persistCollections();
|
|
189
|
-
this.mergedCollection = this.resolveMergedCollection();
|
|
190
|
-
}
|
|
191
|
-
persistCollections() {
|
|
192
|
-
const collectionsJson = [];
|
|
193
|
-
this.collections.forEach((collection, extensionIdentifier) => {
|
|
194
|
-
if (collection.persistent) {
|
|
195
|
-
collectionsJson.push({
|
|
196
|
-
extensionIdentifier,
|
|
197
|
-
collection: [...this.collections.get(extensionIdentifier).map.entries()],
|
|
198
|
-
description: collection.description
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
if (this.client) {
|
|
203
|
-
const stringifiedJson = JSON.stringify(collectionsJson);
|
|
204
|
-
this.client.storeTerminalEnvVariables(stringifiedJson);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
resolveMergedCollection() {
|
|
208
|
-
return new MergedEnvironmentVariableCollectionImpl(this.collections);
|
|
209
|
-
}
|
|
210
160
|
};
|
|
211
161
|
BaseTerminalServer = __decorate([
|
|
212
162
|
(0, inversify_1.injectable)(),
|
|
@@ -216,64 +166,4 @@ BaseTerminalServer = __decorate([
|
|
|
216
166
|
__metadata("design:paramtypes", [node_1.ProcessManager, Object])
|
|
217
167
|
], BaseTerminalServer);
|
|
218
168
|
exports.BaseTerminalServer = BaseTerminalServer;
|
|
219
|
-
/*---------------------------------------------------------------------------------------------
|
|
220
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
221
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
222
|
-
*--------------------------------------------------------------------------------------------*/
|
|
223
|
-
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.0/src/vs/workbench/contrib/terminal/common/environmentVariableCollection.ts
|
|
224
|
-
class MergedEnvironmentVariableCollectionImpl {
|
|
225
|
-
constructor(collections) {
|
|
226
|
-
this.map = new Map();
|
|
227
|
-
collections.forEach((collection, extensionIdentifier) => {
|
|
228
|
-
const it = collection.map.entries();
|
|
229
|
-
let next = it.next();
|
|
230
|
-
while (!next.done) {
|
|
231
|
-
const variable = next.value[0];
|
|
232
|
-
let entry = this.map.get(variable);
|
|
233
|
-
if (!entry) {
|
|
234
|
-
entry = [];
|
|
235
|
-
this.map.set(variable, entry);
|
|
236
|
-
}
|
|
237
|
-
// If the first item in the entry is replace ignore any other entries as they would
|
|
238
|
-
// just get replaced by this one.
|
|
239
|
-
if (entry.length > 0 && entry[0].type === base_terminal_protocol_1.EnvironmentVariableMutatorType.Replace) {
|
|
240
|
-
next = it.next();
|
|
241
|
-
continue;
|
|
242
|
-
}
|
|
243
|
-
// Mutators get applied in the reverse order than they are created
|
|
244
|
-
const mutator = next.value[1];
|
|
245
|
-
entry.unshift({
|
|
246
|
-
extensionIdentifier,
|
|
247
|
-
value: mutator.value,
|
|
248
|
-
type: mutator.type
|
|
249
|
-
});
|
|
250
|
-
next = it.next();
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
applyToProcessEnvironment(env) {
|
|
255
|
-
let lowerToActualVariableNames;
|
|
256
|
-
if (common_1.isWindows) {
|
|
257
|
-
lowerToActualVariableNames = {};
|
|
258
|
-
Object.keys(env).forEach(e => lowerToActualVariableNames[e.toLowerCase()] = e);
|
|
259
|
-
}
|
|
260
|
-
this.map.forEach((mutators, variable) => {
|
|
261
|
-
const actualVariable = common_1.isWindows ? lowerToActualVariableNames[variable.toLowerCase()] || variable : variable;
|
|
262
|
-
mutators.forEach(mutator => {
|
|
263
|
-
switch (mutator.type) {
|
|
264
|
-
case base_terminal_protocol_1.EnvironmentVariableMutatorType.Append:
|
|
265
|
-
env[actualVariable] = (env[actualVariable] || '') + mutator.value;
|
|
266
|
-
break;
|
|
267
|
-
case base_terminal_protocol_1.EnvironmentVariableMutatorType.Prepend:
|
|
268
|
-
env[actualVariable] = mutator.value + (env[actualVariable] || '');
|
|
269
|
-
break;
|
|
270
|
-
case base_terminal_protocol_1.EnvironmentVariableMutatorType.Replace:
|
|
271
|
-
env[actualVariable] = mutator.value;
|
|
272
|
-
break;
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
exports.MergedEnvironmentVariableCollectionImpl = MergedEnvironmentVariableCollectionImpl;
|
|
279
169
|
//# sourceMappingURL=base-terminal-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-terminal-server.js","sourceRoot":"","sources":["../../src/node/base-terminal-server.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;;;;;;;;;;;AAEhF,4DAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"base-terminal-server.js","sourceRoot":"","sources":["../../src/node/base-terminal-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export interface ShellProcessOptions {
|
|
|
16
16
|
strictEnv?: boolean;
|
|
17
17
|
isPseudo?: boolean;
|
|
18
18
|
}
|
|
19
|
+
export declare function getRootPath(rootURI?: string): string;
|
|
19
20
|
export declare class ShellProcess extends TerminalProcess {
|
|
20
21
|
protected static defaultCols: number;
|
|
21
22
|
protected static defaultRows: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-process.d.ts","sourceRoot":"","sources":["../../src/node/shell-process.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,eAAe,EAA0B,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,oBAAY,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,YAAY,CAAC;AAEjF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"shell-process.d.ts","sourceRoot":"","sources":["../../src/node/shell-process.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,eAAe,EAA0B,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,oBAAY,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,YAAY,CAAC;AAEjF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,qBACa,YAAa,SAAQ,eAAe;IAE7C,SAAS,CAAC,MAAM,CAAC,WAAW,SAAM;IAClC,SAAS,CAAC,MAAM,CAAC,WAAW,SAAM;gBAErB,qDAAqD;IACjC,OAAO,EAAE,mBAAmB,EACjC,cAAc,EAAE,cAAc,EAC7B,UAAU,EAAE,eAAe,EAChB,MAAM,EAAE,OAAO,EACzB,gBAAgB,EAAE,gBAAgB;WAgBlD,sBAAsB,IAAI,MAAM;WAYhC,sBAAsB,IAAI,MAAM,EAAE;CAWnD"}
|
|
@@ -28,7 +28,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
28
28
|
};
|
|
29
29
|
var ShellProcess_1;
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.ShellProcess = exports.ShellProcessOptions = exports.ShellProcessFactory = void 0;
|
|
31
|
+
exports.ShellProcess = exports.getRootPath = exports.ShellProcessOptions = exports.ShellProcessFactory = void 0;
|
|
32
32
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
33
33
|
const os = require("os");
|
|
34
34
|
const logger_1 = require("@theia/core/lib/common/logger");
|
|
@@ -49,6 +49,7 @@ function getRootPath(rootURI) {
|
|
|
49
49
|
return os.homedir();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
exports.getRootPath = getRootPath;
|
|
52
53
|
let ShellProcess = ShellProcess_1 = class ShellProcess extends node_1.TerminalProcess {
|
|
53
54
|
constructor(// eslint-disable-next-line @typescript-eslint/indent
|
|
54
55
|
options, processManager, ringBuffer, logger, environmentUtils) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-process.js","sourceRoot":"","sources":["../../src/node/shell-process.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;;;;;;;;;;;;AAEhF,4DAAyE;AACzE,yBAAyB;AACzB,0DAAwD;AACxD,kDAAmH;AACnH,mDAA0D;AAC1D,oDAA6C;AAC7C,4DAAwD;AACxD,8EAA0E;AAC1E,yDAA0D;AAE7C,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAGpD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAYjE,
|
|
1
|
+
{"version":3,"file":"shell-process.js","sourceRoot":"","sources":["../../src/node/shell-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { ILogger } from '@theia/core/lib/common/logger';
|
|
2
2
|
import { EnvironmentUtils } from '@theia/core/lib/node/environment-utils';
|
|
3
|
-
import { IShellTerminalServerOptions } from '../common/shell-terminal-protocol';
|
|
4
3
|
import { BaseTerminalServer } from './base-terminal-server';
|
|
5
4
|
import { ShellProcessFactory } from './shell-process';
|
|
6
5
|
import { ProcessManager } from '@theia/process/lib/node';
|
|
7
|
-
|
|
6
|
+
import { EnvironmentVariableCollectionWithPersistence, SerializableEnvironmentVariableCollection, IShellTerminalServer, IShellTerminalServerOptions } from '../common/shell-terminal-protocol';
|
|
7
|
+
import { URI } from '@theia/core';
|
|
8
|
+
import { MultiKeyMap } from '@theia/core/lib/common/collections';
|
|
9
|
+
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering/markdown-string';
|
|
10
|
+
export declare class ShellTerminalServer extends BaseTerminalServer implements IShellTerminalServer {
|
|
8
11
|
protected readonly shellFactory: ShellProcessFactory;
|
|
9
12
|
protected environmentUtils: EnvironmentUtils;
|
|
13
|
+
readonly collections: MultiKeyMap<string, EnvironmentVariableCollectionWithPersistence>;
|
|
10
14
|
constructor(shellFactory: ShellProcessFactory, processManager: ProcessManager, logger: ILogger);
|
|
11
15
|
create(options: IShellTerminalServerOptions): Promise<number>;
|
|
12
16
|
private spawnAsPromised;
|
|
13
17
|
hasChildProcesses(processId: number | undefined): Promise<boolean>;
|
|
18
|
+
applyToProcessEnvironment(cwdUri: URI, env: {
|
|
19
|
+
[key: string]: string | null;
|
|
20
|
+
}): void;
|
|
21
|
+
matchesRootUri(cwdUri: URI, rootUri: string): boolean;
|
|
22
|
+
setCollection(extensionIdentifier: string, baseUri: string, persistent: boolean, collection: SerializableEnvironmentVariableCollection): void;
|
|
23
|
+
private doSetCollection;
|
|
24
|
+
restorePersisted(jsonValue: string): void;
|
|
25
|
+
deleteCollection(extensionIdentifier: string): void;
|
|
26
|
+
private updateCollections;
|
|
27
|
+
protected persistCollections(): void;
|
|
28
|
+
getEnvVarCollectionDescriptionsByExtension(id: number): Promise<Map<string, (string | MarkdownString | undefined)[]>>;
|
|
29
|
+
getEnvVarCollections(): Promise<[string, string, boolean, SerializableEnvironmentVariableCollection][]>;
|
|
14
30
|
}
|
|
15
31
|
//# sourceMappingURL=shell-terminal-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shell-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAe,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAmB,MAAM,yBAAyB,CAAC;AAG1E,OAAO,EACH,4CAA4C,EAA+C,yCAAyC,EACpI,oBAAoB,EAAE,2BAA2B,EACpD,MACQ,mCAAmC,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAC;AAQ3F,qBACa,mBAAoB,SAAQ,kBAAmB,YAAW,oBAAoB;IAMtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB;IAL3D,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEvE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAsB;gBAGzD,YAAY,EAAE,mBAAmB,EACzD,cAAc,EAAE,cAAc,EAClB,MAAM,EAAE,OAAO;IAIjD,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnE,OAAO,CAAC,eAAe;IAkBhB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBzE,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IA4BnF,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAUrD,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAC3E,UAAU,EAAE,yCAAyC,GAAG,IAAI;IAKhE,OAAO,CAAC,eAAe;IASvB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAKnD,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAoB9B,0CAA0C,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAcrH,oBAAoB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,yCAAyC,CAAC,EAAE,CAAC;CAShH"}
|
|
@@ -36,16 +36,20 @@ const shell_process_1 = require("./shell-process");
|
|
|
36
36
|
const node_1 = require("@theia/process/lib/node");
|
|
37
37
|
const os_1 = require("@theia/core/lib/common/os");
|
|
38
38
|
const cp = require("child_process");
|
|
39
|
+
const shell_terminal_protocol_1 = require("../common/shell-terminal-protocol");
|
|
40
|
+
const core_1 = require("@theia/core");
|
|
41
|
+
const collections_1 = require("@theia/core/lib/common/collections");
|
|
39
42
|
let ShellTerminalServer = class ShellTerminalServer extends base_terminal_server_1.BaseTerminalServer {
|
|
40
43
|
constructor(shellFactory, processManager, logger) {
|
|
41
44
|
super(processManager, logger);
|
|
42
45
|
this.shellFactory = shellFactory;
|
|
46
|
+
this.collections = new collections_1.MultiKeyMap(2);
|
|
43
47
|
}
|
|
44
48
|
async create(options) {
|
|
45
49
|
try {
|
|
46
50
|
if (options.strictEnv !== true) {
|
|
47
51
|
options.env = this.environmentUtils.mergeProcessEnv(options.env);
|
|
48
|
-
this.
|
|
52
|
+
this.applyToProcessEnvironment(core_1.URI.fromFilePath((0, shell_process_1.getRootPath)(options.rootURI)), options.env);
|
|
49
53
|
}
|
|
50
54
|
const term = this.shellFactory(options);
|
|
51
55
|
this.postCreate(term);
|
|
@@ -98,6 +102,100 @@ let ShellTerminalServer = class ShellTerminalServer extends base_terminal_server
|
|
|
98
102
|
// fall back to safe side
|
|
99
103
|
return Promise.resolve(true);
|
|
100
104
|
}
|
|
105
|
+
applyToProcessEnvironment(cwdUri, env) {
|
|
106
|
+
let lowerToActualVariableNames;
|
|
107
|
+
if (os_1.isWindows) {
|
|
108
|
+
lowerToActualVariableNames = {};
|
|
109
|
+
Object.keys(env).forEach(e => lowerToActualVariableNames[e.toLowerCase()] = e);
|
|
110
|
+
}
|
|
111
|
+
this.collections.forEach((mutators, [extensionIdentifier, rootUri]) => {
|
|
112
|
+
if (rootUri === shell_terminal_protocol_1.NO_ROOT_URI || this.matchesRootUri(cwdUri, rootUri)) {
|
|
113
|
+
mutators.variableMutators.forEach((mutator, variable) => {
|
|
114
|
+
const actualVariable = os_1.isWindows ? lowerToActualVariableNames[variable.toLowerCase()] || variable : variable;
|
|
115
|
+
switch (mutator.type) {
|
|
116
|
+
case shell_terminal_protocol_1.EnvironmentVariableMutatorType.Append:
|
|
117
|
+
env[actualVariable] = (env[actualVariable] || '') + mutator.value;
|
|
118
|
+
break;
|
|
119
|
+
case shell_terminal_protocol_1.EnvironmentVariableMutatorType.Prepend:
|
|
120
|
+
env[actualVariable] = mutator.value + (env[actualVariable] || '');
|
|
121
|
+
break;
|
|
122
|
+
case shell_terminal_protocol_1.EnvironmentVariableMutatorType.Replace:
|
|
123
|
+
env[actualVariable] = mutator.value;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
matchesRootUri(cwdUri, rootUri) {
|
|
131
|
+
return new core_1.URI(rootUri).isEqualOrParent(cwdUri);
|
|
132
|
+
}
|
|
133
|
+
/*---------------------------------------------------------------------------------------------
|
|
134
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
135
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
136
|
+
*--------------------------------------------------------------------------------------------*/
|
|
137
|
+
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.49.0/src/vs/workbench/contrib/terminal/common/environmentVariableService.ts
|
|
138
|
+
setCollection(extensionIdentifier, baseUri, persistent, collection) {
|
|
139
|
+
this.doSetCollection(extensionIdentifier, baseUri, persistent, collection);
|
|
140
|
+
this.updateCollections();
|
|
141
|
+
}
|
|
142
|
+
doSetCollection(extensionIdentifier, baseUri, persistent, collection) {
|
|
143
|
+
this.collections.set([extensionIdentifier, baseUri], {
|
|
144
|
+
persistent: persistent,
|
|
145
|
+
description: collection.description,
|
|
146
|
+
variableMutators: new Map(collection.mutators)
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
restorePersisted(jsonValue) {
|
|
150
|
+
const collectionsJson = JSON.parse(jsonValue);
|
|
151
|
+
collectionsJson.forEach(c => { var _a; return this.doSetCollection(c.extensionIdentifier, (_a = c.rootUri) !== null && _a !== void 0 ? _a : shell_terminal_protocol_1.NO_ROOT_URI, true, c.collection); });
|
|
152
|
+
}
|
|
153
|
+
deleteCollection(extensionIdentifier) {
|
|
154
|
+
this.collections.delete([extensionIdentifier]);
|
|
155
|
+
this.updateCollections();
|
|
156
|
+
}
|
|
157
|
+
updateCollections() {
|
|
158
|
+
this.persistCollections();
|
|
159
|
+
}
|
|
160
|
+
persistCollections() {
|
|
161
|
+
const collectionsJson = [];
|
|
162
|
+
this.collections.forEach((collection, [extensionIdentifier, rootUri]) => {
|
|
163
|
+
if (collection.persistent) {
|
|
164
|
+
collectionsJson.push({
|
|
165
|
+
extensionIdentifier,
|
|
166
|
+
rootUri,
|
|
167
|
+
collection: {
|
|
168
|
+
description: collection.description,
|
|
169
|
+
mutators: [...this.collections.get([extensionIdentifier, rootUri]).variableMutators.entries()]
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
if (this.client) {
|
|
175
|
+
const stringifiedJson = JSON.stringify(collectionsJson);
|
|
176
|
+
this.client.storeTerminalEnvVariables(stringifiedJson);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async getEnvVarCollectionDescriptionsByExtension(id) {
|
|
180
|
+
const terminal = this.processManager.get(id);
|
|
181
|
+
if (!(terminal instanceof node_1.TerminalProcess)) {
|
|
182
|
+
throw new Error(`terminal "${id}" does not exist`);
|
|
183
|
+
}
|
|
184
|
+
const result = new Map();
|
|
185
|
+
this.collections.forEach((value, key) => {
|
|
186
|
+
const prev = result.get(key[0]) || [];
|
|
187
|
+
prev.push(value.description);
|
|
188
|
+
result.set(key[0], prev);
|
|
189
|
+
});
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
async getEnvVarCollections() {
|
|
193
|
+
const result = [];
|
|
194
|
+
this.collections.forEach((value, [extensionIdentifier, rootUri]) => {
|
|
195
|
+
result.push([extensionIdentifier, rootUri, value.persistent, { description: value.description, mutators: [...value.variableMutators.entries()] }]);
|
|
196
|
+
});
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
101
199
|
};
|
|
102
200
|
__decorate([
|
|
103
201
|
(0, inversify_1.inject)(environment_utils_1.EnvironmentUtils),
|