Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
7945915d
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,发现更多精彩内容 >>
提交
7945915d
编写于
1月 09, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remote - better reads
上级
876b47a9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
14 deletion
+27
-14
src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts
...vs/workbench/api/electron-browser/mainThreadFileSystem.ts
+21
-8
src/vs/workbench/api/node/extHost.protocol.ts
src/vs/workbench/api/node/extHost.protocol.ts
+3
-3
src/vs/workbench/api/node/extHostFileSystem.ts
src/vs/workbench/api/node/extHostFileSystem.ts
+3
-3
未找到文件。
src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts
浏览文件 @
7945915d
...
...
@@ -53,8 +53,8 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape {
this
.
_provider
.
get
(
handle
).
$onFileSystemChange
(
changes
);
}
$reportFileChunk
(
handle
:
number
,
data
:
UriComponents
,
chunk
:
number
[]):
void
{
this
.
_provider
.
get
(
handle
).
reportFileChunk
(
URI
.
revive
(
data
)
,
chunk
);
$reportFileChunk
(
handle
:
number
,
session
:
number
,
chunk
:
number
[]):
void
{
this
.
_provider
.
get
(
handle
).
reportFileChunk
(
session
,
chunk
);
}
// --- search
...
...
@@ -64,10 +64,22 @@ export class MainThreadFileSystem implements MainThreadFileSystemShape {
}
}
class
FileReadOperation
{
private
static
_idPool
=
0
;
constructor
(
readonly
progress
:
IProgress
<
Uint8Array
>
,
readonly
id
:
number
=
++
FileReadOperation
.
_idPool
)
{
//
}
}
class
RemoteFileSystemProvider
implements
IFileSystemProvider
,
ISearchResultProvider
{
private
readonly
_onDidChange
=
new
Emitter
<
IFileChange
[]
>
();
private
readonly
_reads
=
new
Map
<
string
,
IProgress
<
Uint8Array
>
>
();
private
readonly
_reads
=
new
Map
<
number
,
FileReadOperation
>
();
private
readonly
_registrations
:
IDisposable
[];
readonly
onDidChange
:
Event
<
IFileChange
[]
>
=
this
.
_onDidChange
.
event
;
...
...
@@ -104,11 +116,12 @@ class RemoteFileSystemProvider implements IFileSystemProvider, ISearchResultProv
return
this
.
_proxy
.
$stat
(
this
.
_handle
,
resource
);
}
read
(
resource
:
URI
,
offset
:
number
,
count
:
number
,
progress
:
IProgress
<
Uint8Array
>
):
TPromise
<
number
,
any
>
{
this
.
_reads
.
set
(
resource
.
toString
(),
progress
);
return
this
.
_proxy
.
$read
(
this
.
_handle
,
offset
,
count
,
resource
);
const
read
=
new
FileReadOperation
(
progress
);
this
.
_reads
.
set
(
read
.
id
,
read
);
return
this
.
_proxy
.
$read
(
this
.
_handle
,
read
.
id
,
offset
,
count
,
resource
);
}
reportFileChunk
(
resource
:
URI
,
chunk
:
number
[]):
void
{
this
.
_reads
.
get
(
resource
.
toString
())
.
report
(
Buffer
.
from
(
chunk
));
reportFileChunk
(
session
:
number
,
chunk
:
number
[]):
void
{
this
.
_reads
.
get
(
session
).
progress
.
report
(
Buffer
.
from
(
chunk
));
}
write
(
resource
:
URI
,
content
:
Uint8Array
):
TPromise
<
void
,
any
>
{
return
this
.
_proxy
.
$write
(
this
.
_handle
,
resource
,
[].
slice
.
call
(
content
));
...
...
@@ -143,7 +156,7 @@ class RemoteFileSystemProvider implements IFileSystemProvider, ISearchResultProv
const
id
=
++
this
.
_searchesIdPool
;
const
matches
:
IFileMatch
[]
=
[];
return
new
PPromise
((
resolve
,
reject
,
report
)
=>
{
this
.
_proxy
.
$fi
le
Files
(
this
.
_handle
,
id
,
query
.
filePattern
).
then
(()
=>
{
this
.
_proxy
.
$fi
nd
Files
(
this
.
_handle
,
id
,
query
.
filePattern
).
then
(()
=>
{
this
.
_searches
.
delete
(
id
);
resolve
({
results
:
matches
,
...
...
src/vs/workbench/api/node/extHost.protocol.ts
浏览文件 @
7945915d
...
...
@@ -371,7 +371,7 @@ export interface MainThreadFileSystemShape extends IDisposable {
$onDidAddFileSystemRoot
(
root
:
UriComponents
):
void
;
$onFileSystemChange
(
handle
:
number
,
resource
:
IFileChange
[]):
void
;
$reportFileChunk
(
handle
:
number
,
resource
:
UriComponents
,
chunk
:
number
[]
|
null
):
void
;
$reportFileChunk
(
handle
:
number
,
session
:
number
,
chunk
:
number
[]
|
null
):
void
;
$handleSearchProgress
(
handle
:
number
,
session
:
number
,
resource
:
UriComponents
):
void
;
}
...
...
@@ -535,14 +535,14 @@ export interface ExtHostWorkspaceShape {
export
interface
ExtHostFileSystemShape
{
$utimes
(
handle
:
number
,
resource
:
UriComponents
,
mtime
:
number
,
atime
:
number
):
TPromise
<
IStat
>
;
$stat
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
IStat
>
;
$read
(
handle
:
number
,
offset
:
number
,
count
:
number
,
resource
:
UriComponents
):
TPromise
<
number
>
;
$read
(
handle
:
number
,
session
:
number
,
offset
:
number
,
count
:
number
,
resource
:
UriComponents
):
TPromise
<
number
>
;
$write
(
handle
:
number
,
resource
:
UriComponents
,
content
:
number
[]):
TPromise
<
void
>
;
$unlink
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
void
>
;
$move
(
handle
:
number
,
resource
:
UriComponents
,
target
:
UriComponents
):
TPromise
<
IStat
>
;
$mkdir
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
IStat
>
;
$readdir
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
[
UriComponents
,
IStat
][]
>
;
$rmdir
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
void
>
;
$fi
le
Files
(
handle
:
number
,
session
:
number
,
query
:
string
):
TPromise
<
void
>
;
$fi
nd
Files
(
handle
:
number
,
session
:
number
,
query
:
string
):
TPromise
<
void
>
;
}
export
interface
ExtHostExtensionServiceShape
{
...
...
src/vs/workbench/api/node/extHostFileSystem.ts
浏览文件 @
7945915d
...
...
@@ -48,10 +48,10 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
$stat
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
IStat
,
any
>
{
return
asWinJsPromise
(
token
=>
this
.
_provider
.
get
(
handle
).
stat
(
URI
.
revive
(
resource
)));
}
$read
(
handle
:
number
,
offset
:
number
,
count
:
number
,
resource
:
UriComponents
):
TPromise
<
number
>
{
$read
(
handle
:
number
,
session
:
number
,
offset
:
number
,
count
:
number
,
resource
:
UriComponents
):
TPromise
<
number
>
{
const
progress
=
{
report
:
chunk
=>
{
this
.
_proxy
.
$reportFileChunk
(
handle
,
resource
,
[].
slice
.
call
(
chunk
));
this
.
_proxy
.
$reportFileChunk
(
handle
,
session
,
[].
slice
.
call
(
chunk
));
}
};
return
asWinJsPromise
(
token
=>
this
.
_provider
.
get
(
handle
).
read
(
URI
.
revive
(
resource
),
offset
,
count
,
progress
));
...
...
@@ -74,7 +74,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
$rmdir
(
handle
:
number
,
resource
:
UriComponents
):
TPromise
<
void
,
any
>
{
return
asWinJsPromise
(
token
=>
this
.
_provider
.
get
(
handle
).
rmdir
(
URI
.
revive
(
resource
)));
}
$fi
le
Files
(
handle
:
number
,
session
:
number
,
query
:
string
):
TPromise
<
void
>
{
$fi
nd
Files
(
handle
:
number
,
session
:
number
,
query
:
string
):
TPromise
<
void
>
{
const
provider
=
this
.
_provider
.
get
(
handle
);
if
(
!
provider
.
findFiles
)
{
return
TPromise
.
as
(
undefined
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录