@opensumi/ide-terminal-next 3.7.2-next-1740052080.0 → 3.7.2-next-1740054042.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/LICENSE +21 -0
- package/lib/browser/component/resize.delegate.d.ts +14 -0
- package/lib/browser/component/resize.delegate.d.ts.map +1 -0
- package/lib/browser/component/resize.delegate.js +46 -0
- package/lib/browser/component/resize.delegate.js.map +1 -0
- package/lib/browser/component/resize.module.less +77 -0
- package/lib/browser/component/resize.view.d.ts +16 -0
- package/lib/browser/component/resize.view.d.ts.map +1 -0
- package/lib/browser/component/resize.view.js +55 -0
- package/lib/browser/component/resize.view.js.map +1 -0
- package/lib/browser/component/search.module.less +61 -0
- package/lib/browser/component/search.view.d.ts +3 -0
- package/lib/browser/component/search.view.d.ts.map +1 -0
- package/lib/browser/component/search.view.js +89 -0
- package/lib/browser/component/search.view.js.map +1 -0
- package/lib/browser/component/tab.item.d.ts +7 -0
- package/lib/browser/component/tab.item.d.ts.map +1 -0
- package/lib/browser/component/tab.item.js +121 -0
- package/lib/browser/component/tab.item.js.map +1 -0
- package/lib/browser/component/tab.module.less +174 -0
- package/lib/browser/component/tab.view.d.ts +4 -0
- package/lib/browser/component/tab.view.d.ts.map +1 -0
- package/lib/browser/component/tab.view.js +65 -0
- package/lib/browser/component/tab.view.js.map +1 -0
- package/lib/browser/component/terminal.module.less +50 -0
- package/lib/browser/component/terminal.variable.d.ts +8 -0
- package/lib/browser/component/terminal.variable.d.ts.map +1 -0
- package/lib/browser/component/terminal.variable.js +44 -0
- package/lib/browser/component/terminal.variable.js.map +1 -0
- package/lib/browser/component/terminal.view.d.ts +5 -0
- package/lib/browser/component/terminal.view.d.ts.map +1 -0
- package/lib/browser/component/terminal.view.js +63 -0
- package/lib/browser/component/terminal.view.js.map +1 -0
- package/lib/browser/component/terminal.widget.d.ts +10 -0
- package/lib/browser/component/terminal.widget.d.ts.map +1 -0
- package/lib/browser/component/terminal.widget.js +65 -0
- package/lib/browser/component/terminal.widget.js.map +1 -0
- package/lib/browser/component/variable.module.less +15 -0
- package/lib/browser/contribution/index.d.ts.map +1 -0
- package/lib/browser/contribution/index.js +11 -0
- package/lib/browser/contribution/index.js.map +1 -0
- package/lib/browser/contribution/terminal.command.js +328 -0
- package/lib/browser/contribution/terminal.keybinding.js +87 -0
- package/lib/browser/contribution/terminal.lifecycle.js +52 -0
- package/lib/browser/contribution/terminal.menu.js +168 -0
- package/lib/browser/contribution/terminal.network.js +44 -0
- package/lib/browser/contribution/terminal.preference.js +43 -0
- package/lib/browser/contribution/terminal.view.js +57 -0
- package/lib/browser/index.js +124 -0
- package/lib/browser/links/base.d.ts +8 -0
- package/lib/browser/links/base.d.ts.map +1 -0
- package/lib/browser/links/base.js +13 -0
- package/lib/browser/links/base.js.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts +21 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.js +74 -0
- package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
- package/lib/browser/links/helpers.d.ts +7 -0
- package/lib/browser/links/helpers.d.ts.map +1 -0
- package/lib/browser/links/helpers.js +128 -0
- package/lib/browser/links/helpers.js.map +1 -0
- package/lib/browser/links/link-manager.d.ts +92 -0
- package/lib/browser/links/link-manager.d.ts.map +1 -0
- package/lib/browser/links/link-manager.js +342 -0
- package/lib/browser/links/link-manager.js.map +1 -0
- package/lib/browser/links/link.d.ts +31 -0
- package/lib/browser/links/link.d.ts.map +1 -0
- package/lib/browser/links/link.js +136 -0
- package/lib/browser/links/link.js.map +1 -0
- package/lib/browser/links/protocol-link-provider.d.ts +14 -0
- package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
- package/lib/browser/links/protocol-link-provider.js +71 -0
- package/lib/browser/links/protocol-link-provider.js.map +1 -0
- package/lib/browser/links/validated-local-link-provider.d.ts +41 -0
- package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
- package/lib/browser/links/validated-local-link-provider.js +235 -0
- package/lib/browser/links/validated-local-link-provider.js.map +1 -0
- package/lib/browser/links/word-link-provider.d.ts +29 -0
- package/lib/browser/links/word-link-provider.d.ts.map +1 -0
- package/lib/browser/links/word-link-provider.js +153 -0
- package/lib/browser/links/word-link-provider.js.map +1 -0
- package/lib/browser/terminal.addon.js +83 -0
- package/lib/browser/terminal.api.js +162 -0
- package/lib/browser/terminal.client.js +680 -0
- package/lib/browser/terminal.color.js +240 -0
- package/lib/browser/terminal.context-key.js +29 -0
- package/lib/browser/terminal.context-menu.js +96 -0
- package/lib/browser/terminal.controller.js +669 -0
- package/lib/browser/terminal.environment.service.js +153 -0
- package/lib/browser/terminal.error.js +61 -0
- package/lib/browser/terminal.ext.host.proxy.js +108 -0
- package/lib/browser/terminal.hover.manager.js +85 -0
- package/lib/browser/terminal.input.js +32 -0
- package/lib/browser/terminal.internal.service.js +107 -0
- package/lib/browser/terminal.network.js +150 -0
- package/lib/browser/terminal.preference.js +136 -0
- package/lib/browser/terminal.profile.internal.js +104 -0
- package/lib/browser/terminal.profile.js +211 -0
- package/lib/browser/terminal.render.js +25 -0
- package/lib/browser/terminal.restore.js +49 -0
- package/lib/browser/terminal.search.js +109 -0
- package/lib/browser/terminal.service.js +163 -0
- package/lib/common/api.d.ts +22 -0
- package/lib/common/api.d.ts.map +1 -0
- package/lib/common/api.js +5 -0
- package/lib/common/api.js.map +1 -0
- package/lib/common/client.d.ts +199 -0
- package/lib/common/client.d.ts.map +1 -0
- package/lib/common/client.js +6 -0
- package/lib/common/client.js.map +1 -0
- package/lib/common/controller.d.ts +149 -0
- package/lib/common/controller.d.ts.map +1 -0
- package/lib/common/controller.js +8 -0
- package/lib/common/controller.js.map +1 -0
- package/lib/common/environmentVariable.d.ts +116 -0
- package/lib/common/environmentVariable.d.ts.map +1 -0
- package/lib/common/environmentVariable.js +30 -0
- package/lib/common/environmentVariable.js.map +1 -0
- package/lib/common/environmentVariableCollection.d.ts +9 -0
- package/lib/common/environmentVariableCollection.d.ts.map +1 -0
- package/lib/common/environmentVariableCollection.js +140 -0
- package/lib/common/environmentVariableCollection.js.map +1 -0
- package/lib/common/error.d.ts +41 -0
- package/lib/common/error.d.ts.map +1 -0
- package/lib/common/error.js +13 -0
- package/lib/common/error.js.map +1 -0
- package/lib/common/extension.d.ts +139 -0
- package/lib/common/extension.d.ts.map +1 -0
- package/lib/common/extension.js +57 -0
- package/lib/common/extension.js.map +1 -0
- package/lib/common/index.d.ts +17 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +20 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/link-computer.d.ts +56 -0
- package/lib/common/link-computer.d.ts.map +1 -0
- package/lib/common/link-computer.js +282 -0
- package/lib/common/link-computer.js.map +1 -0
- package/lib/common/network.d.ts +48 -0
- package/lib/common/network.d.ts.map +1 -0
- package/lib/common/network.js +10 -0
- package/lib/common/network.js.map +1 -0
- package/lib/common/preference.d.ts +134 -0
- package/lib/common/preference.d.ts.map +1 -0
- package/lib/common/preference.js +199 -0
- package/lib/common/preference.js.map +1 -0
- package/lib/common/process.d.ts +8 -0
- package/lib/common/process.d.ts.map +1 -0
- package/lib/common/process.js +3 -0
- package/lib/common/process.js.map +1 -0
- package/lib/common/profile.d.ts +99 -0
- package/lib/common/profile.d.ts.map +1 -0
- package/lib/common/profile.js +27 -0
- package/lib/common/profile.js.map +1 -0
- package/lib/common/pty.d.ts +525 -0
- package/lib/common/pty.d.ts.map +1 -0
- package/lib/common/pty.js +28 -0
- package/lib/common/pty.js.map +1 -0
- package/lib/common/render.d.ts +29 -0
- package/lib/common/render.d.ts.map +1 -0
- package/lib/common/render.js +10 -0
- package/lib/common/render.js.map +1 -0
- package/lib/common/resize.d.ts +43 -0
- package/lib/common/resize.d.ts.map +1 -0
- package/lib/common/resize.js +3 -0
- package/lib/common/resize.js.map +1 -0
- package/lib/common/restore.d.ts +6 -0
- package/lib/common/restore.d.ts.map +1 -0
- package/lib/common/restore.js +5 -0
- package/lib/common/restore.js.map +1 -0
- package/lib/common/service.d.ts +96 -0
- package/lib/common/service.d.ts.map +1 -0
- package/lib/common/service.js +6 -0
- package/lib/common/service.js.map +1 -0
- package/lib/common/shell.d.ts +11 -0
- package/lib/common/shell.d.ts.map +1 -0
- package/lib/common/shell.js +14 -0
- package/lib/common/shell.js.map +1 -0
- package/lib/common/theme.d.ts +6 -0
- package/lib/common/theme.d.ts.map +1 -0
- package/lib/common/theme.js +5 -0
- package/lib/common/theme.js.map +1 -0
- package/lib/common/utils.d.ts +4 -0
- package/lib/common/utils.d.ts.map +1 -0
- package/lib/common/utils.js +15 -0
- package/lib/common/utils.js.map +1 -0
- package/lib/common/xterm.d.ts +27 -0
- package/lib/common/xterm.d.ts.map +1 -0
- package/lib/common/xterm.js +10 -0
- package/lib/common/xterm.js.map +1 -0
- package/lib/index.js +5 -0
- package/lib/node/data-store.d.ts +13 -0
- package/lib/node/data-store.d.ts.map +1 -0
- package/lib/node/data-store.js +6 -0
- package/lib/node/data-store.js.map +1 -0
- package/lib/node/index.d.ts +10 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +64 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/pty.d.ts +42 -0
- package/lib/node/pty.d.ts.map +1 -0
- package/lib/node/pty.js +277 -0
- package/lib/node/pty.js.map +1 -0
- 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 +157 -0
- package/lib/node/pty.manager.js.map +1 -0
- package/lib/node/pty.manager.remote.d.ts +23 -0
- package/lib/node/pty.manager.remote.d.ts.map +1 -0
- package/lib/node/pty.manager.remote.js +124 -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 +277 -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-integration.service.d.ts +24 -0
- package/lib/node/shell-integration.service.d.ts.map +1 -0
- package/lib/node/shell-integration.service.js +187 -0
- package/lib/node/shell-integration.service.js.map +1 -0
- package/lib/node/shell.d.ts +20 -0
- package/lib/node/shell.d.ts.map +1 -0
- package/lib/node/shell.js +199 -0
- package/lib/node/shell.js.map +1 -0
- package/lib/node/terminal.process.service.d.ts +5 -0
- package/lib/node/terminal.process.service.d.ts.map +1 -0
- package/lib/node/terminal.process.service.js +15 -0
- package/lib/node/terminal.process.service.js.map +1 -0
- package/lib/node/terminal.profile.service.d.ts +19 -0
- package/lib/node/terminal.profile.service.d.ts.map +1 -0
- package/lib/node/terminal.profile.service.js +228 -0
- package/lib/node/terminal.profile.service.js.map +1 -0
- package/lib/node/terminal.service.client.d.ts +51 -0
- package/lib/node/terminal.service.client.d.ts.map +1 -0
- package/lib/node/terminal.service.client.js +159 -0
- package/lib/node/terminal.service.client.js.map +1 -0
- package/lib/node/terminal.service.d.ts +30 -0
- package/lib/node/terminal.service.d.ts.map +1 -0
- package/lib/node/terminal.service.js +246 -0
- package/lib/node/terminal.service.js.map +1 -0
- package/package.json +18 -18
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShellIntegrationService = exports.IShellIntegrationService = exports.bashIntegrationPath = exports.shellIntegrationDirPath = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const os_1 = tslib_1.__importDefault(require("os"));
|
|
6
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
8
|
+
const di_1 = require("@opensumi/di");
|
|
9
|
+
// 未来适配 OpenSumi 的时候需要调整
|
|
10
|
+
exports.shellIntegrationDirPath = path_1.default.join(os_1.default.tmpdir(), '.sumi-shell', 'shell-integration');
|
|
11
|
+
exports.bashIntegrationPath = path_1.default.join(exports.shellIntegrationDirPath, 'bash-integration.bash');
|
|
12
|
+
exports.IShellIntegrationService = Symbol('IShellIntegrationService');
|
|
13
|
+
/**
|
|
14
|
+
* 可通过重写此 Service 做到自定义的 Bash 注入
|
|
15
|
+
* 后续增加 ZSH 的支持
|
|
16
|
+
*/
|
|
17
|
+
let ShellIntegrationService = class ShellIntegrationService {
|
|
18
|
+
/**
|
|
19
|
+
注入的 bash initFile,用于 ShellIntegration 功能的搭建
|
|
20
|
+
可覆写此文件,实现自定义的注入
|
|
21
|
+
*注意*:要保持 prompt_start 和 prompt_end 的注入,否则会影响 IDE 的终端智能
|
|
22
|
+
*/
|
|
23
|
+
async getBashIntegrationContent() {
|
|
24
|
+
return String.raw `
|
|
25
|
+
|
|
26
|
+
if [ -r /etc/profile ]; then
|
|
27
|
+
. /etc/profile
|
|
28
|
+
fi
|
|
29
|
+
if [ -r ~/.bashrc ]; then
|
|
30
|
+
. ~/.bashrc
|
|
31
|
+
fi
|
|
32
|
+
if [ -r ~/.bash_profile ]; then
|
|
33
|
+
. ~/.bash_profile
|
|
34
|
+
elif [ -r ~/.bash_login ]; then
|
|
35
|
+
. ~/.bash_login
|
|
36
|
+
elif [ -r ~/.profile ]; then
|
|
37
|
+
. ~/.profile
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
__is_prompt_start() {
|
|
41
|
+
builtin printf '\e]6973;PS\a' # 标记 Shell Prompt Start,使其可被 IDE 上层感知,用于终端智能
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
__is_prompt_end() {
|
|
45
|
+
builtin printf '\e]6973;PE\a' # 用于标记 Shell Prompt End,作用同上
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
__is_update_prompt() {
|
|
49
|
+
if [[ "$__is_custom_PS1" == "" || "$__is_custom_PS1" != "$PS1" ]]; then
|
|
50
|
+
__is_original_PS1=$PS1
|
|
51
|
+
__is_custom_PS1="\[$(__is_prompt_start)\]$__is_original_PS1\[$(__is_prompt_end)\]"
|
|
52
|
+
export PS1="$__is_custom_PS1"
|
|
53
|
+
fi
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
__is_update_prompt
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
// 可被集成侧覆写以自定义 Bash 注入文件
|
|
60
|
+
async initBashInitFile() {
|
|
61
|
+
await fs_extra_1.default.mkdirp(exports.shellIntegrationDirPath);
|
|
62
|
+
await fs_extra_1.default.writeFile(exports.bashIntegrationPath, await this.getBashIntegrationContent());
|
|
63
|
+
return exports.bashIntegrationPath;
|
|
64
|
+
}
|
|
65
|
+
// ZSH 的智能化基于 ZDOTDIR 能力运行
|
|
66
|
+
async initZshDotFiles() {
|
|
67
|
+
const zDotDir = path_1.default.join(os_1.default.tmpdir(), 'sumi-integration-zsh');
|
|
68
|
+
await this.writeZshConfigShellScripts(zDotDir);
|
|
69
|
+
return zDotDir;
|
|
70
|
+
}
|
|
71
|
+
async writeZshConfigShellScripts(outputDir) {
|
|
72
|
+
// 定义文件内容
|
|
73
|
+
const shellIntegrationEnv = String.raw `
|
|
74
|
+
if [[ -f $USER_ZDOTDIR/.zshenv ]]; then
|
|
75
|
+
SUMI_ZDOTDIR=$ZDOTDIR
|
|
76
|
+
ZDOTDIR=$USER_ZDOTDIR
|
|
77
|
+
|
|
78
|
+
# prevent recursion
|
|
79
|
+
if [[ $USER_ZDOTDIR != $SUMI_ZDOTDIR ]]; then
|
|
80
|
+
. $USER_ZDOTDIR/.zshenv
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
USER_ZDOTDIR=$ZDOTDIR
|
|
84
|
+
ZDOTDIR=$SUMI_ZDOTDIR
|
|
85
|
+
fi
|
|
86
|
+
`;
|
|
87
|
+
const shellIntegrationLogin = String.raw `
|
|
88
|
+
if [[ -f $USER_ZDOTDIR/.zlogin ]]; then
|
|
89
|
+
ZDOTDIR=$USER_ZDOTDIR
|
|
90
|
+
. $ZDOTDIR/.zlogin
|
|
91
|
+
fi
|
|
92
|
+
`;
|
|
93
|
+
// 处理 zProfile 的情况,需要临时切回用户的 zshrc 目录配置执行 zProfile,然后记得要切回来,否则 zshrc hack 不生效
|
|
94
|
+
const shellIntegrationProfile = String.raw `
|
|
95
|
+
if [[ -f $USER_ZDOTDIR/.zprofile ]]; then
|
|
96
|
+
SUMI_ZDOTDIR=$ZDOTDIR
|
|
97
|
+
ZDOTDIR=$USER_ZDOTDIR
|
|
98
|
+
. $USER_ZDOTDIR/.zprofile
|
|
99
|
+
ZDOTDIR=$SUMI_ZDOTDIR
|
|
100
|
+
fi
|
|
101
|
+
`;
|
|
102
|
+
const shellIntegrationRc = `
|
|
103
|
+
builtin autoload -U add-zsh-hook
|
|
104
|
+
|
|
105
|
+
if [[ -f $USER_ZDOTDIR/.zshrc ]]; then
|
|
106
|
+
ZDOTDIR=$USER_ZDOTDIR
|
|
107
|
+
. $USER_ZDOTDIR/.zshrc
|
|
108
|
+
fi
|
|
109
|
+
|
|
110
|
+
__is_prompt_start() {
|
|
111
|
+
builtin printf '\\e]6973;PS\\a'
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
__is_prompt_end() {
|
|
115
|
+
builtin printf '\\e]6973;PE\\a'
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
__is_escape_value() {
|
|
119
|
+
builtin emulate -L zsh
|
|
120
|
+
|
|
121
|
+
# Process text byte by byte, not by codepoint.
|
|
122
|
+
builtin local LC_ALL=C str="$1" i byte token out=''
|
|
123
|
+
|
|
124
|
+
for (( i = 0; i < \${#str}; ++i )); do
|
|
125
|
+
byte="\${str:$i:1}"
|
|
126
|
+
|
|
127
|
+
# Escape backslashes and semi-colons
|
|
128
|
+
if [ "$byte" = "\\\\" ]; then
|
|
129
|
+
token="\\\\\\\\"
|
|
130
|
+
elif [ "$byte" = ";" ]; then
|
|
131
|
+
token="\\\\x3b"
|
|
132
|
+
elif [ "$byte" = $'\\n' ]; then
|
|
133
|
+
token="\\\\x0a"
|
|
134
|
+
elif [ "$byte" = $'\\e' ]; then
|
|
135
|
+
token="\\\\x1b"
|
|
136
|
+
elif [ "$byte" = $'\\a' ]; then
|
|
137
|
+
token="\\\\x07"
|
|
138
|
+
else
|
|
139
|
+
token="$byte"
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
out+="$token"
|
|
143
|
+
done
|
|
144
|
+
|
|
145
|
+
builtin print -r "$out"
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
__is_update_cwd() {
|
|
149
|
+
builtin printf '\\e]6973;CWD;%s\\a' "$(__is_escape_value "\${PWD}")"
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
__is_update_prompt() {
|
|
153
|
+
__is_prior_prompt="$PS1"
|
|
154
|
+
if [[ $ISTERM_TESTING == "1" ]]; then
|
|
155
|
+
__is_prior_prompt="> "
|
|
156
|
+
fi
|
|
157
|
+
PS1="%{\$(__is_prompt_start)%}\$__is_prior_prompt%{\$(__is_prompt_end)%}"
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
__is_precmd() {
|
|
161
|
+
if [[ $PS1 != *"\$(__is_prompt_start)"* ]]; then
|
|
162
|
+
__is_update_prompt
|
|
163
|
+
fi
|
|
164
|
+
__is_update_cwd
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
__is_update_prompt
|
|
168
|
+
add-zsh-hook precmd __is_precmd
|
|
169
|
+
`;
|
|
170
|
+
const files = [
|
|
171
|
+
{ name: '.zshenv', content: shellIntegrationEnv },
|
|
172
|
+
{ name: '.zlogin', content: shellIntegrationLogin },
|
|
173
|
+
{ name: '.zprofile', content: shellIntegrationProfile },
|
|
174
|
+
{ name: '.zshrc', content: shellIntegrationRc },
|
|
175
|
+
];
|
|
176
|
+
await fs_extra_1.default.mkdir(outputDir, { recursive: true });
|
|
177
|
+
for (const file of files) {
|
|
178
|
+
const filePath = path_1.default.join(outputDir, file.name);
|
|
179
|
+
await fs_extra_1.default.writeFile(filePath, file.content, 'utf-8');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
exports.ShellIntegrationService = ShellIntegrationService;
|
|
184
|
+
exports.ShellIntegrationService = ShellIntegrationService = tslib_1.__decorate([
|
|
185
|
+
(0, di_1.Injectable)()
|
|
186
|
+
], ShellIntegrationService);
|
|
187
|
+
//# sourceMappingURL=shell-integration.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-integration.service.js","sourceRoot":"","sources":["../../src/node/shell-integration.service.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,wDAAwB;AAExB,gEAA0B;AAE1B,qCAA0C;AAa1C,wBAAwB;AACX,QAAA,uBAAuB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAErF,QAAA,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,+BAAuB,EAAE,uBAAuB,CAAC,CAAC;AAElF,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAE3E;;;GAGG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC;;;;MAIE;IACF,KAAK,CAAC,yBAAyB;QAC7B,OAAO,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiChB,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,gBAAgB;QACpB,MAAM,kBAAE,CAAC,MAAM,CAAC,+BAAuB,CAAC,CAAC;QACzC,MAAM,kBAAE,CAAC,SAAS,CAAC,2BAAmB,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;QAChF,OAAO,2BAAmB,CAAC;IAC7B,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,SAAiB;QACxD,SAAS;QACT,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;CAazC,CAAC;QAEE,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAK3C,CAAC;QAEE,6EAA6E;QAC7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAO7C,CAAC;QAEE,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmE9B,CAAC;QAEE,MAAM,KAAK,GAAG;YACZ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE;YACjD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE;YACnD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,EAAE;YACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE;SAChD,CAAC;QAEF,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;CACF,CAAA;AA9KY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,eAAU,GAAE;GACA,uBAAuB,CA8KnC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IProcessEnvironment, OperatingSystem } from '@opensumi/ide-core-common';
|
|
2
|
+
export declare const WINDOWS_GIT_BASH_PATHS: string[];
|
|
3
|
+
export declare function getPowershellPaths(): Promise<string[]>;
|
|
4
|
+
export declare const exists: (p: string) => Promise<string | undefined>;
|
|
5
|
+
export declare function findShellExecutableAsync(candidate: string[]): Promise<string | undefined>;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated use findShellExecutableAsync
|
|
8
|
+
*/
|
|
9
|
+
export declare function findShellExecutable(candidate: string[]): string | undefined;
|
|
10
|
+
export declare function getCaseInsensitive(target: Record<string, any>, key: string): any;
|
|
11
|
+
export declare function findExecutable(command: string, cwd?: string, paths?: string[], env?: IProcessEnvironment): Promise<string | undefined>;
|
|
12
|
+
export declare function getWindowsBuildNumber(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the detected default shell for the _system_, not to be confused with VS Code's _default_
|
|
15
|
+
* shell that the terminal uses by default.
|
|
16
|
+
* @param os The platform to detect the shell of.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getSystemShell(os: OperatingSystem): Promise<string>;
|
|
19
|
+
export declare function getWindowsShell(env?: NodeJS.ProcessEnv): string;
|
|
20
|
+
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAA8B,MAAM,2BAA2B,CAAC;AAG7G,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAEF,wBAAsB,kBAAkB,sBASvC;AAED,eAAO,MAAM,MAAM,MAAa,MAAM,gCAOrC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAIhF;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,GAAG,GAAE,mBAAwD,GAC5D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmD7B;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAO9C;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAuCD,wBAAgB,eAAe,CAAC,GAAG,oBAAc,GAAG,MAAM,CAEzD"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.exists = exports.WINDOWS_GIT_BASH_PATHS = void 0;
|
|
8
|
+
exports.getPowershellPaths = getPowershellPaths;
|
|
9
|
+
exports.findShellExecutableAsync = findShellExecutableAsync;
|
|
10
|
+
exports.findShellExecutable = findShellExecutable;
|
|
11
|
+
exports.getCaseInsensitive = getCaseInsensitive;
|
|
12
|
+
exports.findExecutable = findExecutable;
|
|
13
|
+
exports.getWindowsBuildNumber = getWindowsBuildNumber;
|
|
14
|
+
exports.getSystemShell = getSystemShell;
|
|
15
|
+
exports.getWindowsShell = getWindowsShell;
|
|
16
|
+
const tslib_1 = require("tslib");
|
|
17
|
+
// Some code copied and modified from:
|
|
18
|
+
// - https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalEnvironment.ts
|
|
19
|
+
// - https://github.com/microsoft/vscode/blob/ff383268424b1d4b6620e7ea197fb13ae513414f/src/vs/base/node/shell.ts
|
|
20
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
21
|
+
const os_1 = require("os");
|
|
22
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
23
|
+
const ide_core_node_1 = require("@opensumi/ide-core-node");
|
|
24
|
+
exports.WINDOWS_GIT_BASH_PATHS = [
|
|
25
|
+
`${process.env['ProgramW6432']}\\Git\\bin\\bash.exe`,
|
|
26
|
+
`${process.env['ProgramW6432']}\\Git\\usr\\bin\\bash.exe`,
|
|
27
|
+
`${process.env['ProgramFiles']}\\Git\\bin\\bash.exe`,
|
|
28
|
+
`${process.env['ProgramFiles']}\\Git\\usr\\bin\\bash.exe`,
|
|
29
|
+
`${process.env['LocalAppData']}\\Programs\\Git\\bin\\bash.exe`,
|
|
30
|
+
`${process.env['UserProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
|
|
31
|
+
`${process.env['AllUsersProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
|
|
32
|
+
];
|
|
33
|
+
async function getPowershellPaths() {
|
|
34
|
+
const paths = [];
|
|
35
|
+
// TODO: 引入 VSCODE 查找逻辑
|
|
36
|
+
// Add all of the different kinds of PowerShells
|
|
37
|
+
// for await (const pwshExe of enumeratePowerShellInstallations()) {
|
|
38
|
+
// paths.push(pwshExe.exePath);
|
|
39
|
+
// }
|
|
40
|
+
paths.push('powershell.exe');
|
|
41
|
+
return paths;
|
|
42
|
+
}
|
|
43
|
+
const exists = async (p) => {
|
|
44
|
+
try {
|
|
45
|
+
await fs_1.default.promises.access(ide_core_common_1.path.normalize(p));
|
|
46
|
+
return p;
|
|
47
|
+
}
|
|
48
|
+
catch (_e) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.exists = exists;
|
|
53
|
+
async function findShellExecutableAsync(candidate) {
|
|
54
|
+
if (candidate.length === 0) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
// return the first exists one
|
|
58
|
+
return Promise.all(candidate.map((v) => findExecutable(v))).then((v) => v.find(Boolean));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated use findShellExecutableAsync
|
|
62
|
+
*/
|
|
63
|
+
function findShellExecutable(candidate) {
|
|
64
|
+
if (candidate.length === 0) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
for (const p of candidate) {
|
|
68
|
+
if (fs_1.default.existsSync(ide_core_common_1.path.normalize(p))) {
|
|
69
|
+
return p;
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function getCaseInsensitive(target, key) {
|
|
75
|
+
const lowercaseKey = key.toLowerCase();
|
|
76
|
+
const equivalentKey = Object.keys(target).find((k) => k.toLowerCase() === lowercaseKey);
|
|
77
|
+
return equivalentKey ? target[equivalentKey] : target[key];
|
|
78
|
+
}
|
|
79
|
+
async function findExecutable(command, cwd, paths, env = process.env) {
|
|
80
|
+
// If we have an absolute path then we take it.
|
|
81
|
+
if (ide_core_common_1.path.isAbsolute(command)) {
|
|
82
|
+
return (await (0, exports.exists)(command)) ? command : undefined;
|
|
83
|
+
}
|
|
84
|
+
if (cwd === undefined) {
|
|
85
|
+
cwd = process.cwd();
|
|
86
|
+
}
|
|
87
|
+
const dir = ide_core_common_1.path.dirname(command);
|
|
88
|
+
if (dir !== '.') {
|
|
89
|
+
// We have a directory and the directory is relative (see above). Make the path absolute
|
|
90
|
+
// to the current working directory.
|
|
91
|
+
const fullPath = ide_core_common_1.path.join(cwd, command);
|
|
92
|
+
return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
|
|
93
|
+
}
|
|
94
|
+
const envPath = getCaseInsensitive(env, 'PATH');
|
|
95
|
+
if (paths === undefined && typeof envPath === 'string') {
|
|
96
|
+
paths = envPath.split(ide_core_common_1.path.delimiter);
|
|
97
|
+
}
|
|
98
|
+
// No PATH environment. Make path absolute to the cwd.
|
|
99
|
+
if (paths === undefined || paths.length === 0) {
|
|
100
|
+
const fullPath = ide_core_common_1.path.join(cwd, command);
|
|
101
|
+
return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
|
|
102
|
+
}
|
|
103
|
+
// We have a simple file name. We get the path variable from the env
|
|
104
|
+
// and try to find the executable on the path.
|
|
105
|
+
for (const pathEntry of paths) {
|
|
106
|
+
// The path entry is absolute.
|
|
107
|
+
let fullPath;
|
|
108
|
+
if (ide_core_common_1.path.isAbsolute(pathEntry)) {
|
|
109
|
+
fullPath = ide_core_common_1.path.join(pathEntry, command);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
fullPath = ide_core_common_1.path.join(cwd, pathEntry, command);
|
|
113
|
+
}
|
|
114
|
+
if (await (0, exports.exists)(fullPath)) {
|
|
115
|
+
return fullPath;
|
|
116
|
+
}
|
|
117
|
+
if (ide_core_node_1.isWindows) {
|
|
118
|
+
let withExtension = fullPath + '.com';
|
|
119
|
+
if (await (0, exports.exists)(withExtension)) {
|
|
120
|
+
return withExtension;
|
|
121
|
+
}
|
|
122
|
+
withExtension = fullPath + '.exe';
|
|
123
|
+
if (await (0, exports.exists)(withExtension)) {
|
|
124
|
+
return withExtension;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const fullPath = ide_core_common_1.path.join(cwd, command);
|
|
129
|
+
return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
|
|
130
|
+
}
|
|
131
|
+
function getWindowsBuildNumber() {
|
|
132
|
+
const osVersion = /(\d+)\.(\d+)\.(\d+)/g.exec((0, os_1.release)());
|
|
133
|
+
let buildNumber = 0;
|
|
134
|
+
if (osVersion && osVersion.length === 4) {
|
|
135
|
+
buildNumber = parseInt(osVersion[3], 10);
|
|
136
|
+
}
|
|
137
|
+
return buildNumber;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Gets the detected default shell for the _system_, not to be confused with VS Code's _default_
|
|
141
|
+
* shell that the terminal uses by default.
|
|
142
|
+
* @param os The platform to detect the shell of.
|
|
143
|
+
*/
|
|
144
|
+
async function getSystemShell(os) {
|
|
145
|
+
if (os === ide_core_common_1.OperatingSystem.Windows) {
|
|
146
|
+
if (ide_core_node_1.isWindows) {
|
|
147
|
+
return getSystemShellWindows();
|
|
148
|
+
}
|
|
149
|
+
// Don't detect Windows shell when not on Windows
|
|
150
|
+
return getWindowsShell();
|
|
151
|
+
}
|
|
152
|
+
return getSystemShellUnixLike(os);
|
|
153
|
+
}
|
|
154
|
+
let _TERMINAL_DEFAULT_SHELL_UNIX_LIKE = null;
|
|
155
|
+
function getSystemShellUnixLike(os, env = process.env) {
|
|
156
|
+
// Only use $SHELL for the current OS
|
|
157
|
+
if ((ide_core_common_1.isLinux && os === ide_core_common_1.OperatingSystem.Macintosh) || (ide_core_common_1.isMacintosh && os === ide_core_common_1.OperatingSystem.Linux)) {
|
|
158
|
+
return '/bin/bash';
|
|
159
|
+
}
|
|
160
|
+
if (!_TERMINAL_DEFAULT_SHELL_UNIX_LIKE) {
|
|
161
|
+
let unixLikeTerminal;
|
|
162
|
+
unixLikeTerminal = env['SHELL'];
|
|
163
|
+
if (!unixLikeTerminal) {
|
|
164
|
+
try {
|
|
165
|
+
// It's possible for $SHELL to be unset, this API reads /etc/passwd. See https://github.com/github/codespaces/issues/1639
|
|
166
|
+
// Node docs: "Throws a SystemError if a user has no username or homedir."
|
|
167
|
+
const info = (0, os_1.userInfo)();
|
|
168
|
+
if (info.shell) {
|
|
169
|
+
unixLikeTerminal = info.shell;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (err) { }
|
|
173
|
+
}
|
|
174
|
+
if (!unixLikeTerminal) {
|
|
175
|
+
unixLikeTerminal = 'sh';
|
|
176
|
+
}
|
|
177
|
+
// Some systems have $SHELL set to /bin/false which breaks the terminal
|
|
178
|
+
if (unixLikeTerminal === '/bin/false') {
|
|
179
|
+
unixLikeTerminal = '/bin/bash';
|
|
180
|
+
}
|
|
181
|
+
_TERMINAL_DEFAULT_SHELL_UNIX_LIKE = unixLikeTerminal;
|
|
182
|
+
}
|
|
183
|
+
return _TERMINAL_DEFAULT_SHELL_UNIX_LIKE;
|
|
184
|
+
}
|
|
185
|
+
function getWindowsShell(env = process.env) {
|
|
186
|
+
return env['comspec'] || 'cmd.exe';
|
|
187
|
+
}
|
|
188
|
+
let _TERMINAL_DEFAULT_SHELL_WINDOWS = null;
|
|
189
|
+
async function getSystemShellWindows(env = process.env) {
|
|
190
|
+
if (!_TERMINAL_DEFAULT_SHELL_WINDOWS) {
|
|
191
|
+
const isAtLeastWindows10 = ide_core_node_1.isWindows && parseFloat((0, os_1.release)()) >= 10;
|
|
192
|
+
const is32ProcessOn64Windows = Object.prototype.hasOwnProperty.call(env, 'PROCESSOR_ARCHITEW6432');
|
|
193
|
+
const powerShellPath = `${env['windir']}\\${is32ProcessOn64Windows ? 'Sysnative' : 'System32'}\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
194
|
+
_TERMINAL_DEFAULT_SHELL_WINDOWS = isAtLeastWindows10 ? powerShellPath : getWindowsShell(env);
|
|
195
|
+
return _TERMINAL_DEFAULT_SHELL_WINDOWS;
|
|
196
|
+
}
|
|
197
|
+
return _TERMINAL_DEFAULT_SHELL_WINDOWS;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.process.service.d.ts","sourceRoot":"","sources":["../../src/node/terminal.process.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,qBACa,0BAA2B,YAAW,uBAAuB;IACjE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;CAG5C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalProcessServiceImpl = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
let TerminalProcessServiceImpl = class TerminalProcessServiceImpl {
|
|
7
|
+
getEnv() {
|
|
8
|
+
return Promise.resolve(process.env);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
exports.TerminalProcessServiceImpl = TerminalProcessServiceImpl;
|
|
12
|
+
exports.TerminalProcessServiceImpl = TerminalProcessServiceImpl = tslib_1.__decorate([
|
|
13
|
+
(0, di_1.Injectable)()
|
|
14
|
+
], TerminalProcessServiceImpl);
|
|
15
|
+
//# sourceMappingURL=terminal.process.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.process.service.js","sourceRoot":"","sources":["../../src/node/terminal.process.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAKnC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAC9B,MAAM;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AAJY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,eAAU,GAAE;GACA,0BAA0B,CAItC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IDetectProfileOptions, ITerminalEnvironment } from '..';
|
|
2
|
+
import { IPotentialTerminalProfile, ITerminalProfile, IUnresolvedTerminalProfile } from '../common/profile';
|
|
3
|
+
export declare const ITerminalProfileServiceNode: unique symbol;
|
|
4
|
+
export declare class TerminalProfileServiceNode {
|
|
5
|
+
private logger;
|
|
6
|
+
profileSources: Map<string, IPotentialTerminalProfile> | undefined;
|
|
7
|
+
private _perferenceProfiles;
|
|
8
|
+
constructor();
|
|
9
|
+
detectAvailableProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
10
|
+
_getPreferenceProfiles(): {
|
|
11
|
+
[key: string]: IUnresolvedTerminalProfile;
|
|
12
|
+
};
|
|
13
|
+
_detectWindowsProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
14
|
+
initializeWindowsProfiles(): Promise<void>;
|
|
15
|
+
_detectUnixProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
16
|
+
validateProfilePaths(profileName: string, defaultProfileName: string | undefined, potentialPaths: string[], args: string[] | string | undefined, env: ITerminalEnvironment, overrideName?: boolean | undefined, isAutoDetected?: boolean | undefined): any;
|
|
17
|
+
transformToTerminalProfiles(entries: IterableIterator<[string, IUnresolvedTerminalProfile]>, defaultProfileName: string | undefined): Promise<ITerminalProfile[]>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=terminal.profile.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.profile.service.d.ts","sourceRoot":"","sources":["../../src/node/terminal.profile.service.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAE3B,MAAM,mBAAmB,CAAC;AAuB3B,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,qBACa,0BAA0B;IAErC,OAAO,CAAC,MAAM,CAAc;IAE5B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,mBAAmB,CAAgD;;IAG3E,uBAAuB,CAAC,OAAO,EAAE,qBAAqB;IAYtD,sBAAsB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAAA;KAAE;IAGjE,sBAAsB,CAAC,OAAO,EAAE,qBAAqB;IA4DrD,yBAAyB;IAiBzB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IAyBlD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,EACnC,GAAG,EAAE,oBAAoB,EACzB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,EAClC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS;IAgEhC,2BAA2B,CAC/B,OAAO,EAAE,gBAAgB,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAC/D,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA2C/B"}
|