Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3d56fa0a
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
提交
3d56fa0a
编写于
4月 22, 2020
作者:
J
Jackson Kearl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Explicitly signal when file results are removed.
Fixes #95779
上级
8350cebf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
10 deletion
+9
-10
src/vs/workbench/contrib/search/browser/replaceService.ts
src/vs/workbench/contrib/search/browser/replaceService.ts
+1
-1
src/vs/workbench/contrib/search/common/searchModel.ts
src/vs/workbench/contrib/search/common/searchModel.ts
+8
-9
未找到文件。
src/vs/workbench/contrib/search/browser/replaceService.ts
浏览文件 @
3d56fa0a
...
...
@@ -71,7 +71,7 @@ class ReplacePreviewModel extends Disposable {
const
sourceModel
=
ref
.
object
.
textEditorModel
;
const
sourceModelModeId
=
sourceModel
.
getLanguageIdentifier
().
language
;
const
replacePreviewModel
=
this
.
modelService
.
createModel
(
createTextBufferFactoryFromSnapshot
(
sourceModel
.
createSnapshot
()),
this
.
modeService
.
create
(
sourceModelModeId
),
replacePreviewUri
);
this
.
_register
(
fileMatch
.
onChange
(
modelChange
=>
this
.
update
(
sourceModel
,
replacePreviewModel
,
fileMatch
,
modelChange
)));
this
.
_register
(
fileMatch
.
onChange
(
({
forceUpdateModel
})
=>
this
.
update
(
sourceModel
,
replacePreviewModel
,
fileMatch
,
forceUpdateModel
)));
this
.
_register
(
this
.
searchWorkbenchService
.
searchModel
.
onReplaceTermChanged
(()
=>
this
.
update
(
sourceModel
,
replacePreviewModel
,
fileMatch
)));
this
.
_register
(
fileMatch
.
onDispose
(()
=>
replacePreviewModel
.
dispose
()));
// TODO@Sandeep we should not dispose a model directly but rather the reference (depends on https://github.com/Microsoft/vscode/issues/17073)
this
.
_register
(
replacePreviewModel
.
onWillDispose
(()
=>
this
.
dispose
()));
...
...
src/vs/workbench/contrib/search/common/searchModel.ts
浏览文件 @
3d56fa0a
...
...
@@ -192,8 +192,8 @@ export class FileMatch extends Disposable implements IFileMatch {
return
(
selected
?
FileMatch
.
_CURRENT_FIND_MATCH
:
FileMatch
.
_FIND_MATCH
);
}
private
_onChange
=
this
.
_register
(
new
Emitter
<
boolean
>
());
readonly
onChange
:
Event
<
boolean
>
=
this
.
_onChange
.
event
;
private
_onChange
=
this
.
_register
(
new
Emitter
<
{
didRemove
?:
boolean
;
forceUpdateModel
?:
boolean
}
>
());
readonly
onChange
:
Event
<
{
didRemove
?:
boolean
;
forceUpdateModel
?:
boolean
}
>
=
this
.
_onChange
.
event
;
private
_onDispose
=
this
.
_register
(
new
Emitter
<
void
>
());
readonly
onDispose
:
Event
<
void
>
=
this
.
_onDispose
.
event
;
...
...
@@ -323,7 +323,7 @@ export class FileMatch extends Disposable implements IFileMatch {
.
filter
((
result
=>
!
resultIsMatch
(
result
))
as
((
a
:
any
)
=>
a
is
ITextSearchContext
))
.
map
(
context
=>
({
...
context
,
lineNumber
:
context
.
lineNumber
+
1
})));
this
.
_onChange
.
fire
(
modelChange
);
this
.
_onChange
.
fire
(
{
forceUpdateModel
:
modelChange
}
);
this
.
updateHighlights
();
}
...
...
@@ -357,7 +357,7 @@ export class FileMatch extends Disposable implements IFileMatch {
remove
(
match
:
Match
):
void
{
this
.
removeMatch
(
match
);
this
.
_removedMatches
.
add
(
match
.
id
());
this
.
_onChange
.
fire
(
false
);
this
.
_onChange
.
fire
(
{
didRemove
:
true
}
);
}
replace
(
toReplace
:
Match
):
Promise
<
void
>
{
...
...
@@ -410,7 +410,7 @@ export class FileMatch extends Disposable implements IFileMatch {
add
(
match
:
Match
,
trigger
?:
boolean
)
{
this
.
_matches
.
set
(
match
.
id
(),
match
);
if
(
trigger
)
{
this
.
_onChange
.
fire
(
true
);
this
.
_onChange
.
fire
(
{
forceUpdateModel
:
true
}
);
}
}
...
...
@@ -529,7 +529,7 @@ export class FolderMatch extends Disposable {
const
fileMatch
=
this
.
instantiationService
.
createInstance
(
FileMatch
,
this
.
_query
.
contentPattern
,
this
.
_query
.
previewOptions
,
this
.
_query
.
maxResults
,
this
,
rawFileMatch
);
this
.
doAdd
(
fileMatch
);
added
.
push
(
fileMatch
);
const
disposable
=
fileMatch
.
onChange
((
)
=>
this
.
onFileChange
(
fileMatch
));
const
disposable
=
fileMatch
.
onChange
((
{
didRemove
})
=>
this
.
onFileChange
(
fileMatch
,
didRemove
));
fileMatch
.
onDispose
(()
=>
disposable
.
dispose
());
}
});
...
...
@@ -577,9 +577,8 @@ export class FolderMatch extends Disposable {
return
this
.
matches
().
reduce
<
number
>
((
prev
,
match
)
=>
prev
+
match
.
count
(),
0
);
}
private
onFileChange
(
fileMatch
:
FileMatch
):
void
{
let
added
:
boolean
=
false
;
let
removed
:
boolean
=
false
;
private
onFileChange
(
fileMatch
:
FileMatch
,
removed
=
false
):
void
{
let
added
=
false
;
if
(
!
this
.
_fileMatches
.
has
(
fileMatch
.
resource
))
{
this
.
doAdd
(
fileMatch
);
added
=
true
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录