Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
825d5f3f
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
825d5f3f
编写于
4月 10, 2018
作者:
D
Dirk Baeumer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #47465: Provide a method of matching TaskExecution objects
上级
cfb26b3d
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
18 addition
and
4 deletion
+18
-4
src/vs/workbench/api/node/extHostTask.ts
src/vs/workbench/api/node/extHostTask.ts
+18
-4
未找到文件。
src/vs/workbench/api/node/extHostTask.ts
浏览文件 @
825d5f3f
...
...
@@ -711,6 +711,7 @@ export class ExtHostTask implements ExtHostTaskShape {
private
_extHostWorkspace
:
ExtHostWorkspace
;
private
_handleCounter
:
number
;
private
_handlers
:
Map
<
number
,
HandlerData
>
;
private
_taskExecutions
:
Map
<
string
,
TaskExecutionImpl
>
;
private
readonly
_onDidExecuteTask
:
Emitter
<
vscode
.
TaskStartEvent
>
=
new
Emitter
<
vscode
.
TaskStartEvent
>
();
private
readonly
_onDidTerminateTask
:
Emitter
<
vscode
.
TaskEndEvent
>
=
new
Emitter
<
vscode
.
TaskEndEvent
>
();
...
...
@@ -720,6 +721,7 @@ export class ExtHostTask implements ExtHostTaskShape {
this
.
_extHostWorkspace
=
extHostWorkspace
;
this
.
_handleCounter
=
0
;
this
.
_handlers
=
new
Map
<
number
,
HandlerData
>
();
this
.
_taskExecutions
=
new
Map
<
string
,
TaskExecutionImpl
>
();
}
public
get
extHostWorkspace
():
ExtHostWorkspace
{
...
...
@@ -756,19 +758,19 @@ export class ExtHostTask implements ExtHostTaskShape {
let
tTask
=
(
task
as
types
.
Task
);
// We have a preserved ID. So the task didn't change.
if
(
tTask
.
_id
!==
void
0
)
{
return
this
.
_proxy
.
$executeTask
(
TaskHandleDTO
.
from
(
tTask
)).
then
(
value
=>
new
TaskExecutionImpl
(
value
.
id
,
task
,
this
));
return
this
.
_proxy
.
$executeTask
(
TaskHandleDTO
.
from
(
tTask
)).
then
(
value
=>
this
.
getTaskExecution
(
value
,
task
));
}
else
{
let
dto
=
TaskDTO
.
from
(
task
,
extension
);
if
(
dto
===
void
0
)
{
return
Promise
.
reject
(
new
Error
(
'
Task is not valid
'
));
}
return
this
.
_proxy
.
$executeTask
(
dto
).
then
(
value
=>
new
TaskExecutionImpl
(
value
.
id
,
task
,
this
));
return
this
.
_proxy
.
$executeTask
(
dto
).
then
(
value
=>
this
.
getTaskExecution
(
value
,
task
));
}
}
public
$taskStarted
(
execution
:
TaskExecutionDTO
):
void
{
this
.
_onDidExecuteTask
.
fire
({
execution
:
TaskExecutionDTO
.
to
(
execution
,
this
)
execution
:
this
.
getTaskExecution
(
execution
)
});
}
...
...
@@ -784,8 +786,10 @@ export class ExtHostTask implements ExtHostTaskShape {
}
public
$taskEnded
(
execution
:
TaskExecutionDTO
):
void
{
const
_execution
=
this
.
getTaskExecution
(
execution
);
this
.
_taskExecutions
.
delete
(
execution
.
id
);
this
.
_onDidTerminateTask
.
fire
({
execution
:
TaskExecutionDTO
.
to
(
execution
,
this
)
execution
:
_execution
});
}
...
...
@@ -810,4 +814,14 @@ export class ExtHostTask implements ExtHostTaskShape {
private
nextHandle
():
number
{
return
this
.
_handleCounter
++
;
}
private
getTaskExecution
(
execution
:
TaskExecutionDTO
,
task
?:
vscode
.
Task
):
TaskExecutionImpl
{
let
result
:
TaskExecutionImpl
=
this
.
_taskExecutions
.
get
(
execution
.
id
);
if
(
result
)
{
return
result
;
}
result
=
new
TaskExecutionImpl
(
execution
.
id
,
task
?
task
:
TaskDTO
.
to
(
execution
.
task
,
this
.
_extHostWorkspace
),
this
);
this
.
_taskExecutions
.
set
(
execution
.
id
,
result
);
return
result
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录