Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d931da4b
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,发现更多精彩内容 >>
提交
d931da4b
编写于
6月 23, 2017
作者:
D
Dirk Baeumer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Handle legacy customize and terminal property
上级
3dd297dc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
12 deletion
+43
-12
src/vs/workbench/parts/tasks/node/taskConfiguration.ts
src/vs/workbench/parts/tasks/node/taskConfiguration.ts
+43
-12
未找到文件。
src/vs/workbench/parts/tasks/node/taskConfiguration.ts
浏览文件 @
d931da4b
...
...
@@ -125,6 +125,11 @@ export interface LegacyCommandProperties {
*/
echoCommand
?:
boolean
;
/**
* @deprecated Use presentation instead
*/
terminal
?:
PresentationOptions
;
/**
* @deprecated Use inline commands.
* See BaseTaskRunnerConfiguration#suppressTaskName for details.
...
...
@@ -652,7 +657,6 @@ namespace CommandConfiguration {
const
properties
:
MetaData
<
Tasks
.
PresentationOptions
,
void
>
[]
=
[{
property
:
'
echo
'
},
{
property
:
'
reveal
'
},
{
property
:
'
focus
'
},
{
property
:
'
panel
'
}];
interface
PresentationOptionsShape
extends
LegacyCommandProperties
{
terminal
?:
PresentationOptions
;
presentation
?:
PresentationOptions
;
}
...
...
@@ -1031,7 +1035,7 @@ namespace ConfigurationProperties {
result
.
dependsOn
=
external
.
dependsOn
.
slice
();
}
}
if
(
includePresentation
&&
external
.
presentation
!==
void
0
)
{
if
(
includePresentation
&&
(
external
.
presentation
!==
void
0
||
(
external
as
LegacyCommandProperties
).
terminal
!==
void
0
)
)
{
result
.
presentation
=
CommandConfiguration
.
PresentationOptions
.
from
(
external
,
context
);
}
if
(
external
.
problemMatcher
)
{
...
...
@@ -1047,25 +1051,51 @@ namespace ConfigurationProperties {
namespace
ConfiguringTask
{
const
grunt
=
'
grunt.
'
;
const
jake
=
'
jake.
'
;
const
gulp
=
'
gulp.
'
;
const
npm
=
'
vscode.npm.
'
;
const
typescript
=
'
vscode.typescript.
'
;
interface
CustomizeShape
{
customize
:
string
;
}
export
function
from
(
this
:
void
,
external
:
ConfiguringTask
,
context
:
ParseContext
):
Tasks
.
ConfiguringTask
{
if
(
!
external
)
{
return
undefined
;
}
let
type
=
external
.
type
;
if
(
!
type
)
{
let
customize
=
(
external
as
CustomizeShape
).
customize
;
if
(
!
type
&&
!
customize
)
{
context
.
problemReporter
.
fatal
(
nls
.
localize
(
'
ConfigurationParser.noTaskType
'
,
'
Error: tasks configuration must have a type property. The configuration will be ignored.
\n
{0}
\n
'
,
JSON
.
stringify
(
external
,
null
,
4
)));
return
undefined
;
}
let
typeDeclaration
=
TaskTypeRegistry
.
get
(
type
);
let
identifier
:
TaskIdentifier
=
{
type
};
Object
.
keys
(
typeDeclaration
.
properties
).
forEach
((
property
)
=>
{
let
value
=
external
[
property
];
if
(
value
!==
void
0
&&
value
!==
null
)
{
identifier
[
property
]
=
value
;
let
identifier
:
TaskIdentifier
;
if
(
Types
.
isString
(
customize
))
{
if
(
customize
.
indexOf
(
grunt
)
===
0
)
{
identifier
=
{
type
:
'
grunt
'
,
task
:
customize
.
substring
(
grunt
.
length
)
}
as
TaskIdentifier
;
}
else
if
(
customize
.
indexOf
(
jake
)
===
0
)
{
identifier
=
{
type
:
'
jake
'
,
task
:
customize
.
substring
(
jake
.
length
)
}
as
TaskIdentifier
;
}
else
if
(
customize
.
indexOf
(
gulp
)
===
0
)
{
identifier
=
{
type
:
'
gulp
'
,
task
:
customize
.
substring
(
gulp
.
length
)
}
as
TaskIdentifier
;
}
else
if
(
customize
.
indexOf
(
npm
)
===
0
)
{
identifier
=
{
type
:
'
npm
'
,
script
:
customize
.
substring
(
npm
.
length
+
4
)
}
as
TaskIdentifier
;
}
else
if
(
customize
.
indexOf
(
typescript
)
===
0
)
{
identifier
=
{
type
:
'
typescript
'
,
tsconfig
:
customize
.
substring
(
typescript
.
length
+
6
)
}
as
TaskIdentifier
;
}
});
}
else
{
identifier
=
{
type
};
Object
.
keys
(
typeDeclaration
.
properties
).
forEach
((
property
)
=>
{
let
value
=
external
[
property
];
if
(
value
!==
void
0
&&
value
!==
null
)
{
identifier
[
property
]
=
value
;
}
});
}
let
taskIdentifier
=
TaskIdentifier
.
from
(
identifier
);
let
result
:
Tasks
.
ConfiguringTask
=
{
type
:
type
,
...
...
@@ -1225,7 +1255,8 @@ namespace TaskParser {
function
isCustomTask
(
value
:
CustomTask
|
ConfiguringTask
):
value
is
CustomTask
{
let
type
=
value
.
type
;
return
type
===
void
0
||
type
===
null
||
type
===
'
custom
'
||
type
===
'
shell
'
||
type
===
'
process
'
;
let
customize
=
(
value
as
any
).
customize
;
return
customize
===
void
0
&&
(
type
===
void
0
||
type
===
null
||
type
===
'
custom
'
||
type
===
'
shell
'
||
type
===
'
process
'
);
}
export
function
from
(
this
:
void
,
externals
:
(
CustomTask
|
ConfiguringTask
)[],
globals
:
Globals
,
context
:
ParseContext
):
TaskParseResult
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录