Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
c73e2d9c
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,发现更多精彩内容 >>
提交
c73e2d9c
编写于
6月 21, 2016
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Progress update in bulk edit
上级
73339b06
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
4 deletion
+28
-4
src/vs/editor/common/services/bulkEdit.ts
src/vs/editor/common/services/bulkEdit.ts
+28
-4
未找到文件。
src/vs/editor/common/services/bulkEdit.ts
浏览文件 @
c73e2d9c
...
...
@@ -17,6 +17,7 @@ import {Range} from 'vs/editor/common/core/range';
import
{
Selection
}
from
'
vs/editor/common/core/selection
'
;
import
{
IIdentifiedSingleEditOperation
,
IModel
,
IRange
,
ISelection
}
from
'
vs/editor/common/editorCommon
'
;
import
{
ICommonCodeEditor
}
from
'
vs/editor/common/editorCommon
'
;
import
{
IProgressRunner
}
from
'
vs/platform/progress/common/progress
'
;
export
interface
IResourceEdit
{
resource
:
URI
;
...
...
@@ -165,7 +166,7 @@ class BulkEditModel {
private
_sourceSelections
:
Selection
[];
private
_sourceModelTask
:
SourceModelEditTask
;
constructor
(
editorService
:
IEditorService
,
sourceModel
:
URI
,
sourceSelections
:
Selection
[],
edits
:
IResourceEdit
[])
{
constructor
(
editorService
:
IEditorService
,
sourceModel
:
URI
,
sourceSelections
:
Selection
[],
edits
:
IResourceEdit
[]
,
private
progress
:
IProgressRunner
=
null
)
{
this
.
_editorService
=
editorService
;
this
.
_sourceModel
=
sourceModel
;
this
.
_sourceSelections
=
sourceSelections
;
...
...
@@ -203,6 +204,10 @@ class BulkEditModel {
this
.
_tasks
=
[];
var
promises
:
TPromise
<
any
>
[]
=
[];
if
(
this
.
progress
)
{
this
.
progress
.
total
(
this
.
_numberOfResourcesToModify
*
2
);
}
forEach
(
this
.
_edits
,
entry
=>
{
var
promise
=
this
.
_editorService
.
resolveEditorModel
({
resource
:
URI
.
parse
(
entry
.
key
)
}).
then
(
model
=>
{
if
(
!
model
||
!
model
.
textEditorModel
)
{
...
...
@@ -221,31 +226,44 @@ class BulkEditModel {
entry
.
value
.
forEach
(
edit
=>
task
.
addEdit
(
edit
));
this
.
_tasks
.
push
(
task
);
if
(
this
.
progress
)
{
this
.
progress
.
worked
(
1
);
}
});
promises
.
push
(
promise
);
});
return
TPromise
.
join
(
promises
).
then
(
_
=>
this
);
}
public
apply
():
Selection
{
this
.
_tasks
.
forEach
(
task
=>
t
ask
.
apply
(
));
this
.
_tasks
.
forEach
(
task
=>
t
his
.
applyTask
(
task
));
var
r
:
Selection
=
null
;
if
(
this
.
_sourceModelTask
)
{
r
=
this
.
_sourceModelTask
.
getEndCursorSelection
();
}
return
r
;
}
private
applyTask
(
task
):
void
{
task
.
apply
();
if
(
this
.
progress
)
{
this
.
progress
.
worked
(
1
);
}
}
}
export
interface
BulkEdit
{
progress
(
progress
:
IProgressRunner
);
add
(
edit
:
IResourceEdit
[]):
void
;
finish
():
TPromise
<
ISelection
>
;
}
export
function
bulkEdit
(
eventService
:
IEventService
,
editorService
:
IEditorService
,
editor
:
ICommonCodeEditor
,
edits
:
IResourceEdit
[]):
TPromise
<
any
>
{
export
function
bulkEdit
(
eventService
:
IEventService
,
editorService
:
IEditorService
,
editor
:
ICommonCodeEditor
,
edits
:
IResourceEdit
[]
,
progress
:
IProgressRunner
=
null
):
TPromise
<
any
>
{
let
bulk
=
createBulkEdit
(
eventService
,
editorService
,
editor
);
bulk
.
add
(
edits
);
bulk
.
progress
(
progress
);
return
bulk
.
finish
();
}
...
...
@@ -253,6 +271,11 @@ export function createBulkEdit(eventService: IEventService, editorService: IEdit
let
all
:
IResourceEdit
[]
=
[];
let
recording
=
new
ChangeRecorder
(
eventService
).
start
();
let
progressRunner
:
IProgressRunner
;
function
progress
(
progress
:
IProgressRunner
)
{
progressRunner
=
progress
;
}
function
add
(
edits
:
IResourceEdit
[]):
void
{
all
.
push
(...
edits
);
...
...
@@ -292,7 +315,7 @@ export function createBulkEdit(eventService: IEventService, editorService: IEdit
selections
=
editor
.
getSelections
();
}
let
model
=
new
BulkEditModel
(
editorService
,
uri
,
selections
,
all
);
let
model
=
new
BulkEditModel
(
editorService
,
uri
,
selections
,
all
,
progressRunner
);
return
model
.
prepare
().
then
(
_
=>
{
...
...
@@ -307,6 +330,7 @@ export function createBulkEdit(eventService: IEventService, editorService: IEdit
}
return
{
progress
,
add
,
finish
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录