Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2305ad1d
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,发现更多精彩内容 >>
提交
2305ad1d
编写于
5月 25, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Editor Stacks do not clean up from file deletes when switching branches (fixes #6686)
上级
556635aa
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
24 deletion
+35
-24
src/vs/workbench/common/editor/editorStacksModel.ts
src/vs/workbench/common/editor/editorStacksModel.ts
+35
-24
未找到文件。
src/vs/workbench/common/editor/editorStacksModel.ts
浏览文件 @
2305ad1d
...
...
@@ -139,12 +139,6 @@ export class EditorGroup implements IEditorGroup {
this
.
mru
=
[];
this
.
toDispose
=
[];
if
(
typeof
arg1
===
'
object
'
)
{
this
.
deserialize
(
arg1
);
}
else
{
this
.
_label
=
arg1
;
}
this
.
_onEditorActivated
=
new
Emitter
<
EditorInput
>
();
this
.
_onEditorOpened
=
new
Emitter
<
EditorInput
>
();
this
.
_onEditorClosed
=
new
Emitter
<
IGroupEvent
>
();
...
...
@@ -155,6 +149,12 @@ export class EditorGroup implements IEditorGroup {
this
.
_onEditorChanged
=
new
Emitter
<
EditorInput
>
();
this
.
toDispose
.
push
(
this
.
_onEditorActivated
,
this
.
_onEditorOpened
,
this
.
_onEditorClosed
,
this
.
_onEditorDisposed
,
this
.
_onEditorMoved
,
this
.
_onEditorPinned
,
this
.
_onEditorUnpinned
,
this
.
_onEditorChanged
);
if
(
typeof
arg1
===
'
object
'
)
{
this
.
deserialize
(
arg1
);
}
else
{
this
.
_label
=
arg1
;
}
}
public
get
id
():
GroupIdentifier
{
...
...
@@ -281,20 +281,8 @@ export class EditorGroup implements IEditorGroup {
this
.
preview
=
editor
;
}
// Re-emit disposal of editor input as our own event
const
l1
=
editor
.
addOneTimeDisposableListener
(
'
dispose
'
,
()
=>
{
if
(
this
.
indexOf
(
editor
)
>=
0
)
{
this
.
_onEditorDisposed
.
fire
(
editor
);
}
});
// Clean up dispose listeners once the editor gets closed
const
l2
=
this
.
onEditorClosed
(
event
=>
{
if
(
event
.
editor
.
matches
(
editor
))
{
l1
.
dispose
();
l2
.
dispose
();
}
});
// Listeners
this
.
hookEditorListeners
(
editor
);
// Event
this
.
fireEvent
(
this
.
_onEditorOpened
,
editor
);
...
...
@@ -325,6 +313,24 @@ export class EditorGroup implements IEditorGroup {
}
}
private
hookEditorListeners
(
editor
:
EditorInput
):
void
{
// Re-emit disposal of editor input as our own event
const
l1
=
editor
.
addOneTimeDisposableListener
(
'
dispose
'
,
()
=>
{
if
(
this
.
indexOf
(
editor
)
>=
0
)
{
this
.
_onEditorDisposed
.
fire
(
editor
);
}
});
// Clean up dispose listeners once the editor gets closed
const
l2
=
this
.
onEditorClosed
(
event
=>
{
if
(
event
.
editor
.
matches
(
editor
))
{
l1
.
dispose
();
l2
.
dispose
();
}
});
}
public
closeEditor
(
editor
:
EditorInput
,
openNext
=
true
):
void
{
const
index
=
this
.
indexOf
(
editor
);
if
(
index
===
-
1
)
{
...
...
@@ -578,7 +584,13 @@ export class EditorGroup implements IEditorGroup {
const
registry
=
Registry
.
as
<
IEditorRegistry
>
(
Extensions
.
Editors
);
this
.
_label
=
data
.
label
;
this
.
editors
=
data
.
editors
.
map
(
e
=>
registry
.
getEditorInputFactory
(
e
.
id
).
deserialize
(
this
.
instantiationService
,
e
.
value
));
this
.
editors
=
data
.
editors
.
map
(
e
=>
{
const
editor
=
registry
.
getEditorInputFactory
(
e
.
id
).
deserialize
(
this
.
instantiationService
,
e
.
value
);
this
.
hookEditorListeners
(
editor
);
return
editor
;
});
this
.
mru
=
data
.
mru
.
map
(
i
=>
this
.
editors
[
i
]);
this
.
active
=
this
.
mru
[
0
];
this
.
preview
=
this
.
editors
[
data
.
preview
];
...
...
@@ -717,8 +729,6 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_groups
.
splice
(
this
.
indexOf
(
this
.
_activeGroup
)
+
1
,
0
,
group
);
}
this
.
groupToIdentifier
[
group
.
id
]
=
group
;
// Event
this
.
fireEvent
(
this
.
_onGroupOpened
,
group
);
...
...
@@ -948,7 +958,6 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_groups
=
serialized
.
groups
.
map
(
s
=>
this
.
doCreateGroup
(
s
));
this
.
_activeGroup
=
this
.
_groups
[
serialized
.
active
];
this
.
_groups
.
forEach
(
g
=>
this
.
groupToIdentifier
[
g
.
id
]
=
g
);
this
.
recentlyClosedEditors
=
serialized
.
lastClosed
||
[];
}
else
{
this
.
migrate
();
...
...
@@ -1031,6 +1040,8 @@ export class EditorStacksModel implements IEditorStacksModel {
private
doCreateGroup
(
arg1
:
string
|
ISerializedEditorGroup
):
EditorGroup
{
const
group
=
this
.
instantiationService
.
createInstance
(
EditorGroup
,
arg1
);
this
.
groupToIdentifier
[
group
.
id
]
=
group
;
// Funnel editor changes in the group through our event aggregator
const
l1
=
group
.
onEditorChanged
(
e
=>
this
.
_onModelChanged
.
fire
(
group
));
const
l2
=
group
.
onEditorClosed
(
e
=>
this
.
onEditorClosed
(
e
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录