Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
a4cf2abe
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
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,发现更多精彩内容 >>
提交
a4cf2abe
编写于
3月 15, 2018
作者:
D
Dirk Baeumer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
First cut of #45664: Add API to query and execute tasks
上级
055ac07c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
82 addition
and
3 deletion
+82
-3
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+27
-0
src/vs/workbench/api/node/extHostApiCommands.ts
src/vs/workbench/api/node/extHostApiCommands.ts
+22
-0
src/vs/workbench/parts/tasks/common/tasks.ts
src/vs/workbench/parts/tasks/common/tasks.ts
+6
-1
src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts
...rkbench/parts/tasks/electron-browser/task.contribution.ts
+27
-2
未找到文件。
src/vs/vscode.proposed.d.ts
浏览文件 @
a4cf2abe
...
...
@@ -739,4 +739,31 @@ declare module 'vscode' {
}
//#endregion
//#region Tasks
/**
* A task handle represents a task in the system. It can be used to
* present task and to execute them.
*/
export
interface
TaskHandle
{
/**
* A unique ID.
*/
id
:
string
;
/**
* A human readable label of the task.
*/
label
:
string
;
/**
* The workspace folder the task belongs to. Is undefined
* to tasks that aren't scoped to a workspace folder.
*/
workspaceFolder
:
WorkspaceFolder
|
undefined
;
}
//#endregion
}
src/vs/workbench/api/node/extHostApiCommands.ts
浏览文件 @
a4cf2abe
...
...
@@ -17,6 +17,7 @@ import { ExtHostCommands } from 'vs/workbench/api/node/extHostCommands';
import
{
IWorkspaceSymbolProvider
}
from
'
vs/workbench/parts/search/common/search
'
;
import
{
Position
as
EditorPosition
,
ITextEditorOptions
}
from
'
vs/platform/editor/common/editor
'
;
import
{
CustomCodeAction
}
from
'
vs/workbench/api/node/extHostLanguageFeatures
'
;
import
*
as
TaskSystem
from
'
vs/workbench/parts/tasks/common/tasks
'
;
export
class
ExtHostApiCommands
{
...
...
@@ -169,6 +170,11 @@ export class ExtHostApiCommands {
],
returns
:
'
A promise that resolves to an array of DocumentLink-instances.
'
});
this
.
_register
(
'
vscode.executeTaskProvider
'
,
this
.
_executeTaskProvider
,
{
description
:
'
Execute task provider
'
,
args
:
[],
returns
:
'
An array of task handles
'
});
this
.
_register
(
'
vscode.previewHtml
'
,
(
uri
:
URI
,
position
?:
vscode
.
ViewColumn
,
label
?:
string
,
options
?:
any
)
=>
{
return
this
.
_commands
.
executeCommand
(
'
_workbench.previewHtml
'
,
...
...
@@ -465,6 +471,22 @@ export class ExtHostApiCommands {
return
this
.
_commands
.
executeCommand
<
modes
.
ILink
[]
>
(
'
_executeLinkProvider
'
,
resource
)
.
then
(
tryMapWith
(
typeConverters
.
DocumentLink
.
to
));
}
private
_executeTaskProvider
():
Thenable
<
vscode
.
TaskHandle
[]
>
{
return
this
.
_commands
.
executeCommand
<
TaskSystem
.
TaskHandleTransfer
[]
>
(
'
_executeTaskProvider
'
).
then
<
vscode
.
TaskHandle
[]
>
((
values
)
=>
{
return
values
.
map
(
handle
=>
{
return
{
id
:
handle
.
id
,
label
:
handle
.
label
,
workspaceFolder
:
{
name
:
handle
.
workspaceFolder
.
name
,
index
:
handle
.
workspaceFolder
.
index
,
uri
:
URI
.
revive
(
handle
.
workspaceFolder
.
uri
)
}
};
});
});
}
}
function
tryMapWith
<
T
,
R
>
(
f
:
(
x
:
T
)
=>
R
)
{
...
...
src/vs/workbench/parts/tasks/common/tasks.ts
浏览文件 @
a4cf2abe
...
...
@@ -11,7 +11,7 @@ import * as Objects from 'vs/base/common/objects';
import
{
IExtensionDescription
}
from
'
vs/workbench/services/extensions/common/extensions
'
;
import
{
ProblemMatcher
}
from
'
vs/workbench/parts/tasks/common/problemMatcher
'
;
import
{
IWorkspaceFolder
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceFolder
,
IWorkspaceFolderData
}
from
'
vs/platform/workspace/common/workspace
'
;
export
enum
ShellQuoting
{
...
...
@@ -594,6 +594,11 @@ export namespace Task {
}
}
export
interface
TaskHandleTransfer
{
id
:
string
;
label
:
string
;
workspaceFolder
:
IWorkspaceFolderData
;
}
export
enum
ExecutionEngine
{
Process
=
1
,
...
...
src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts
浏览文件 @
a4cf2abe
...
...
@@ -62,7 +62,7 @@ import Constants from 'vs/workbench/parts/markers/electron-browser/constants';
import
{
IPartService
}
from
'
vs/workbench/services/part/common/partService
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
IConfigurationResolverService
}
from
'
vs/workbench/services/configurationResolver/common/configurationResolver
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
,
IWorkspaceFolder
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
,
IWorkspaceFolder
,
IWorkspaceFolderData
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
ITextFileService
}
from
'
vs/workbench/services/textfile/common/textfiles
'
;
import
{
IOutputService
,
IOutputChannelRegistry
,
Extensions
as
OutputExt
,
IOutputChannel
}
from
'
vs/workbench/parts/output/common/output
'
;
...
...
@@ -71,7 +71,11 @@ import { Scope, IActionBarRegistry, Extensions as ActionBarExtensions } from 'vs
import
{
ITerminalService
}
from
'
vs/workbench/parts/terminal/common/terminal
'
;
import
{
ITaskSystem
,
ITaskResolver
,
ITaskSummary
,
TaskExecuteKind
,
TaskError
,
TaskErrors
,
TaskTerminateResponse
}
from
'
vs/workbench/parts/tasks/common/taskSystem
'
;
import
{
Task
,
CustomTask
,
ConfiguringTask
,
ContributedTask
,
InMemoryTask
,
TaskEvent
,
TaskEventKind
,
TaskSet
,
TaskGroup
,
GroupType
,
ExecutionEngine
,
JsonSchemaVersion
,
TaskSourceKind
,
TaskIdentifier
,
TaskSorter
}
from
'
vs/workbench/parts/tasks/common/tasks
'
;
import
{
Task
,
CustomTask
,
ConfiguringTask
,
ContributedTask
,
InMemoryTask
,
TaskEvent
,
TaskEventKind
,
TaskSet
,
TaskGroup
,
GroupType
,
ExecutionEngine
,
JsonSchemaVersion
,
TaskSourceKind
,
TaskIdentifier
,
TaskSorter
,
TaskHandleTransfer
}
from
'
vs/workbench/parts/tasks/common/tasks
'
;
import
{
ITaskService
,
ITaskProvider
,
RunOptions
,
CustomizationProperties
}
from
'
vs/workbench/parts/tasks/common/taskService
'
;
import
{
getTemplates
as
getTaskTemplates
}
from
'
vs/workbench/parts/tasks/common/taskTemplates
'
;
...
...
@@ -575,6 +579,27 @@ class TaskService implements ITaskService {
CommandsRegistry
.
registerCommand
(
'
workbench.action.tasks.showTasks
'
,
()
=>
{
this
.
runShowTasks
();
});
CommandsRegistry
.
registerCommand
(
'
_executeTaskProvider
'
,
(
accessor
,
args
)
=>
{
return
this
.
tasks
().
then
((
tasks
)
=>
{
let
result
:
TaskHandleTransfer
[]
=
[];
for
(
let
task
of
tasks
)
{
let
folder
=
Task
.
getWorkspaceFolder
(
task
);
let
folderData
:
IWorkspaceFolderData
=
folder
?
{
name
:
folder
.
name
,
uri
:
folder
.
uri
,
index
:
folder
.
index
}
:
undefined
;
let
handle
:
TaskHandleTransfer
=
{
id
:
task
.
_id
,
label
:
task
.
_label
,
workspaceFolder
:
folderData
};
result
.
push
(
handle
);
}
return
result
;
});
});
}
private
get
workspaceFolders
():
IWorkspaceFolder
[]
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录