Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
7ebdfb39
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 搜索 >>
提交
7ebdfb39
编写于
6月 21, 2017
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Call correct promise progress callback
上级
c929bf0b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
49 addition
and
53 deletion
+49
-53
src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts
...ch/services/files/node/watcher/nsfw/nsfwWatcherService.ts
+49
-53
未找到文件。
src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts
浏览文件 @
7ebdfb39
...
...
@@ -45,7 +45,7 @@ export class NsfwWatcherService implements IWatcherService {
return
this
.
_watcherPromise
;
}
private
_watch
(
request
:
IWatcherRequest
):
TPromise
<
void
>
{
private
_watch
(
request
:
IWatcherRequest
):
void
{
let
undeliveredFileEvents
:
watcher
.
IRawFileChange
[]
=
[];
const
fileEventDelayer
=
new
ThrottledDelayer
(
NsfwWatcherService
.
FS_EVENT_DELAY
);
...
...
@@ -55,67 +55,63 @@ export class NsfwWatcherService implements IWatcherService {
ignored
:
request
.
ignored
};
const
promise
=
new
TPromise
<
void
>
((
c
,
e
,
p
)
=>
{
nsfw
(
request
.
basePath
,
events
=>
{
for
(
let
i
=
0
;
i
<
events
.
length
;
i
++
)
{
const
e
=
events
[
i
];
nsfw
(
request
.
basePath
,
events
=>
{
for
(
let
i
=
0
;
i
<
events
.
length
;
i
++
)
{
const
e
=
events
[
i
];
// Logging
if
(
this
.
_verboseLogging
)
{
const
logPath
=
e
.
action
===
nsfw
.
actions
.
RENAMED
?
path
.
join
(
e
.
directory
,
e
.
oldFile
)
+
'
->
'
+
e
.
newFile
:
path
.
join
(
e
.
directory
,
e
.
file
);
console
.
log
(
e
.
action
===
nsfw
.
actions
.
CREATED
?
'
[CREATED]
'
:
e
.
action
===
nsfw
.
actions
.
DELETED
?
'
[DELETED]
'
:
e
.
action
===
nsfw
.
actions
.
MODIFIED
?
'
[CHANGED]
'
:
'
[RENAMED]
'
,
logPath
);
}
// Logging
if
(
this
.
_verboseLogging
)
{
const
logPath
=
e
.
action
===
nsfw
.
actions
.
RENAMED
?
path
.
join
(
e
.
directory
,
e
.
oldFile
)
+
'
->
'
+
e
.
newFile
:
path
.
join
(
e
.
directory
,
e
.
file
);
console
.
log
(
e
.
action
===
nsfw
.
actions
.
CREATED
?
'
[CREATED]
'
:
e
.
action
===
nsfw
.
actions
.
DELETED
?
'
[DELETED]
'
:
e
.
action
===
nsfw
.
actions
.
MODIFIED
?
'
[CHANGED]
'
:
'
[RENAMED]
'
,
logPath
);
}
// Convert nsfw event to IRawFileChange and add to queue
let
absolutePath
:
string
;
if
(
e
.
action
===
nsfw
.
actions
.
RENAMED
)
{
// Rename fires when a file's name changes within a single directory
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
oldFile
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
FileChangeType
.
DELETED
,
path
:
absolutePath
});
}
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
newFile
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
FileChangeType
.
ADDED
,
path
:
absolutePath
});
}
}
else
{
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
file
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
nsfwActionToRawChangeType
[
e
.
action
],
path
:
absolutePath
});
}
// Convert nsfw event to IRawFileChange and add to queue
let
absolutePath
:
string
;
if
(
e
.
action
===
nsfw
.
actions
.
RENAMED
)
{
// Rename fires when a file's name changes within a single directory
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
oldFile
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
FileChangeType
.
DELETED
,
path
:
absolutePath
});
}
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
newFile
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
FileChangeType
.
ADDED
,
path
:
absolutePath
});
}
}
else
{
absolutePath
=
path
.
join
(
e
.
directory
,
e
.
file
);
if
(
!
this
.
_isPathIgnored
(
absolutePath
,
this
.
_pathWatchers
[
request
.
basePath
].
ignored
))
{
undeliveredFileEvents
.
push
({
type
:
nsfwActionToRawChangeType
[
e
.
action
],
path
:
absolutePath
});
}
}
}
// Delay and send buffer
fileEventDelayer
.
trigger
(()
=>
{
const
events
=
undeliveredFileEvents
;
undeliveredFileEvents
=
[];
// Delay and send buffer
fileEventDelayer
.
trigger
(()
=>
{
const
events
=
undeliveredFileEvents
;
undeliveredFileEvents
=
[];
// Broadcast to clients normalized
const
res
=
watcher
.
normalize
(
events
);
p
(
res
);
// Broadcast to clients normalized
const
res
=
watcher
.
normalize
(
events
);
this
.
_progressCallback
(
res
);
// Logging
if
(
this
.
_verboseLogging
)
{
res
.
forEach
(
r
=>
{
console
.
log
(
'
>> normalized
'
,
r
.
type
===
FileChangeType
.
ADDED
?
'
[ADDED]
'
:
r
.
type
===
FileChangeType
.
DELETED
?
'
[DELETED]
'
:
'
[CHANGED]
'
,
r
.
path
);
});
}
// Logging
if
(
this
.
_verboseLogging
)
{
res
.
forEach
(
r
=>
{
console
.
log
(
'
>> normalized
'
,
r
.
type
===
FileChangeType
.
ADDED
?
'
[ADDED]
'
:
r
.
type
===
FileChangeType
.
DELETED
?
'
[DELETED]
'
:
'
[CHANGED]
'
,
r
.
path
);
});
}
return
TPromise
.
as
(
null
);
});
}).
then
(
watcher
=>
{
this
.
_pathWatchers
[
request
.
basePath
].
watcher
=
watcher
;
const
startPromise
=
watcher
.
start
();
startPromise
.
then
(()
=>
readyPromiseCallback
(
watcher
));
return
startPromise
;
return
TPromise
.
as
(
null
);
});
}).
then
(
watcher
=>
{
this
.
_pathWatchers
[
request
.
basePath
].
watcher
=
watcher
;
const
startPromise
=
watcher
.
start
();
startPromise
.
then
(()
=>
readyPromiseCallback
(
watcher
));
return
startPromise
;
});
return
promise
;
}
public
setRoots
(
roots
:
IWatcherRequest
[]):
TPromise
<
void
>
{
...
...
@@ -144,7 +140,7 @@ export class NsfwWatcherService implements IWatcherService {
});
// Start watching some roots
rootsToStartWatching
.
forEach
(
root
=>
promises
.
push
(
this
.
_watch
(
root
)
));
rootsToStartWatching
.
forEach
(
root
=>
this
.
_watch
(
root
));
// Refresh ignored arrays in case they changed
roots
.
forEach
(
root
=>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录