Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
40515c5a
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,体验更适合开发者的 AI 搜索 >>
提交
40515c5a
编写于
4月 26, 2018
作者:
E
Erich Gamma
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixing #48590 use task API to fetch tasks
上级
3929ea09
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
13 deletion
+10
-13
extensions/npm/src/main.ts
extensions/npm/src/main.ts
+7
-8
extensions/npm/src/npmView.ts
extensions/npm/src/npmView.ts
+3
-5
未找到文件。
extensions/npm/src/main.ts
浏览文件 @
40515c5a
...
...
@@ -14,13 +14,14 @@ import { provideNpmScripts, hasNpmScripts, explorerIsEnabled } from './tasks';
let
taskProvider
:
vscode
.
Disposable
|
undefined
;
export
async
function
activate
(
context
:
vscode
.
ExtensionContext
):
Promise
<
void
>
{
taskProvider
=
registerTaskProvider
(
context
);
taskProvider
=
registerTaskProvider
();
registerExplorer
(
context
);
configureHttpRequest
();
vscode
.
workspace
.
onDidChangeConfiguration
(()
=>
configureHttpRequest
());
context
.
subscriptions
.
push
(
addJSONProviders
(
httpRequest
.
xhr
));
}
function
registerTaskProvider
(
context
:
vscode
.
ExtensionContext
):
vscode
.
Disposable
|
undefined
{
function
registerTaskProvider
():
vscode
.
Disposable
|
undefined
{
if
(
vscode
.
workspace
.
workspaceFolders
)
{
let
provider
:
vscode
.
TaskProvider
=
{
provideTasks
:
()
=>
{
...
...
@@ -30,16 +31,14 @@ function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposab
return
undefined
;
}
};
let
disposable
=
vscode
.
workspace
.
registerTaskProvider
(
'
npm
'
,
provider
);
registerExplorer
(
context
,
provider
);
return
disposable
;
return
vscode
.
workspace
.
registerTaskProvider
(
'
npm
'
,
provider
);
}
return
undefined
;
}
async
function
registerExplorer
(
context
:
vscode
.
ExtensionContext
,
provider
:
vscode
.
TaskProvider
)
{
if
(
explorerIsEnabled
())
{
let
treeDataProvider
=
vscode
.
window
.
registerTreeDataProvider
(
'
npm
'
,
new
NpmScriptsTreeDataProvider
(
context
,
provider
));
async
function
registerExplorer
(
context
:
vscode
.
ExtensionContext
)
{
if
(
explorerIsEnabled
()
&&
vscode
.
workspace
.
workspaceFolders
)
{
let
treeDataProvider
=
vscode
.
window
.
registerTreeDataProvider
(
'
npm
'
,
new
NpmScriptsTreeDataProvider
(
context
));
context
.
subscriptions
.
push
(
treeDataProvider
);
if
(
await
hasNpmScripts
())
{
vscode
.
commands
.
executeCommand
(
'
setContext
'
,
'
hasNpmScripts
'
,
true
);
...
...
extensions/npm/src/npmView.ts
浏览文件 @
40515c5a
...
...
@@ -6,7 +6,7 @@
import
*
as
path
from
'
path
'
;
import
{
DebugConfiguration
,
Event
,
EventEmitter
,
ExtensionContext
,
Task
,
TaskProvider
,
DebugConfiguration
,
Event
,
EventEmitter
,
ExtensionContext
,
Task
,
TextDocument
,
ThemeIcon
,
TreeDataProvider
,
TreeItem
,
TreeItemCollapsibleState
,
Uri
,
WorkspaceFolder
,
commands
,
debug
,
window
,
workspace
,
Selection
}
from
'
vscode
'
;
...
...
@@ -92,14 +92,12 @@ class NpmScript extends TreeItem {
export
class
NpmScriptsTreeDataProvider
implements
TreeDataProvider
<
TreeItem
>
{
private
taskTree
:
Folder
[]
|
PackageJSON
[]
|
null
=
null
;
private
taskProvider
:
TaskProvider
;
private
extensionContext
:
ExtensionContext
;
private
_onDidChangeTreeData
:
EventEmitter
<
TreeItem
|
null
>
=
new
EventEmitter
<
TreeItem
|
null
>
();
readonly
onDidChangeTreeData
:
Event
<
TreeItem
|
null
>
=
this
.
_onDidChangeTreeData
.
event
;
constructor
(
context
:
ExtensionContext
,
taskProvider
:
TaskProvider
)
{
constructor
(
context
:
ExtensionContext
)
{
const
subscriptions
=
context
.
subscriptions
;
this
.
taskProvider
=
taskProvider
;
this
.
extensionContext
=
context
;
subscriptions
.
push
(
commands
.
registerCommand
(
'
npm.runScript
'
,
this
.
runScript
,
this
));
subscriptions
.
push
(
commands
.
registerCommand
(
'
npm.debugScript
'
,
this
.
debugScript
,
this
));
...
...
@@ -265,7 +263,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
async
getChildren
(
element
?:
TreeItem
):
Promise
<
TreeItem
[]
>
{
if
(
!
this
.
taskTree
)
{
let
tasks
=
await
this
.
taskProvider
.
provideTasks
(
);
let
tasks
=
await
workspace
.
fetchTasks
({
type
:
'
npm
'
}
);
if
(
tasks
)
{
this
.
taskTree
=
this
.
buildTaskTree
(
tasks
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录