Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4b2a13aa
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,发现更多精彩内容 >>
提交
4b2a13aa
编写于
5月 29, 2017
作者:
D
Dirk Baeumer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make the workspace build / test task win over contributed tasks
上级
4c71f96c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
71 addition
and
23 deletion
+71
-23
src/vs/workbench/parts/tasks/common/taskConfiguration.ts
src/vs/workbench/parts/tasks/common/taskConfiguration.ts
+27
-12
src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts
...rkbench/parts/tasks/electron-browser/task.contribution.ts
+20
-10
src/vs/workbench/parts/tasks/test/node/configuration.test.ts
src/vs/workbench/parts/tasks/test/node/configuration.test.ts
+24
-1
未找到文件。
src/vs/workbench/parts/tasks/common/taskConfiguration.ts
浏览文件 @
4b2a13aa
...
...
@@ -137,11 +137,18 @@ export interface TaskDescription extends PlatformTaskDescription {
promptOnClose
?:
boolean
;
/**
* Defines the group the task belongs too.
*/
group
?:
string
;
/**
* @deprecated Use `group` instead.
* Whether this task maps to the default build command.
*/
isBuildCommand
?:
boolean
;
/**
* @deprecated Use `group` instead.
* Whether this task maps to the default test command.
*/
isTestCommand
?:
boolean
;
...
...
@@ -766,8 +773,8 @@ namespace TaskDescription {
}
let
parsedTasks
:
Tasks
.
Task
[]
=
[];
let
annotatingTasks
:
Tasks
.
Task
[]
=
[];
let
defaultBuildTask
:
{
task
:
Tasks
.
Task
;
rank
:
number
;
}
=
{
task
:
null
,
rank
:
-
1
};
let
defaultTestTask
:
{
task
:
Tasks
.
Task
;
rank
:
number
;
}
=
{
task
:
null
,
rank
:
-
1
};
let
defaultBuildTask
:
{
task
:
Tasks
.
Task
;
rank
:
number
;
}
=
{
task
:
undefined
,
rank
:
-
1
};
let
defaultTestTask
:
{
task
:
Tasks
.
Task
;
rank
:
number
;
}
=
{
task
:
undefined
,
rank
:
-
1
};
tasks
.
forEach
((
externalTask
)
=>
{
let
taskName
=
externalTask
.
taskName
;
if
(
!
taskName
)
{
...
...
@@ -800,6 +807,16 @@ namespace TaskDescription {
if
(
externalTask
.
promptOnClose
!==
void
0
)
{
task
.
promptOnClose
=
!!
externalTask
.
promptOnClose
;
}
if
(
Tasks
.
TaskGroup
.
is
(
externalTask
.
group
))
{
task
.
group
=
externalTask
.
group
;
}
if
(
task
.
group
===
void
0
)
{
if
(
Types
.
isBoolean
(
externalTask
.
isBuildCommand
)
&&
externalTask
.
isBuildCommand
)
{
task
.
group
=
Tasks
.
TaskGroup
.
Build
;
}
else
if
(
Types
.
isBoolean
(
externalTask
.
isTestCommand
&&
externalTask
.
isTestCommand
))
{
task
.
group
=
Tasks
.
TaskGroup
.
Test
;
}
}
if
(
externalTask
.
command
!==
void
0
)
{
// if the task has its own command then we suppress the
// task name by default.
...
...
@@ -848,26 +865,24 @@ namespace TaskDescription {
}
if
(
addTask
)
{
parsedTasks
.
push
(
task
);
if
(
!
Types
.
isUndefined
(
externalTask
.
isBuildCommand
)
&&
externalTask
.
isBuildComman
d
&&
defaultBuildTask
.
rank
<
2
)
{
if
(
task
.
group
===
Tasks
.
TaskGroup
.
Buil
d
&&
defaultBuildTask
.
rank
<
2
)
{
defaultBuildTask
.
task
=
task
;
defaultBuildTask
.
rank
=
2
;
}
else
if
(
taskName
===
'
build
'
&&
defaultBuildTask
.
rank
<
2
)
{
defaultBuildTask
.
task
=
task
;
defaultBuildTask
.
rank
=
1
;
}
if
(
!
Types
.
isUndefined
(
externalTask
.
isTestCommand
)
&&
externalTask
.
isTestCommand
&&
defaultTestTask
.
rank
<
2
)
{
}
else
if
(
task
.
group
===
Tasks
.
TaskGroup
.
Test
&&
defaultTestTask
.
rank
<
2
)
{
defaultTestTask
.
task
=
task
;
defaultTestTask
.
rank
=
2
;
}
else
if
(
taskName
===
'
test
'
&&
defaultTestTask
.
rank
<
2
)
{
}
else
if
(
task
.
name
===
'
build
'
&&
defaultBuildTask
.
rank
<
1
)
{
defaultBuildTask
.
task
=
task
;
defaultBuildTask
.
rank
=
1
;
}
else
if
(
task
.
name
===
'
test
'
&&
defaultTestTask
.
rank
<
1
)
{
defaultTestTask
.
task
=
task
;
defaultTestTask
.
rank
=
1
;
}
}
});
if
(
defaultBuildTask
.
task
)
{
if
(
defaultBuildTask
.
rank
>
-
1
&&
defaultBuildTask
.
rank
<
2
)
{
defaultBuildTask
.
task
.
group
=
Tasks
.
TaskGroup
.
Build
;
}
if
(
defaultTestTask
.
task
)
{
}
else
if
(
defaultTestTask
.
rank
>
-
1
&&
defaultTestTask
.
rank
<
2
)
{
defaultTestTask
.
task
.
group
=
Tasks
.
TaskGroup
.
Test
;
}
return
parsedTasks
.
length
===
0
&&
annotatingTasks
.
length
===
0
?
undefined
:
{
tasks
:
parsedTasks
,
annotatingTasks
:
annotatingTasks
};
...
...
src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts
浏览文件 @
4b2a13aa
...
...
@@ -740,21 +740,21 @@ class TaskService extends EventEmitter implements ITaskService {
let
uuidMap
:
IStringDictionary
<
Task
>
=
Object
.
create
(
null
);
let
identifierMap
:
IStringDictionary
<
Task
>
=
Object
.
create
(
null
);
let
primaryTasks
:
Task
[]
=
[];
let
workspaceTasks
:
Task
[]
=
[];
let
extensionTasks
:
Task
[]
=
[];
sets
.
forEach
((
set
)
=>
{
set
.
tasks
.
forEach
((
task
)
=>
{
uuidMap
[
task
.
_id
]
=
task
;
identifierMap
[
task
.
identifier
]
=
task
;
if
(
group
&&
task
.
group
===
group
)
{
primaryTasks
.
push
(
task
);
if
(
task
.
_source
.
kind
===
TaskSourceKind
.
Workspace
)
{
workspaceTasks
.
push
(
task
);
}
else
{
extensionTasks
.
push
(
task
);
}
}
});
});
if
(
primaryTasks
.
length
===
0
)
{
return
undefined
;
}
// check for a WORKSPACE build task and use that onemptied.apply
let
resolver
:
ITaskResolver
=
{
resolve
:
(
id
:
string
)
=>
{
let
result
=
uuidMap
[
id
];
...
...
@@ -764,8 +764,18 @@ class TaskService extends EventEmitter implements ITaskService {
return
identifierMap
[
id
];
}
};
if
(
primaryTasks
.
length
===
1
)
{
return
{
task
:
primaryTasks
[
0
],
resolver
};
if
(
workspaceTasks
.
length
>
0
)
{
if
(
workspaceTasks
.
length
>
1
)
{
this
.
_outputChannel
.
append
(
nls
.
localize
(
'
moreThanOneBuildTask
'
,
'
There are many build tasks defined in the tasks.json. Executing the first one.
\n
'
));
}
return
{
task
:
workspaceTasks
[
0
],
resolver
};
}
if
(
extensionTasks
.
length
===
0
)
{
return
undefined
;
}
if
(
extensionTasks
.
length
===
1
)
{
return
{
task
:
extensionTasks
[
0
],
resolver
};
}
else
{
let
id
:
string
=
UUID
.
generateUuid
();
let
task
:
Task
=
{
...
...
@@ -773,7 +783,7 @@ class TaskService extends EventEmitter implements ITaskService {
_source
:
{
kind
:
TaskSourceKind
.
Generic
},
name
:
id
,
identifier
:
id
,
dependsOn
:
primary
Tasks
.
map
(
task
=>
task
.
_id
),
dependsOn
:
extension
Tasks
.
map
(
task
=>
task
.
_id
),
command
:
undefined
,
};
return
{
task
,
resolver
};
...
...
src/vs/workbench/parts/tasks/test/node/configuration.test.ts
浏览文件 @
4b2a13aa
...
...
@@ -512,7 +512,7 @@ function assertProblemPattern(actual: ProblemPattern, expected: ProblemPattern)
assert
.
strictEqual
(
actual
.
loop
,
expected
.
loop
);
}
suite
(
'
Tasks
Configuration parsing tests
'
,
()
=>
{
suite
(
'
Tasks
version 0.1.0
'
,
()
=>
{
test
(
'
tasks: all default
'
,
()
=>
{
let
builder
=
new
ConfiguationBuilder
();
builder
.
task
(
'
tsc
'
,
'
tsc
'
).
...
...
@@ -1360,6 +1360,29 @@ suite('Tasks Configuration parsing tests', () => {
});
});
suite
(
'
Tasks version 2.0.0
'
,
()
=>
{
test
(
'
Build workspace task
'
,
()
=>
{
let
external
:
ExternalTaskRunnerConfiguration
=
{
version
:
'
2.0.0
'
,
tasks
:
[
{
taskName
:
'
dir
'
,
command
:
'
dir
'
,
type
:
'
shell
'
,
group
:
'
build
'
}
]
};
let
builder
=
new
ConfiguationBuilder
();
builder
.
task
(
'
dir
'
,
'
dir
'
).
suppressTaskName
(
true
).
group
(
Tasks
.
TaskGroup
.
Build
).
command
().
type
(
Tasks
.
CommandType
.
Shell
);
testConfiguration
(
external
,
builder
);
});
});
suite
(
'
Bugs / regression tests
'
,
()
=>
{
test
(
'
Bug 19548
'
,
()
=>
{
if
(
Platform
.
isLinux
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录