Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b96cbd87
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b96cbd87
编写于
7月 02, 2019
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix issues with early ext host terminal messages going missing
上级
c5853f3a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
10 deletion
+16
-10
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+2
-0
src/vs/workbench/api/browser/mainThreadTerminalService.ts
src/vs/workbench/api/browser/mainThreadTerminalService.ts
+14
-10
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
b96cbd87
...
...
@@ -1272,6 +1272,8 @@ declare module 'vscode' {
// Allows ~ to be resolved in Live Share
// userHome?: string;
// cwd: string
}
interface
TerminalVirtualProcess
{
...
...
src/vs/workbench/api/browser/mainThreadTerminalService.ts
浏览文件 @
b96cbd87
...
...
@@ -18,7 +18,8 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
private
_proxy
:
ExtHostTerminalServiceShape
;
private
_remoteAuthority
:
string
|
null
;
private
_toDispose
:
IDisposable
[]
=
[];
private
_terminalProcesses
:
{
[
id
:
number
]:
ITerminalProcessExtHostProxy
}
=
{};
private
_terminalProcesses
:
{
[
id
:
number
]:
Promise
<
ITerminalProcessExtHostProxy
>
}
=
{};
private
_terminalProcessesReady
:
{
[
id
:
number
]:
(
proxy
:
ITerminalProcessExtHostProxy
)
=>
void
}
=
{};
private
_terminalOnDidWriteDataListeners
:
{
[
id
:
number
]:
IDisposable
}
=
{};
private
_terminalOnDidAcceptInputListeners
:
{
[
id
:
number
]:
IDisposable
}
=
{};
...
...
@@ -92,6 +93,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
isVirtualProcess
};
const
terminal
=
this
.
_terminalService
.
createTerminal
(
shellLaunchConfig
);
this
.
_terminalProcesses
[
terminal
.
id
]
=
new
Promise
<
ITerminalProcessExtHostProxy
>
(
r
=>
this
.
_terminalProcessesReady
[
terminal
.
id
]
=
r
);
return
Promise
.
resolve
({
id
:
terminal
.
id
,
name
:
terminal
.
title
...
...
@@ -242,7 +244,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
return
;
}
this
.
_terminalProcesses
[
request
.
proxy
.
terminalId
]
=
request
.
proxy
;
this
.
_terminalProcesses
Ready
[
request
.
proxy
.
terminalId
](
request
.
proxy
)
;
const
shellLaunchConfigDto
:
ShellLaunchConfigDto
=
{
name
:
request
.
shellLaunchConfig
.
name
,
executable
:
request
.
shellLaunchConfig
.
executable
,
...
...
@@ -261,7 +263,9 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
private
_onTerminalRequestVirtualProcess
(
proxy
:
ITerminalProcessExtHostProxy
):
void
{
console
.
log
(
'
_onTerminalRequestVirtualProcess
'
,
proxy
);
this
.
_terminalProcesses
[
proxy
.
terminalId
]
=
proxy
;
this
.
_terminalProcessesReady
[
proxy
.
terminalId
](
proxy
);
delete
this
.
_terminalProcessesReady
[
proxy
.
terminalId
];
proxy
.
onInput
(
data
=>
{
console
.
log
(
'
_onTerminalRequestVirtualProcess onInput
'
,
data
);
this
.
_proxy
.
$acceptProcessInput
(
proxy
.
terminalId
,
data
);
...
...
@@ -274,28 +278,28 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
}
public
$sendProcessTitle
(
terminalId
:
number
,
title
:
string
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitTitle
(
title
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitTitle
(
title
)
);
}
public
$sendProcessData
(
terminalId
:
number
,
data
:
string
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitData
(
data
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitData
(
data
)
);
}
public
$sendProcessReady
(
terminalId
:
number
,
pid
:
number
,
cwd
:
string
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitReady
(
pid
,
cwd
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitReady
(
pid
,
cwd
)
);
}
public
$sendProcessExit
(
terminalId
:
number
,
exitCode
:
number
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitExit
(
exitCode
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitExit
(
exitCode
)
);
delete
this
.
_terminalProcesses
[
terminalId
];
}
public
$sendProcessInitialCwd
(
terminalId
:
number
,
initialCwd
:
string
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitInitialCwd
(
initialCwd
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitInitialCwd
(
initialCwd
)
);
}
public
$sendProcessCwd
(
terminalId
:
number
,
cwd
:
string
):
void
{
this
.
_terminalProcesses
[
terminalId
].
emitCwd
(
cwd
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitCwd
(
cwd
)
);
}
private
async
_onRequestLatency
(
terminalId
:
number
):
Promise
<
void
>
{
...
...
@@ -307,7 +311,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
sw
.
stop
();
sum
+=
sw
.
elapsed
();
}
this
.
_terminalProcesses
[
terminalId
].
emitLatency
(
sum
/
COUNT
);
this
.
_terminalProcesses
[
terminalId
].
then
(
e
=>
e
.
emitLatency
(
sum
/
COUNT
)
);
}
private
_isPrimaryExtHost
():
boolean
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录